Справочник переменных окружения

Все переменные указываются в ~/.hermes/.env. Также их можно задать с помощью hermes config set VAR значение.

LLM-провайдеры

Переменная Описание
OPENROUTER_API_KEY API-ключ OpenRouter (рекомендуется для гибкости)
OPENROUTER_BASE_URL Переопределить базовый URL, совместимый с OpenRouter
HERMES_OPENROUTER_CACHE Включить кэширование ответов OpenRouter (1/true/yes/on). Переопределяет openrouter.response_cache в config.yaml. См. Кэширование ответов.
HERMES_OPENROUTER_CACHE_TTL TTL кэша в секундах (1–86400). Переопределяет openrouter.response_cache_ttl в config.yaml.
NOUS_BASE_URL Переопределить базовый URL Nous Portal (редко требуется; только для разработки/тестирования)
NOUS_INFERENCE_BASE_URL Переопределить endpoint инференса Nous напрямую
AI_GATEWAY_API_KEY API-ключ Vercel AI Gateway (ai-gateway.vercel.sh)
AI_GATEWAY_BASE_URL Переопределить базовый URL AI Gateway (по умолчанию: https://ai-gateway.vercel.sh/v1)
OPENAI_API_KEY API-ключ для пользовательских endpoint-ов, совместимых с OpenAI (используется с OPENAI_BASE_URL)
OPENAI_BASE_URL Базовый URL для пользовательского endpoint-а (VLLM, SGLang и т.д.)
COPILOT_GITHUB_TOKEN GitHub-токен для Copilot API — наивысший приоритет (OAuth gho_* или fine-grained PAT github_pat_*; классические PAT ghp_* не поддерживаются)
GH_TOKEN GitHub-токен — второй приоритет для Copilot (также используется CLI gh)
GITHUB_TOKEN GitHub-токен — третий приоритет для Copilot
HERMES_COPILOT_ACP_COMMAND Переопределить путь к бинарному файлу Copilot ACP CLI (по умолчанию: copilot)
COPILOT_CLI_PATH Псевдоним для HERMES_COPILOT_ACP_COMMAND
HERMES_COPILOT_ACP_ARGS Переопределить аргументы Copilot ACP (по умолчанию: --acp --stdio)
COPILOT_ACP_BASE_URL Переопределить базовый URL Copilot ACP
GLM_API_KEY API-ключ z.ai / ZhipuAI GLM (z.ai)
ZAI_API_KEY Псевдоним для GLM_API_KEY
Z_AI_API_KEY Псевдоним для GLM_API_KEY
GLM_BASE_URL Переопределить базовый URL z.ai (по умолчанию: https://api.z.ai/api/paas/v4)
KIMI_API_KEY API-ключ Kimi / Moonshot AI (moonshot.ai)
KIMI_BASE_URL Переопределить базовый URL Kimi (по умолчанию: https://api.moonshot.ai/v1)
KIMI_CN_API_KEY API-ключ Kimi / Moonshot China (moonshot.cn)
ARCEEAI_API_KEY API-ключ Arcee AI (chat.arcee.ai)
ARCEE_BASE_URL Переопределить базовый URL Arcee (по умолчанию: https://api.arcee.ai/api/v1)
GMI_API_KEY API-ключ GMI Cloud (gmicloud.ai)
GMI_BASE_URL Переопределить базовый URL GMI Cloud (по умолчанию: https://api.gmi-serving.com/v1)
MINIMAX_API_KEY API-ключ MiniMax — глобальный endpoint (minimax.io). Не используется minimax-oauth (OAuth-путь использует вход через браузер).
MINIMAX_BASE_URL Переопределить базовый URL MiniMax (по умолчанию: https://api.minimax.io/anthropic — Hermes использует endpoint MiniMax, совместимый с Anthropic Messages). Не используется minimax-oauth.
MINIMAX_CN_API_KEY API-ключ MiniMax — endpoint для Китая (minimaxi.com). Не используется minimax-oauth (OAuth-путь использует вход через браузер).
MINIMAX_CN_BASE_URL Переопределить базовый URL MiniMax China (по умолчанию: https://api.minimaxi.com/anthropic). Не используется minimax-oauth.
KILOCODE_API_KEY API-ключ Kilo Code (kilo.ai)
KILOCODE_BASE_URL Переопределить базовый URL Kilo Code (по умолчанию: https://api.kilo.ai/api/gateway)
XIAOMI_API_KEY API-ключ Xiaomi MiMo (platform.xiaomimimo.com)
XIAOMI_BASE_URL Переопределить базовый URL Xiaomi MiMo (по умолчанию: https://api.xiaomimimo.com/v1)
TOKENHUB_API_KEY API-ключ Tencent TokenHub (tokenhub.tencentmaas.com)
TOKENHUB_BASE_URL Переопределить базовый URL Tencent TokenHub (по умолчанию: https://tokenhub.tencentmaas.com/v1)
AZURE_FOUNDRY_API_KEY API-ключ Azure AI Foundry / Azure OpenAI (ai.azure.com)
AZURE_FOUNDRY_BASE_URL URL endpoint-а Azure AI Foundry (напр. https://<ресурс>.openai.azure.com/openai/v1 для OpenAI-стиля, или https://<ресурс>.services.ai.azure.com/anthropic для Anthropic-стиля)
AZURE_ANTHROPIC_KEY API-ключ Azure Anthropic для provider: anthropic + base_url, указывающий на развёртывание Claude в Azure Foundry (альтернатива ANTHROPIC_API_KEY, когда настроены и Anthropic, и Azure Anthropic)
HF_TOKEN Токен Hugging Face для Inference Providers (huggingface.co/settings/tokens)
HF_BASE_URL Переопределить базовый URL Hugging Face (по умолчанию: https://router.huggingface.co/v1)
GOOGLE_API_KEY API-ключ Google AI Studio (aistudio.google.com/app/apikey)
GEMINI_API_KEY Псевдоним для GOOGLE_API_KEY
GEMINI_BASE_URL Переопределить базовый URL Google AI Studio
HERMES_GEMINI_CLIENT_ID OAuth client ID для PKCE-входа google-gemini-cli (опционально; по умолчанию используется публичный клиент gemini-cli от Google)
HERMES_GEMINI_CLIENT_SECRET OAuth client secret для google-gemini-cli (опционально)
HERMES_GEMINI_PROJECT_ID GCP project ID для платных тарифов Gemini (бесплатный тариф создаётся автоматически)
ANTHROPIC_API_KEY API-ключ Anthropic Console (console.anthropic.com)
ANTHROPIC_TOKEN Ручное или устаревшее переопределение Anthropic OAuth/установочного токена
DASHSCOPE_API_KEY API-ключ Alibaba Cloud DashScope для моделей Qwen (modelstudio.console.alibabacloud.com)
DASHSCOPE_BASE_URL Пользовательский базовый URL DashScope (по умолчанию: https://dashscope-intl.aliyuncs.com/compatible-mode/v1; используйте https://dashscope.aliyuncs.com/compatible-mode/v1 для материкового Китая)
DEEPSEEK_API_KEY API-ключ DeepSeek для прямого доступа к DeepSeek (platform.deepseek.com)
DEEPSEEK_BASE_URL Пользовательский базовый URL DeepSeek API
NVIDIA_API_KEY API-ключ NVIDIA NIM — Nemotron и открытые модели (build.nvidia.com)
NVIDIA_BASE_URL Переопределить базовый URL NVIDIA (по умолчанию: https://integrate.api.nvidia.com/v1; установите http://localhost:8000/v1 для локального NIM endpoint-а)
STEPFUN_API_KEY API-ключ StepFun — модели серии Step (platform.stepfun.com)
STEPFUN_BASE_URL Переопределить базовый URL StepFun (по умолчанию: https://api.stepfun.com/v1)
OLLAMA_API_KEY API-ключ Ollama Cloud — управляемый каталог Ollama без локального GPU (ollama.com/settings/keys)
OLLAMA_BASE_URL Переопределить базовый URL Ollama Cloud (по умолчанию: https://ollama.com/v1)
XAI_API_KEY API-ключ xAI (Grok) для чата + TTS (console.x.ai)
XAI_BASE_URL Переопределить базовый URL xAI (по умолчанию: https://api.x.ai/v1)
MISTRAL_API_KEY API-ключ Mistral для Voxtral TTS и Voxtral STT (console.mistral.ai)
AWS_REGION Регион AWS для инференса Bedrock (напр. us-east-1, eu-central-1). Читается boto3.
AWS_PROFILE Именованный профиль AWS для аутентификации Bedrock (читает ~/.aws/credentials). Оставьте пустым для использования цепочки учётных данных boto3 по умолчанию.
BEDROCK_BASE_URL Переопределить базовый URL Bedrock runtime (по умолчанию: https://bedrock-runtime.us-east-1.amazonaws.com; обычно оставляйте пустым и используйте AWS_REGION)
HERMES_QWEN_BASE_URL Переопределение базового URL Qwen Portal (по умолчанию: https://portal.qwen.ai/v1)
OPENCODE_ZEN_API_KEY API-ключ OpenCode Zen — оплата по мере использования для подобранных моделей (opencode.ai)
OPENCODE_ZEN_BASE_URL Переопределить базовый URL OpenCode Zen
OPENCODE_GO_API_KEY API-ключ OpenCode Go — подписка $10/мес для открытых моделей (opencode.ai)
OPENCODE_GO_BASE_URL Переопределить базовый URL OpenCode Go
CLAUDE_CODE_OAUTH_TOKEN Явное переопределение токена Claude Code, если вы экспортируете его вручную
HERMES_MODEL Переопределить имя модели на уровне процесса (используется планировщиком cron; для обычного использования предпочтителен config.yaml)
VOICE_TOOLS_OPENAI_KEY Предпочтительный ключ OpenAI для провайдеров распознавания речи и синтеза речи OpenAI
HERMES_LOCAL_STT_COMMAND Опциональный шаблон команды локального распознавания речи. Поддерживает плейсхолдеры {input_path}, {output_dir}, {language} и {model}
HERMES_LOCAL_STT_LANGUAGE Язык по умолчанию, передаваемый в HERMES_LOCAL_STT_COMMAND или автоматически определяемый локальный fallback CLI whisper (по умолчанию: en)
HERMES_HOME Переопределить директорию конфигурации Hermes (по умолчанию: ~/.hermes). Также определяет область видимости PID-файла gateway и имени systemd-сервиса, поэтому несколько установок могут работать одновременно
HERMES_GIT_BASH_PATH Только Windows. Переопределить поиск bash.exe для терминального инструмента. Указывает на любой bash — полная установка Git-for-Windows, WSL bash через симлинк, MSYS2, Cygwin. Установщик устанавливает это автоматически на предоставленный PortableGit. См. Руководство по Windows (Native)
HERMES_DISABLE_WINDOWS_UTF8 Только Windows. Установите в 1 для отключения прослойки UTF-8 stdio (configure_windows_stdio()) и возврата к кодовой странице локали консоли. Полезно для диагностики ошибок кодировки; редко является правильной настройкой при обычной работе
HERMES_KANBAN_HOME Переопределить общий корень Hermes, на который опирается kanban-доска (БД + рабочие пространства + логи воркеров). По умолчанию используется get_default_hermes_root() (родительский каталог активного профиля). Полезно для тестов и нестандартных развёртываний
HERMES_KANBAN_BOARD Зафиксировать активную kanban-доску для этого процесса. Имеет приоритет над ~/.hermes/kanban/current; диспетчер внедряет это в окружение воркерных подпроцессов, чтобы воркеры физически не могли видеть задачи на других досках. По умолчанию: default. Валидация слага: строчные буквы, цифры, дефисы и подчёркивания, 1–64 символа
HERMES_KANBAN_DB Зафиксировать путь к файлу базы данных kanban напрямую (наивысший приоритет; переопределяет HERMES_KANBAN_BOARD и HERMES_KANBAN_HOME). Диспетчер внедряет это в окружение воркерных подпроцессов, чтобы воркеры профиля сходились к доске диспетчера
HERMES_KANBAN_WORKSPACES_ROOT Зафиксировать корень рабочих пространств kanban напрямую (наивысший приоритет для рабочих пространств; переопределяет HERMES_KANBAN_HOME). Диспетчер внедряет это в окружение воркерных подпроцессов

Аутентификация провайдеров (OAuth)

Для нативной аутентификации Anthropic Hermes предпочитает использовать файлы учётных данных Claude Code, если они существуют, поскольку эти учётные данные могут обновляться автоматически. OAuth через Anthropic требует плана Claude Max с приобретёнными дополнительными кредитами использования — Hermes маршрутизируется как Claude Code, который использует только дополнительные кредиты плана Max, а не базовый лимит Max, и не работает с Claude Pro. Без Max + дополнительных кредитов используйте API-ключ. Переменные окружения, такие как ANTHROPIC_TOKEN, по-прежнему полезны как ручные переопределения, но они больше не являются предпочтительным путём для входа в Claude Max.

Переменная Описание
HERMES_INFERENCE_PROVIDER Переопределить выбор провайдера: auto, custom, openrouter, nous, openai-codex, copilot, copilot-acp, anthropic, huggingface, gemini, zai, kimi-coding, kimi-coding-cn, minimax, minimax-cn, minimax-oauth (вход через OAuth в браузере — API-ключ не требуется; см. руководство по MiniMax OAuth), kilocode, xiaomi, arcee, gmi, stepfun, alibaba, alibaba-coding-plan (псевдоним alibaba_coding), deepseek, nvidia, ollama-cloud, xai (псевдоним grok), google-gemini-cli, qwen-oauth, bedrock, opencode-zen, opencode-go, ai-gateway, tencent-tokenhub (по умолчанию: auto)
HERMES_PORTAL_BASE_URL Переопределить URL Nous Portal (для разработки/тестирования)
NOUS_INFERENCE_BASE_URL Переопределить URL API инференса Nous
HERMES_NOUS_MIN_KEY_TTL_SECONDS Минимальный TTL ключа агента до перевыпуска (по умолчанию: 1800 = 30 мин)
HERMES_NOUS_TIMEOUT_SECONDS HTTP-таймаут для потоков учётных данных/токенов Nous
HERMES_DUMP_REQUESTS Сохранять полезную нагрузку API-запросов в файлы логов (true/false)
HERMES_PREFILL_MESSAGES_FILE Путь к JSON-файлу с эфемерными prefill-сообщениями, внедряемыми при вызове API
HERMES_TIMEZONE Переопределение часового пояса IANA (например America/New_York)

API инструментов

Переменная Описание
PARALLEL_API_KEY AI-нативный веб-поиск (parallel.ai)
FIRECRAWL_API_KEY Веб-скрапинг и облачный браузер (firecrawl.dev)
FIRECRAWL_API_URL Пользовательский endpoint Firecrawl API для самостоятельных инсталляций (опционально)
TAVILY_API_KEY API-ключ Tavily для AI-нативного веб-поиска, извлечения и краулинга (app.tavily.com)
SEARXNG_URL URL экземпляра SearXNG для бесплатного самостоятельного веб-поиска — API-ключ не требуется (searxng.github.io)
TAVILY_BASE_URL Переопределить endpoint Tavily API. Полезно для корпоративных прокси и самостоятельных бэкендов поиска, совместимых с Tavily. Аналогично GROQ_BASE_URL.
EXA_API_KEY API-ключ Exa для AI-нативного веб-поиска и контента (exa.ai)
BROWSERBASE_API_KEY Автоматизация браузера (browserbase.com)
BROWSERBASE_PROJECT_ID ID проекта Browserbase
BROWSER_USE_API_KEY API-ключ облачного браузера Browser Use (browser-use.com)
FIRECRAWL_BROWSER_TTL TTL сессии браузера Firecrawl в секундах (по умолчанию: 300)
BROWSER_CDP_URL URL Chrome DevTools Protocol для локального браузера (устанавливается через /browser connect, напр. ws://localhost:9222)
CAMOFOX_URL URL локального браузера анти-детекции Camofox (по умолчанию: http://localhost:9377)
BROWSER_INACTIVITY_TIMEOUT Таймаут неактивности сессии браузера в секундах
FAL_KEY Генерация изображений (fal.ai)
GROQ_API_KEY API-ключ Groq Whisper STT (groq.com)
ELEVENLABS_API_KEY Премиум-голоса TTS от ElevenLabs (elevenlabs.io)
STT_GROQ_MODEL Переопределить модель Groq STT (по умолчанию: whisper-large-v3-turbo)
GROQ_BASE_URL Переопределить endpoint Groq STT, совместимый с OpenAI
STT_OPENAI_MODEL Переопределить модель OpenAI STT (по умолчанию: whisper-1)
STT_OPENAI_BASE_URL Переопределить endpoint STT, совместимый с OpenAI
GITHUB_TOKEN GitHub-токен для Skills Hub (более высокие лимиты API, публикация навыков)
HONCHO_API_KEY Моделирование пользователей между сессиями (honcho.dev)
HONCHO_BASE_URL Базовый URL для самостоятельных инстансов Honcho (по умолчанию: облако Honcho). Для локальных инстансов API-ключ не требуется
HINDSIGHT_TIMEOUT Таймаут в секундах для вызовов API memory-провайдера Hindsight (по умолчанию: 60). Увеличьте, если ваш инстанс Hindsight медленно отвечает во время /sync или on_session_switch, и вы видите таймауты в errors.log.
SUPERMEMORY_API_KEY Семантическая долговременная память с извлечением по профилю и приёмом сессий (supermemory.ai)
TINKER_API_KEY RL-обучение (tinker-console.thinkingmachines.ai)
WANDB_API_KEY Метрики RL-обучения (wandb.ai)
DAYTONA_API_KEY Облачные песочницы Daytona (daytona.io)
VERCEL_TOKEN Токен доступа Vercel Sandbox (vercel.com)
VERCEL_PROJECT_ID ID проекта Vercel (требуется с VERCEL_TOKEN)
VERCEL_TEAM_ID ID команды Vercel (требуется с VERCEL_TOKEN)
VERCEL_OIDC_TOKEN Кратковременный OIDC-токен Vercel (альтернатива только для разработки)

Langfuse Observability

Переменные окружения для встроенного плагина observability/langfuse. Установите их с помощью hermes tools → Langfuse Observability или вручную в ~/.hermes/.env. Плагин также должен быть включён (hermes plugins enable observability/langfuse), прежде чем любая из этих настроек вступит в силу.

Переменная Описание
HERMES_LANGFUSE_PUBLIC_KEY Публичный ключ проекта Langfuse (pk-lf-...). Обязательно.
HERMES_LANGFUSE_SECRET_KEY Секретный ключ проекта Langfuse (sk-lf-...). Обязательно.
HERMES_LANGFUSE_BASE_URL URL сервера Langfuse (по умолчанию: https://cloud.langfuse.com). Укажите для самостоятельного хостинга.
HERMES_LANGFUSE_ENV Тег окружения на трейсах (production, staging, …)
HERMES_LANGFUSE_RELEASE Тег релиза/версии на трейсах
HERMES_LANGFUSE_SAMPLE_RATE Коэффициент сэмплирования SDK 0.0–1.0 (по умолчанию: 1.0)
HERMES_LANGFUSE_MAX_CHARS Усечение на поле для сериализованных полезных нагрузок (по умолчанию: 12000)
HERMES_LANGFUSE_DEBUG true включает подробное логирование плагина в agent.log
LANGFUSE_PUBLIC_KEY / LANGFUSE_SECRET_KEY / LANGFUSE_BASE_URL Стандартные имена SDK Langfuse. Принимаются как запасные, когда эквиваленты HERMES_LANGFUSE_* не установлены.

Nous Tool Gateway

Эти переменные настраивают Tool Gateway для платных подписчиков Nous или самостоятельных развёртываний gateway. Большинству пользователей не нужно их устанавливать — gateway настраивается автоматически через hermes model или hermes tools.

Переменная Описание
TOOL_GATEWAY_DOMAIN Базовый домен для маршрутизации Tool Gateway (по умолчанию: nousresearch.com)
TOOL_GATEWAY_SCHEME Схема HTTP или HTTPS для URL gateway (по умолчанию: https)
TOOL_GATEWAY_USER_TOKEN Токен аутентификации для Tool Gateway (обычно заполняется автоматически из аутентификации Nous)
FIRECRAWL_GATEWAY_URL Переопределить URL для endpoint-а Firecrawl gateway

Терминальный бэкенд

Переменная Описание
TERMINAL_ENV Бэкенд: local, docker, ssh, singularity, modal, daytona, vercel_sandbox
HERMES_DOCKER_BINARY Переопределить бинарный файл контейнера, к которому обращается Hermes (напр. podman, /usr/local/bin/docker). Если не задано, Hermes автоматически обнаруживает docker или podman в PATH. Требуется, когда установлены оба, и вы хотите использовать нестандартный, или когда бинарный файл находится вне PATH.
TERMINAL_DOCKER_IMAGE Docker-образ (по умолчанию: nikolaik/python-nodejs:python3.11-nodejs20)
TERMINAL_DOCKER_FORWARD_ENV JSON-массив имён переменных окружения для явной передачи в Docker-сессии терминала. Примечание: объявленные навыком required_environment_variables передаются автоматически — это нужно только для переменных, не объявленных ни одним навыком.
TERMINAL_DOCKER_VOLUMES Дополнительные монтирования томов Docker (пары хост:контейнер через запятую)
TERMINAL_DOCKER_MOUNT_CWD_TO_WORKSPACE Расширенный opt-in: монтировать текущую рабочую директорию запуска в Docker /workspace (true/false, по умолчанию: false)
TERMINAL_SINGULARITY_IMAGE Образ Singularity или путь .sif
TERMINAL_MODAL_IMAGE Образ контейнера Modal
TERMINAL_DAYTONA_IMAGE Образ песочницы Daytona
TERMINAL_VERCEL_RUNTIME Среда выполнения Vercel Sandbox (node24, node22, python3.13)
TERMINAL_TIMEOUT Таймаут команды в секундах
TERMINAL_LIFETIME_SECONDS Максимальное время жизни сессий терминала в секундах
TERMINAL_CWD Рабочая директория для сессий терминала (только gateway/cron; CLI использует директорию запуска)
SUDO_PASSWORD Включить sudo без интерактивного запроса

Для облачных бэкендов-песочниц сохранность данных ориентирована на файловую систему. TERMINAL_LIFETIME_SECONDS определяет, когда Hermes очищает неактивную сессию терминала, и при последующем возобновлении песочница может быть создана заново, а не поддерживать те же активные процессы.

SSH-бэкенд

Переменная Описание
TERMINAL_SSH_HOST Имя хоста удалённого сервера
TERMINAL_SSH_USER Имя пользователя SSH
TERMINAL_SSH_PORT Порт SSH (по умолчанию: 22)
TERMINAL_SSH_KEY Путь к приватному ключу
TERMINAL_SSH_PERSISTENT Переопределить постоянную оболочку для SSH (по умолчанию: следует TERMINAL_PERSISTENT_SHELL)

Ресурсы контейнеров (Docker, Singularity, Modal, Daytona)

Переменная Описание
TERMINAL_CONTAINER_CPU Ядра CPU (по умолчанию: 1)
TERMINAL_CONTAINER_MEMORY Память в МБ (по умолчанию: 5120)
TERMINAL_CONTAINER_DISK Диск в МБ (по умолчанию: 51200)
TERMINAL_CONTAINER_PERSISTENT Сохранять файловую систему контейнера между сессиями (по умолчанию: true)
TERMINAL_SANDBOX_DIR Директория на хосте для рабочих пространств и оверлеев (по умолчанию: ~/.hermes/sandboxes/)

Постоянная оболочка

Переменная Описание
TERMINAL_PERSISTENT_SHELL Включить постоянную оболочку для нелокальных бэкендов (по умолчанию: true). Также настраивается через terminal.persistent_shell в config.yaml
TERMINAL_LOCAL_PERSISTENT Включить постоянную оболочку для локального бэкенда (по умолчанию: false)
TERMINAL_SSH_PERSISTENT Переопределить постоянную оболочку для SSH-бэкенда (по умолчанию: следует TERMINAL_PERSISTENT_SHELL)

Мессенджеры

Переменная Описание
TELEGRAM_BOT_TOKEN Токен Telegram-бота (от @BotFather)
TELEGRAM_ALLOWED_USERS ID пользователей через запятую, которым разрешено использовать бота (применяется к ЛС, группам и форумам)
TELEGRAM_GROUP_ALLOWED_USERS ID отправителей через запятую, авторизованных только в группах/форумах (НЕ предоставляет доступ в ЛС). Значения в формате Chat-ID (начинающиеся с -) по-прежнему обрабатываются как ID чатов для обратной совместимости с конфигами до #17686, с предупреждением об устаревании.
TELEGRAM_GROUP_ALLOWED_CHATS ID групповых/форумных чатов через запятую; любой участник авторизован
TELEGRAM_HOME_CHANNEL Чат/канал Telegram по умолчанию для доставки cron
TELEGRAM_HOME_CHANNEL_NAME Отображаемое имя домашнего канала Telegram
TELEGRAM_WEBHOOK_URL Публичный HTTPS URL для режима вебхука (включает вебхук вместо опроса)
TELEGRAM_WEBHOOK_PORT Локальный порт прослушивания для сервера вебхука (по умолчанию: 8443)
TELEGRAM_WEBHOOK_SECRET Секретный токен, который Telegram отправляет обратно в каждом обновлении для проверки. Обязателен, когда установлен TELEGRAM_WEBHOOK_URL — gateway отказывается запускаться без него (GHSA-3vpc-7q5r-276h). Сгенерируйте с помощью openssl rand -hex 32.
TELEGRAM_REACTIONS Включить emoji-реакции на сообщения во время обработки (по умолчанию: false)
TELEGRAM_REPLY_TO_MODE Поведение ссылки на ответ: off, first (по умолчанию) или all. Соответствует шаблону Discord.
TELEGRAM_IGNORED_THREADS ID тем/тредов форума Telegram через запятую, где бот никогда не отвечает
TELEGRAM_PROXY URL прокси для подключений Telegram — переопределяет HTTPS_PROXY. Поддерживает http://, https://, socks5://
DISCORD_BOT_TOKEN Токен Discord-бота
DISCORD_ALLOWED_USERS ID пользователей Discord через запятую, которым разрешено использовать бота
DISCORD_ALLOWED_ROLES ID ролей Discord через запятую, которым разрешено использовать бота (логическое ИЛИ с DISCORD_ALLOWED_USERS). Автоматически включает намерение Members. Полезно, когда в модераторских командах происходят изменения — разрешения для ролей распространяются автоматически.
DISCORD_ALLOWED_CHANNELS ID каналов Discord через запятую. Если установлено, бот отвечает только в этих каналах (плюс ЛС, если разрешено). Переопределяет config.yaml discord.allowed_channels.
DISCORD_PROXY URL прокси для подключений Discord — переопределяет HTTPS_PROXY. Поддерживает http://, https://, socks5://
DISCORD_HOME_CHANNEL Канал Discord по умолчанию для доставки cron
DISCORD_HOME_CHANNEL_NAME Отображаемое имя домашнего канала Discord
DISCORD_COMMAND_SYNC_POLICY Политика синхронизации слэш-команд Discord при запуске: safe (сравнение и согласование), bulk (устаревший tree.sync()) или off
DISCORD_REQUIRE_MENTION Требовать @упоминание перед ответом в серверных каналах
DISCORD_FREE_RESPONSE_CHANNELS ID каналов через запятую, где упоминание не требуется
DISCORD_AUTO_THREAD Автоматически создавать тред для длинных ответов, где поддерживается
DISCORD_REACTIONS Включить emoji-реакции на сообщения во время обработки (по умолчанию: true)
DISCORD_IGNORED_CHANNELS ID каналов через запятую, где бот никогда не отвечает
DISCORD_NO_THREAD_CHANNELS ID каналов через запятую, где бот отвечает без автоматического треда
DISCORD_REPLY_TO_MODE Поведение ссылки на ответ: off, first (по умолчанию) или all
DISCORD_ALLOW_MENTION_EVERYONE Разрешить боту упоминать @everyone/@here (по умолчанию: false). См. Управление упоминаниями.
DISCORD_ALLOW_MENTION_ROLES Разрешить боту упоминать роли @role (по умолчанию: false).
DISCORD_ALLOW_MENTION_USERS Разрешить боту упоминать отдельных пользователей @user (по умолчанию: true).
DISCORD_ALLOW_MENTION_REPLIED_USER Упоминать автора при ответе на его сообщение (по умолчанию: true).
SLACK_BOT_TOKEN Токен Slack-бота (xoxb-...)
SLACK_APP_TOKEN Токен уровня приложения Slack (xapp-..., требуется для Socket Mode)
SLACK_ALLOWED_USERS ID пользователей Slack через запятую
SLACK_HOME_CHANNEL Канал Slack по умолчанию для доставки cron
SLACK_HOME_CHANNEL_NAME Отображаемое имя домашнего канала Slack
GOOGLE_CHAT_PROJECT_ID GCP-проект, размещающий Pub/Sub-тему (использует GOOGLE_CLOUD_PROJECT как запасной)
GOOGLE_CHAT_SUBSCRIPTION_NAME Полный путь Pub/Sub-подписки, projects/{proj}/subscriptions/{sub} (устаревший псевдоним: GOOGLE_CHAT_SUBSCRIPTION)
GOOGLE_CHAT_SERVICE_ACCOUNT_JSON Путь к JSON-файлу сервисного аккаунта или сам JSON (использует GOOGLE_APPLICATION_CREDENTIALS как запасной)
GOOGLE_CHAT_ALLOWED_USERS Email-адреса пользователей через запятую, которым разрешено общаться с ботом
GOOGLE_CHAT_ALLOW_ALL_USERS Разрешить любому пользователю Google Chat взаимодействовать с ботом (только для разработки)
GOOGLE_CHAT_HOME_CHANNEL Пространство по умолчанию (напр. spaces/AAAA...) для доставки cron
GOOGLE_CHAT_HOME_CHANNEL_NAME Отображаемое имя домашнего пространства Google Chat
GOOGLE_CHAT_MAX_MESSAGES Максимальное количество сообщений в полёте Pub/Sub FlowControl (по умолчанию: 1)
GOOGLE_CHAT_MAX_BYTES Максимальное количество байт в полёте Pub/Sub FlowControl (по умолчанию: 16777216, 16 МиБ)
GOOGLE_CHAT_BOOTSTRAP_SPACES Дополнительные ID пространств через запятую для зондирования при запуске при разрешении собственного users/{id} бота
GOOGLE_CHAT_DEBUG_RAW Установите любое значение для логирования редактированных Pub/Sub-конвертов на уровне DEBUG (только для отладки)
WHATSAPP_ENABLED Включить WhatsApp-мост (true/false)
WHATSAPP_MODE bot (отдельный номер) или self-chat (отправка сообщений самому себе)
WHATSAPP_ALLOWED_USERS Номера телефонов через запятую (с кодом страны, без +), или * для разрешения всем отправителям
WHATSAPP_ALLOW_ALL_USERS Разрешить всем отправителям WhatsApp без белого списка (true/false)
WHATSAPP_DEBUG Логировать сырые события сообщений в мосту для диагностики (true/false)
SIGNAL_HTTP_URL HTTP endpoint демона signal-cli (например http://127.0.0.1:8080)
SIGNAL_ACCOUNT Номер телефона бота в формате E.164
SIGNAL_ALLOWED_USERS Номера E.164 или UUID через запятую
SIGNAL_GROUP_ALLOWED_USERS ID групп через запятую, или * для всех групп
SIGNAL_HOME_CHANNEL_NAME Отображаемое имя домашнего канала Signal
SIGNAL_IGNORE_STORIES Игнорировать истории/обновления статуса Signal
SIGNAL_ALLOW_ALL_USERS Разрешить всем пользователям Signal без белого списка
TWILIO_ACCOUNT_SID SID аккаунта Twilio (общий с навыком телефонии)
TWILIO_AUTH_TOKEN Токен аутентификации Twilio (общий с навыком телефонии; также используется для проверки подписи вебхука)
TWILIO_PHONE_NUMBER Номер телефона Twilio в формате E.164 (общий с навыком телефонии)
SMS_WEBHOOK_URL Публичный URL для проверки подписи Twilio — должен совпадать с URL вебхука в консоли Twilio (обязательно)
SMS_WEBHOOK_PORT Порт прослушивания вебхука для входящих SMS (по умолчанию: 8080)
SMS_WEBHOOK_HOST Адрес привязки вебхука (по умолчанию: 0.0.0.0)
SMS_INSECURE_NO_SIGNATURE Установите true для отключения проверки подписи Twilio (только для локальной разработки — не для продакшена)
SMS_ALLOWED_USERS Номера телефонов E.164 через запятую, которым разрешено общаться
SMS_ALLOW_ALL_USERS Разрешить всем отправителям SMS без белого списка
SMS_HOME_CHANNEL Номер телефона для доставки cron-задач/уведомлений
SMS_HOME_CHANNEL_NAME Отображаемое имя домашнего канала SMS
EMAIL_ADDRESS Email-адрес для адаптера Email-шлюза
EMAIL_PASSWORD Пароль или пароль приложения для учётной записи email
EMAIL_IMAP_HOST Имя хоста IMAP для email-адаптера
EMAIL_IMAP_PORT Порт IMAP
EMAIL_SMTP_HOST Имя хоста SMTP для email-адаптера
EMAIL_SMTP_PORT Порт SMTP
EMAIL_ALLOWED_USERS Email-адреса через запятую, которым разрешено отправлять сообщения боту
EMAIL_HOME_ADDRESS Получатель по умолчанию для проактивной доставки email
EMAIL_HOME_ADDRESS_NAME Отображаемое имя домашней цели email
EMAIL_POLL_INTERVAL Интервал опроса email в секундах
EMAIL_ALLOW_ALL_USERS Разрешить всех входящих отправителей email
DINGTALK_CLIENT_ID AppKey бота DingTalk из портала разработчика (open.dingtalk.com)
DINGTALK_CLIENT_SECRET AppSecret бота DingTalk из портала разработчика
DINGTALK_ALLOWED_USERS ID пользователей DingTalk через запятую, которым разрешено отправлять сообщения боту
FEISHU_APP_ID App ID бота Feishu/Lark с open.feishu.cn
FEISHU_APP_SECRET App Secret бота Feishu/Lark
FEISHU_DOMAIN feishu (Китай) или lark (международный). По умолчанию: feishu
FEISHU_CONNECTION_MODE websocket (рекомендуется) или webhook. По умолчанию: websocket
FEISHU_ENCRYPT_KEY Опциональный ключ шифрования для режима вебхука
FEISHU_VERIFICATION_TOKEN Опциональный токен проверки для режима вебхука
FEISHU_ALLOWED_USERS ID пользователей Feishu через запятую, которым разрешено отправлять сообщения боту
FEISHU_ALLOW_BOTS none (по умолчанию) / mentions / all — принимать входящие сообщения от других ботов. См. взаимодействие бот-бот
FEISHU_REQUIRE_MENTION true (по умолчанию) / false — требуется ли @упоминание бота в групповых сообщениях. Переопределяется для каждого чата через group_rules.<chat_id>.require_mention.
FEISHU_HOME_CHANNEL ID чата Feishu для доставки cron и уведомлений
WECOM_BOT_ID ID AI-бота WeCom из консоли администрирования
WECOM_SECRET Секрет AI-бота WeCom
WECOM_WEBSOCKET_URL Пользовательский URL WebSocket (по умолчанию: wss://openws.work.weixin.qq.com)
WECOM_ALLOWED_USERS ID пользователей WeCom через запятую, которым разрешено отправлять сообщения боту
WECOM_HOME_CHANNEL ID чата WeCom для доставки cron и уведомлений
WECOM_CALLBACK_CORP_ID Corp ID предприятия WeCom для callback-приложения
WECOM_CALLBACK_CORP_SECRET Секрет предприятия для callback-приложения
WECOM_CALLBACK_AGENT_ID ID агента callback-приложения
WECOM_CALLBACK_TOKEN Токен проверки callback
WECOM_CALLBACK_ENCODING_AES_KEY AES-ключ для шифрования callback
WECOM_CALLBACK_HOST Адрес привязки сервера callback (по умолчанию: 0.0.0.0)
WECOM_CALLBACK_PORT Порт сервера callback (по умолчанию: 8645)
WECOM_CALLBACK_ALLOWED_USERS ID пользователей через запятую для белого списка
WECOM_CALLBACK_ALLOW_ALL_USERS Установите true для разрешения всем пользователям без белого списка
WEIXIN_ACCOUNT_ID ID аккаунта Weixin, полученный через QR-вход через iLink Bot API
WEIXIN_TOKEN Токен аутентификации Weixin, полученный через QR-вход через iLink Bot API
WEIXIN_BASE_URL Переопределить базовый URL Weixin iLink Bot API (по умолчанию: https://ilinkai.weixin.qq.com)
WEIXIN_CDN_BASE_URL Переопределить базовый URL CDN Weixin для медиа (по умолчанию: https://novac2c.cdn.weixin.qq.com/c2c)
WEIXIN_DM_POLICY Политика личных сообщений: open, allowlist, pairing, disabled (по умолчанию: open)
WEIXIN_GROUP_POLICY Политика групповых сообщений: open, allowlist, disabled (по умолчанию: disabled)
WEIXIN_ALLOWED_USERS ID пользователей Weixin через запятую, которым разрешено писать боту в ЛС
WEIXIN_GROUP_ALLOWED_USERS ID групповых чатов Weixin через запятую (не ID пользователей), которым разрешено взаимодействовать с ботом. Название переменной устаревшее — ожидаются ID групп. Работает только когда iLink действительно доставляет групповые события; QR-логин ботов iLink (...@im.bot) обычно не получает обычные групповые сообщения WeChat.
WEIXIN_HOME_CHANNEL ID чата Weixin для доставки cron и уведомлений
WEIXIN_HOME_CHANNEL_NAME Отображаемое имя домашнего канала Weixin
WEIXIN_ALLOW_ALL_USERS Разрешить всем пользователям Weixin без белого списка (true/false)
BLUEBUBBLES_SERVER_URL URL сервера BlueBubbles (напр. http://192.168.1.10:1234)
BLUEBUBBLES_PASSWORD Пароль сервера BlueBubbles
BLUEBUBBLES_WEBHOOK_HOST Адрес привязки слушателя вебхука (по умолчанию: 127.0.0.1)
BLUEBUBBLES_WEBHOOK_PORT Порт слушателя вебхука (по умолчанию: 8645)
BLUEBUBBLES_HOME_CHANNEL Телефон/email для доставки cron/уведомлений
BLUEBUBBLES_ALLOWED_USERS Авторизованные пользователи через запятую
BLUEBUBBLES_ALLOW_ALL_USERS Разрешить всех пользователей (true/false)
QQ_APP_ID App ID QQ-бота с q.qq.com
QQ_CLIENT_SECRET App Secret QQ-бота с q.qq.com
QQ_STT_API_KEY API-ключ для внешнего запасного STT-провайдера (опционально, используется когда встроенный ASR QQ не возвращает текст)
QQ_STT_BASE_URL Базовый URL для внешнего STT-провайдера (опционально)
QQ_STT_MODEL Имя модели для внешнего STT-провайдера (опционально)
QQ_ALLOWED_USERS OpenID пользователей QQ через запятую, которым разрешено отправлять сообщения боту
QQ_GROUP_ALLOWED_USERS ID групп QQ через запятую для доступа к @-сообщениям в группах
QQ_ALLOW_ALL_USERS Разрешить всех пользователей (true/false, переопределяет QQ_ALLOWED_USERS)
QQBOT_HOME_CHANNEL OpenID пользователя/группы QQ для доставки cron и уведомлений
QQBOT_HOME_CHANNEL_NAME Отображаемое имя домашнего канала QQ
QQ_PORTAL_HOST Переопределить хост портала QQ (установите sandbox.q.qq.com для маршрутизации через песочницу; по умолчанию: q.qq.com).
MATTERMOST_URL URL сервера Mattermost (напр. https://mm.example.com)
MATTERMOST_TOKEN Токен бота или персональный токен доступа для Mattermost
MATTERMOST_ALLOWED_USERS ID пользователей Mattermost через запятую, которым разрешено отправлять сообщения боту
MATTERMOST_HOME_CHANNEL ID канала для проактивной доставки сообщений (cron, уведомления)
MATTERMOST_REQUIRE_MENTION Требовать @упоминание в каналах (по умолчанию: true). Установите false для ответа на все сообщения.
MATTERMOST_FREE_RESPONSE_CHANNELS ID каналов через запятую, где бот отвечает без @упоминания
MATTERMOST_REPLY_MODE Стиль ответа: thread (ответы в тредах) или off (плоские сообщения, по умолчанию)
MATRIX_HOMESERVER URL домашнего сервера Matrix (напр. https://matrix.org)
MATRIX_ACCESS_TOKEN Токен доступа Matrix для аутентификации бота
MATRIX_USER_ID ID пользователя Matrix (напр. @hermes:matrix.org) — требуется для входа по паролю, опционально с токеном доступа
MATRIX_PASSWORD Пароль Matrix (альтернатива токену доступа)
MATRIX_ALLOWED_USERS ID пользователей Matrix через запятую, которым разрешено отправлять сообщения боту (напр. @alice:matrix.org)
MATRIX_HOME_ROOM ID комнаты для проактивной доставки сообщений (напр. !abc123:matrix.org)
MATRIX_ENCRYPTION Включить сквозное шифрование (true/false, по умолчанию: false)
MATRIX_DEVICE_ID Стабильный ID устройства Matrix для сохранения E2EE между перезапусками (напр. HERMES_BOT). Без этого ключи E2EE меняются при каждом запуске, и расшифровка исторических комнат нарушается.
MATRIX_REACTIONS Включить emoji-реакции жизненного цикла обработки на входящие сообщения (по умолчанию: true). Установите false для отключения.
MATRIX_REQUIRE_MENTION Требовать @упоминание в комнатах (по умолчанию: true). Установите false для ответа на все сообщения.
MATRIX_FREE_RESPONSE_ROOMS ID комнат через запятую, где бот отвечает без @упоминания
MATRIX_AUTO_THREAD Автоматически создавать треды для сообщений в комнатах (по умолчанию: true)
MATRIX_DM_MENTION_THREADS Создавать тред, когда бот упомянут в ЛС (по умолчанию: false)
MATRIX_RECOVERY_KEY Ключ восстановления для кросс-подписывающей проверки после ротации ключей устройства. Рекомендуется для настроек E2EE с включённым кросс-подписыванием.
HASS_TOKEN Долгоживущий токен доступа Home Assistant (включает платформу HA + инструменты)
HASS_URL URL Home Assistant (по умолчанию: http://homeassistant.local:8123)
WEBHOOK_ENABLED Включить адаптер платформы вебхуков (true/false)
WEBHOOK_PORT Порт HTTP-сервера для приёма вебхуков (по умолчанию: 8644)
WEBHOOK_SECRET Глобальный HMAC-секрет для проверки подписи вебхука (используется как запасной, когда маршруты не указывают свой собственный)
API_SERVER_ENABLED Включить API-сервер, совместимый с OpenAI (true/false). Работает параллельно с другими платформами.
API_SERVER_KEY Bearer-токен для аутентификации API-сервера. Обязателен для привязки не к localhost.
API_SERVER_CORS_ORIGINS Источники браузера через запятую, которым разрешено вызывать API-сервер напрямую (например http://localhost:3000,http://127.0.0.1:3000). По умолчанию: отключено.
API_SERVER_PORT Порт для API-сервера (по умолчанию: 8642)
API_SERVER_HOST Хост/адрес привязки для API-сервера (по умолчанию: 127.0.0.1). Используйте 0.0.0.0 для сетевого доступа — требует API_SERVER_KEY и узкий белый список API_SERVER_CORS_ORIGINS.
API_SERVER_MODEL_NAME Имя модели, объявленное на /v1/models. По умолчанию используется имя профиля (или hermes-agent для профиля по умолчанию). Полезно для многопользовательских конфигураций, где фронтенды вроде Open WebUI требуют отдельных имён моделей для каждого подключения.
GATEWAY_PROXY_URL URL удалённого API-сервера Hermes для пересылки сообщений (режим прокси). Если установлен, gateway обрабатывает только ввод-вывод платформы — вся работа агента делегируется удалённому серверу. Также настраивается через gateway.proxy_url в config.yaml.
GATEWAY_PROXY_KEY Bearer-токен для аутентификации на удалённом API-сервере в режиме прокси. Должен совпадать с API_SERVER_KEY на удалённом хосте.
MESSAGING_CWD Рабочая директория для терминальных команд в режиме мессенджера (по умолчанию: ~)
GATEWAY_ALLOWED_USERS ID пользователей через запятую, которым разрешён доступ на всех платформах
GATEWAY_ALLOW_ALL_USERS Разрешить всех пользователей без белых списков (true/false, по умолчанию: false)

Microsoft Graph (Teams Meetings)

Учётные данные только для приложения Microsoft Graph REST клиента, используемого конвейером сводок встреч Teams. См. Регистрация приложения Microsoft Graph для ознакомления с Azure portal и точными необходимыми разрешениями API.

Переменная Описание
MSGRAPH_TENANT_ID ID арендатора Azure AD (GUID директории) для регистрации Graph-приложения.
MSGRAPH_CLIENT_ID ID приложения (клиента) регистрации Azure-приложения.
MSGRAPH_CLIENT_SECRET Значение секрета клиента для регистрации приложения. Храните в ~/.hermes/.env с chmod 600; периодически меняйте через Azure portal.
MSGRAPH_SCOPE Область OAuth2 для запроса токена учётных данных клиента (по умолчанию: https://graph.microsoft.com/.default).
MSGRAPH_AUTHORITY_URL Платформа удостоверений Microsoft (по умолчанию: https://login.microsoftonline.com). Переопределяйте только для национальных/суверенных облаков (напр. https://login.microsoftonline.us для GCC High).

Слушатель вебхуков Microsoft Graph

Слушатель входящих уведомлений об изменениях для событий Graph (встречи Teams, календарь, чат и т.д.). См. Слушатель вебхуков Microsoft Graph для настройки и усиления безопасности.

Переменная Описание
MSGRAPH_WEBHOOK_ENABLED Включить платформу шлюза msgraph_webhook (true/1/yes).
MSGRAPH_WEBHOOK_PORT Порт, который прослушивает слушатель (по умолчанию: 8646).
MSGRAPH_WEBHOOK_CLIENT_STATE Общий секрет, который Graph отправляет в каждом уведомлении; сравнивается с hmac.compare_digest. Сгенерируйте с помощью openssl rand -hex 32.
MSGRAPH_WEBHOOK_ACCEPTED_RESOURCES Белый список путей/шаблонов ресурсов Graph через запятую (напр. communications/onlineMeetings,chats/*/messages). Замыкающий * означает префиксное совпадение. Пусто = принимать все.
MSGRAPH_WEBHOOK_ALLOWED_SOURCE_CIDRS Диапазоны CIDR через запятую, которым разрешено отправлять POST на слушатель (напр. 52.96.0.0/14,52.104.0.0/14). Пусто = разрешить все (по умолчанию). В продакшене ограничьте опубликованными диапазонами исходящего трафика Microsoft Graph.

Доставка сводок встреч Teams

Используется только когда включён плагин teams_pipeline. Настройки также можно задать в platforms.teams.extra в config.yaml — переменные окружения имеют приоритет, если заданы оба варианта. См. Microsoft Teams → Доставка сводок встреч.

Переменная Описание
TEAMS_DELIVERY_MODE graph или incoming_webhook.
TEAMS_INCOMING_WEBHOOK_URL Сгенерированный Teams URL вебхука; обязателен при TEAMS_DELIVERY_MODE=incoming_webhook.
TEAMS_GRAPH_ACCESS_TOKEN Предварительно полученный делегированный токен доступа для доставки через Graph. Редко требуется — writer использует учётные данные приложения MSGRAPH_* как запасные, если не задано.
TEAMS_TEAM_ID ID целевой команды для доставки в канал (режим graph).
TEAMS_CHANNEL_ID ID целевого канала (в паре с TEAMS_TEAM_ID).
TEAMS_CHAT_ID ID целевого личного или группового чата (альтернатива команда+канал для режима graph).

LINE Messaging API

Используется встроенным плагином платформы LINE (plugins/platforms/line/). См. Шлюз мессенджеров → LINE для полной настройки.

Переменная Описание
LINE_CHANNEL_ACCESS_TOKEN Долгоживущий токен доступа канала из консоли разработчика LINE (вкладка Messaging API). Обязательно.
LINE_CHANNEL_SECRET Секрет канала (вкладка Basic settings); используется для проверки подписи вебхука HMAC-SHA256. Обязательно.
LINE_HOST Хост привязки вебхука (по умолчанию: 0.0.0.0).
LINE_PORT Порт привязки вебхука (по умолчанию: 8646).
LINE_PUBLIC_URL Публичный HTTPS базовый URL (напр. https://my-tunnel.example.com). Обязателен для отправки изображений/аудио/видео — LINE принимает только URL, доступные через HTTPS.
LINE_ALLOWED_USERS ID пользователей через запятую, которым разрешено писать боту в ЛС (с префиксом U).
LINE_ALLOWED_GROUPS ID групп через запятую, в которых бот будет отвечать (с префиксом C).
LINE_ALLOWED_ROOMS ID комнат через запятую, в которых бот будет отвечать (с префиксом R).
LINE_ALLOW_ALL_USERS Запасной вариант только для разработки — принимает любой источник. По умолчанию: false.
LINE_HOME_CHANNEL Цель доставки по умолчанию для cron-задач с deliver: line.
LINE_SLOW_RESPONSE_THRESHOLD Секунды до срабатывания отложенного ответа Template Buttons (по умолчанию: 45). Установите 0 для отключения и всегда использовать Push-fallback.
LINE_PENDING_TEXT Текст пузыря, отображаемый рядом с кнопкой postback.
LINE_BUTTON_LABEL Текст кнопки postback (по умолчанию: Get answer).
LINE_DELIVERED_TEXT Ответ, когда уже доставленная кнопка postback нажата снова (по умолчанию: Already replied ✅).
LINE_INTERRUPTED_TEXT Ответ, когда нажата кнопка postback, осиротевшая из-за /stop (по умолчанию: Run was interrupted before completion.).

Расширенная настройка мессенджеров

Расширенные регулировки для каждой платформы для управления исходящим пакетным отправителем. Большинству пользователей никогда не нужно их трогать; значения по умолчанию установлены с учётом лимитов скорости каждой платформы без ощущения замедления.

Переменная Описание
HERMES_TELEGRAM_TEXT_BATCH_DELAY_SECONDS Окно ожидания перед отправкой накопленного текстового фрагмента Telegram (по умолчанию: 0.6).
HERMES_TELEGRAM_TEXT_BATCH_SPLIT_DELAY_SECONDS Задержка между разделёнными фрагментами, когда одно сообщение Telegram превышает лимит длины (по умолчанию: 2.0).
HERMES_TELEGRAM_MEDIA_BATCH_DELAY_SECONDS Окно ожидания перед отправкой накопленных медиа Telegram (по умолчанию: 0.6).
HERMES_TELEGRAM_FOLLOWUP_GRACE_SECONDS Задержка перед отправкой последующего сообщения после завершения работы агента, чтобы избежать гонки с последним фрагментом потока.
HERMES_TELEGRAM_HTTP_CONNECT_TIMEOUT / _READ_TIMEOUT / _WRITE_TIMEOUT / _POOL_TIMEOUT Переопределить HTTP-таймауты python-telegram-bot (секунды).
HERMES_TELEGRAM_HTTP_POOL_SIZE Максимальное количество одновременных HTTP-соединений с Telegram API.
HERMES_TELEGRAM_DISABLE_FALLBACK_IPS Отключить жёстко заданные запасные IP Cloudflare, используемые при сбое DNS (true/false).
HERMES_DISCORD_TEXT_BATCH_DELAY_SECONDS Окно ожидания перед отправкой накопленного текстового фрагмента Discord (по умолчанию: 0.6).
HERMES_DISCORD_TEXT_BATCH_SPLIT_DELAY_SECONDS Задержка между разделёнными фрагментами, когда сообщение Discord превышает лимит длины (по умолчанию: 2.0).
HERMES_MATRIX_TEXT_BATCH_DELAY_SECONDS / _SPLIT_DELAY_SECONDS Эквиваленты Matrix для настроек пакетной отправки Telegram.
HERMES_FEISHU_TEXT_BATCH_DELAY_SECONDS / _SPLIT_DELAY_SECONDS / _MAX_CHARS / _MAX_MESSAGES Настройка пакетного отправителя Feishu — задержка, задержка разделения, макс. символов на сообщение, макс. сообщений в пакете.
HERMES_FEISHU_MEDIA_BATCH_DELAY_SECONDS Задержка отправки медиа Feishu.
HERMES_FEISHU_DEDUP_CACHE_SIZE Размер кэша дедупликации вебхука Feishu (по умолчанию: 1024).
HERMES_WECOM_TEXT_BATCH_DELAY_SECONDS / _SPLIT_DELAY_SECONDS Настройка пакетного отправителя WeCom.
HERMES_VISION_DOWNLOAD_TIMEOUT Таймаут в секундах для загрузки изображения перед передачей его моделям vision (по умолчанию: 30).
HERMES_RESTART_DRAIN_TIMEOUT Gateway: секунды ожидания завершения активных запусков при /restart перед принудительным перезапуском (по умолчанию: 900).
HERMES_GATEWAY_PLATFORM_CONNECT_TIMEOUT Таймаут подключения для каждой платформы при запуске gateway (секунды).
HERMES_GATEWAY_BUSY_INPUT_MODE Поведение gateway при занятости по умолчанию: queue, steer или interrupt. Можно переопределить для каждого чата с помощью /busy.
HERMES_GATEWAY_BUSY_ACK_ENABLED Отправляет ли gateway подтверждающее сообщение (⚡/⏳/⏩), когда пользователь отправляет ввод, пока агент занят (по умолчанию: true). Установите false, чтобы подавить эти сообщения полностью — ввод всё равно ставится в очередь/направляется/прерывает как обычно, только ответ в чате отключается. Переопределено из display.busy_ack_enabled в config.yaml.
HERMES_CRON_TIMEOUT Таймаут неактивности для запусков cron-задач агента в секундах (по умолчанию: 600). Агент может работать бесконечно, пока активно вызывает инструменты или получает потоковые токены — это срабатывает только при бездействии. Установите 0 для неограниченного времени.
HERMES_CRON_SCRIPT_TIMEOUT Таймаут для предварительных скриптов, прикреплённых к cron-задачам, в секундах (по умолчанию: 120). Переопределите для скриптов, требующих более длительного выполнения (напр., случайные задержки для анти-бот тайминга). Также настраивается через cron.script_timeout_seconds в config.yaml.
HERMES_CRON_MAX_PARALLEL Максимальное количество cron-задач, запускаемых параллельно за один тик (по умолчанию: 4).

Поведение агента

Переменная Описание
HERMES_MAX_ITERATIONS Максимальное количество итераций вызова инструментов за один разговор (по умолчанию: 90)
HERMES_INFERENCE_MODEL Переопределить имя модели на уровне процесса (имеет приоритет над config.yaml для сессии). Также устанавливается через флаг -m/--model.
HERMES_YOLO_MODE Установите в 1 для пропуска запросов подтверждения опасных команд. Эквивалентно --yolo.
HERMES_ACCEPT_HOOKS Автоматически одобрять любые неизвестные хуки оболочки, объявленные в config.yaml, без TTY-запроса. Эквивалентно --accept-hooks или hooks_auto_accept: true.
HERMES_IGNORE_USER_CONFIG Пропустить ~/.hermes/config.yaml и использовать встроенные значения по умолчанию (учётные данные из .env всё равно загружаются). Эквивалентно --ignore-user-config.
HERMES_IGNORE_RULES Пропустить автоматическое внедрение AGENTS.md, SOUL.md, .cursorrules, памяти и предзагруженных навыков. Эквивалентно --ignore-rules.
HERMES_MD_NAMES Список имён файлов правил через запятую для автоматического внедрения (по умолчанию: AGENTS.md,CLAUDE.md,.cursorrules,SOUL.md).
HERMES_TOOL_PROGRESS Устаревшая переменная совместимости для отображения прогресса инструментов. Предпочтительнее использовать display.tool_progress в config.yaml.
HERMES_TOOL_PROGRESS_MODE Устаревшая переменная совместимости для режима прогресса инструментов. Предпочтительнее использовать display.tool_progress в config.yaml.
HERMES_HUMAN_DELAY_MODE Темп ответов: off/natural/custom
HERMES_HUMAN_DELAY_MIN_MS Минимум диапазона пользовательской задержки (мс)
HERMES_HUMAN_DELAY_MAX_MS Максимум диапазона пользовательской задержки (мс)
HERMES_QUIET Подавить несущественный вывод (true/false)
HERMES_API_TIMEOUT Таймаут вызова LLM API в секундах (по умолчанию: 1800)
HERMES_API_CALL_STALE_TIMEOUT Таймаут устаревшего не-потокового вызова в секундах (по умолчанию: 300). Автоматически отключается для локальных провайдеров, если не задан. Также настраивается через providers.<id>.stale_timeout_seconds или providers.<id>.models.<model>.stale_timeout_seconds в config.yaml.
HERMES_STREAM_READ_TIMEOUT Таймаут чтения потокового сокета в секундах (по умолчанию: 120). Автоматически увеличивается до HERMES_API_TIMEOUT для локальных провайдеров. Увеличьте, если локальные LLM выходят по таймауту во время длительной генерации кода.
HERMES_STREAM_STALE_TIMEOUT Таймаут обнаружения устаревшего потока в секундах (по умолчанию: 180). Автоматически отключается для локальных провайдеров. Вызывает завершение соединения, если в этом окне не поступают фрагменты.
HERMES_STREAM_RETRIES Количество попыток повторного подключения в середине потока при временных сетевых ошибках (по умолчанию: 3).
HERMES_AGENT_TIMEOUT Таймаут неактивности gateway для запущенного агента в секундах (по умолчанию: 900). Сбрасывается при каждом вызове инструмента и каждом потоковом токене. Установите 0 для отключения.
HERMES_AGENT_TIMEOUT_WARNING Gateway: отправить предупреждающее сообщение через это количество секунд бездействия (по умолчанию: 75% от HERMES_AGENT_TIMEOUT).
HERMES_AGENT_NOTIFY_INTERVAL Gateway: интервал в секундах между уведомлениями о прогрессе для длительных запусков агента.
HERMES_CHECKPOINT_TIMEOUT Таймаут создания контрольной точки файловой системы в секундах (по умолчанию: 30).
HERMES_EXEC_ASK Включить запросы на подтверждение выполнения в режиме gateway (true/false)
HERMES_ENABLE_PROJECT_PLUGINS Включить автоматическое обнаружение локальных плагинов репозитория из ./.hermes/plugins/ (true/false, по умолчанию: false)
HERMES_PLUGINS_DEBUG 1/true для вывода подробных логов обнаружения плагинов в stderr — сканированные директории, разобранные манифесты, причины пропуска и полные трассировки при сбое парсинга или register(). Предназначено для авторов плагинов.
HERMES_BACKGROUND_NOTIFICATIONS Режим уведомлений фоновых процессов в gateway: all (по умолчанию), result, error, off
HERMES_EPHEMERAL_SYSTEM_PROMPT Эфемерный системный промпт, внедряемый при вызове API (никогда не сохраняется в сессиях)
HERMES_PREFILL_MESSAGES_FILE Путь к JSON-файлу с эфемерными prefill-сообщениями, внедряемыми при вызове API.
HERMES_ALLOW_PRIVATE_URLS true/false — разрешить инструментам получать URL localhost/частной сети. По умолчанию отключено в режиме gateway.
HERMES_REDACT_SECRETS true/false — управлять редактированием секретов в выводе инструментов, логах и ответах чата (по умолчанию: true).
HERMES_WRITE_SAFE_ROOT Опциональный префикс директории, ограничивающий запись write_file/patch; пути за его пределами требуют подтверждения.
HERMES_DISABLE_FILE_STATE_GUARD Установите в 1 для отключения проверки «файл изменился с момента чтения» для patch/write_file.
HERMES_CORE_TOOLS Переопределение основного списка инструментов через запятую (продвинутое; редко требуется).
HERMES_BUNDLED_SKILLS Переопределение списка встроенных навыков, загружаемых при запуске, через запятую.
HERMES_OPTIONAL_SKILLS Список имён опциональных навыков через запятую для автоматической установки при первом запуске.
HERMES_DEBUG_INTERRUPT Установите в 1 для логирования подробной трассировки прерываний/отмены в agent.log.
HERMES_DUMP_REQUESTS Сохранять полезную нагрузку API-запросов в файлы логов (true/false)
HERMES_DUMP_REQUEST_STDOUT Сохранять полезную нагрузку API-запросов в stdout вместо файлов логов.
HERMES_OAUTH_TRACE Установите в 1 для логирования попыток обмена и обновления OAuth-токенов. Включает редактированную информацию о времени.
HERMES_OAUTH_FILE Переопределить путь для хранения учётных данных OAuth (по умолчанию: ~/.hermes/auth.json).
HERMES_AGENT_HELP_GUIDANCE Добавить дополнительный текст руководства в системный промпт для пользовательских развёртываний.
HERMES_AGENT_LOGO Переопределить ASCII-баннер логотипа при запуске CLI.
DELEGATION_MAX_CONCURRENT_CHILDREN Максимальное количество параллельных сабагентов на один пакет delegate_task (по умолчанию: 3, минимум 1, без верхнего предела). Также настраивается через delegation.max_concurrent_children в config.yaml — значение из конфига имеет приоритет.

Интерфейс

Переменная Описание
HERMES_TUI Запустить TUI вместо классического CLI, если установлено в 1. Эквивалентно передаче --tui.
HERMES_TUI_DIR Путь к предварительно собранной директории ui-tui/ (должна содержать dist/entry.js и заполненный node_modules). Используется дистрибутивами и Nix для пропуска npm install при первом запуске.
HERMES_TUI_RESUME Возобновить конкретную сессию TUI по ID при запуске. Если установлено, hermes --tui пропускает создание новой сессии и вместо этого загружает указанную — полезно для повторного подключения после отключения или сбоя терминала.
HERMES_TUI_THEME Принудительно установить цветовую тему TUI: light, dark или сырой 6-символьный шестнадцатеричный фон (напр. ffffff или 1a1a2e). Если не задано, Hermes определяет автоматически с помощью COLORFGBG и запросов фона терминала; эта переменная переопределяет определение на терминалах (Ghostty, Warp, iTerm2 и т.д.), которые не устанавливают COLORFGBG.
HERMES_INFERENCE_MODEL Принудительно установить модель для hermes -z / hermes chat без изменения config.yaml. Сочетается с HERMES_INFERENCE_PROVIDER. Полезно для скриптовых вызывающих программ (sweeper, CI, пакетные запуски), которым нужно переопределять модель по умолчанию для каждого запуска.

Настройки сессий

Переменная Описание
SESSION_IDLE_MINUTES Сбрасывать сессии после N минут бездействия (по умолчанию: 1440)
SESSION_RESET_HOUR Час ежедневного сброса в 24-часовом формате (по умолчанию: 4 = 4 утра)

Сжатие контекста (только config.yaml)

Сжатие контекста настраивается исключительно через config.yaml — для него нет переменных окружения. Параметры порогов находятся в блоке compression:, а модель/провайдер суммаризации — в auxiliary.compression:.

compression:
  enabled: true
  threshold: 0.50
  target_ratio: 0.20         # доля порога для сохранения в качестве недавнего хвоста
  protect_last_n: 20         # минимальное количество последних сообщений для сохранения без сжатия

info Миграция устаревших настроек Старые конфиги с compression.summary_model, compression.summary_provider и compression.summary_base_url автоматически мигрируются в auxiliary.compression.* при первой загрузке.

Переопределения вспомогательных задач

Переменная Описание
AUXILIARY_VISION_PROVIDER Переопределить провайдера для задач vision
AUXILIARY_VISION_MODEL Переопределить модель для задач vision
AUXILIARY_VISION_BASE_URL Прямой endpoint, совместимый с OpenAI, для задач vision
AUXILIARY_VISION_API_KEY API-ключ в паре с AUXILIARY_VISION_BASE_URL
AUXILIARY_WEB_EXTRACT_PROVIDER Переопределить провайдера для извлечения/суммаризации веб-страниц
AUXILIARY_WEB_EXTRACT_MODEL Переопределить модель для извлечения/суммаризации веб-страниц
AUXILIARY_WEB_EXTRACT_BASE_URL Прямой endpoint, совместимый с OpenAI, для извлечения/суммаризации веб-страниц
AUXILIARY_WEB_EXTRACT_API_KEY API-ключ в паре с AUXILIARY_WEB_EXTRACT_BASE_URL

Для прямых endpoint-ов, специфичных для задач, Hermes использует настроенный API-ключ задачи или OPENAI_API_KEY. Он не использует OPENROUTER_API_KEY для этих пользовательских endpoint-ов.

Запасные провайдеры (только config.yaml)

Цепочка запасных провайдеров для основной модели настраивается исключительно через config.yaml — для неё нет переменных окружения. Добавьте список верхнего уровня fallback_providers с ключами provider и model, чтобы включить автоматическое переключение при возникновении ошибок в основной модели.

fallback_providers:
  - provider: openrouter
    model: anthropic/claude-sonnet-4

Устаревшая форма fallback_model с одним провайдером всё ещё читается для обратной совместимости, но в новых конфигурациях следует использовать fallback_providers.

См. Запасные провайдеры для полной информации.

Маршрутизация провайдеров (только config.yaml)

Эти настройки указываются в ~/.hermes/config.yaml в разделе provider_routing:

Ключ Описание
sort Сортировать провайдеров: "price" (по умолчанию), "throughput" или "latency"
only Список слагов провайдеров для разрешения (напр., ["anthropic", "google"])
ignore Список слагов провайдеров для пропуска
order Список слагов провайдеров для пробования по порядку
require_parameters Использовать только провайдеров, поддерживающих все параметры запроса (true/false)
data_collection "allow" (по умолчанию) или "deny" для исключения провайдеров, сохраняющих данные
Используйте `hermes config set` для установки переменных окружения — он автоматически сохраняет их в нужный файл (`.env` для секретов, `config.yaml` для всего остального).