Tham khảo biến môi trường
Tất cả các biến đều nằm trong ~/.hermes/.env. Bạn cũng có thể đặt chúng bằng hermes config set VAR value.
Nhà cung cấp LLM
| Biến | Mô tả |
|---|---|
OPENROUTER_API_KEY | Khóa API OpenRouter (được khuyến nghị để linh hoạt) |
OPENROUTER_BASE_URL | Ghi đè URL cơ sở tương thích với OpenRouter |
AI_GATEWAY_API_KEY | Khóa API Vercel AI Gateway (ai-gateway.vercel.sh) |
AI_GATEWAY_BASE_URL | Ghi đè URL cơ sở của AI Gateway (mặc định: https://ai-gateway.vercel.sh/v1) |
OPENAI_API_KEY | Khóa API cho các điểm cuối tương thích với OpenAI tùy chỉnh (được sử dụng với OPENAI_BASE_URL) |
OPENAI_BASE_URL | URL cơ sở cho điểm cuối tùy chỉnh (VLLM, SGLang, v.v.) |
COPILOT_GITHUB_TOKEN | Mã thông báo GitHub cho API Copilot — ưu tiên hàng đầu (OAuth gho_* hoặc PAT chi tiết github_pat_*; PAT cổ điển ghp_* không được hỗ trợ) |
GH_TOKEN | Mã thông báo GitHub — ưu tiên thứ hai cho Copilot (cũng được sử dụng bởi gh CLI) |
GITHUB_TOKEN | Mã thông báo GitHub — ưu tiên thứ ba cho Copilot |
HERMES_COPILOT_ACP_COMMAND | Ghi đè đường dẫn nhị phân Copilot ACP CLI (mặc định: copilot) |
COPILOT_CLI_PATH | Bí danh cho HERMES_COPILOT_ACP_COMMAND |
HERMES_COPILOT_ACP_ARGS | Ghi đè các đối số Copilot ACP (mặc định: --acp --stdio) |
COPILOT_ACP_BASE_URL | Ghi đè URL cơ sở Copilot ACP |
GLM_API_KEY | z.ai / Khóa API ZhipuAI GLM (z.ai) |
ZAI_API_KEY | Bí danh cho GLM_API_KEY |
Z_AI_API_KEY | Bí danh cho GLM_API_KEY |
GLM_BASE_URL | Ghi đè URL cơ sở z.ai (mặc định: https://api.z.ai/api/paas/v4) |
KIMI_API_KEY | Khóa API Kimi / Moonshot AI (moonshot.ai) |
KIMI_BASE_URL | Ghi đè URL cơ sở Kimi (mặc định: https://api.moonshot.ai/v1) |
MINIMAX_API_KEY | Khóa API MiniMax — điểm cuối toàn cầu (minimax.io) |
MINIMAX_BASE_URL | Ghi đè URL cơ sở MiniMax (mặc định: https://api.minimax.io/v1) |
MINIMAX_CN_API_KEY | Khóa API MiniMax — Điểm cuối Trung Quốc (minimaxi.com) |
MINIMAX_CN_BASE_URL | Ghi đè URL cơ sở MiniMax Trung Quốc (mặc định: https://api.minimaxi.com/v1) |
KILOCODE_API_KEY | Khóa API mã Kilo (kilo.ai) |
KILOCODE_BASE_URL | Ghi đè URL cơ sở Mã Kilo (mặc định: https://api.kilo.ai/api/gateway) |
HF_TOKEN | Mã thông báo Ôm khuôn mặt dành cho Nhà cung cấp suy luận (huggingface.co/settings/tokens) |
HF_BASE_URL | Ghi đè URL cơ sở Ôm khuôn mặt (mặc định: https://router.huggingface.co/v1) |
GOOGLE_API_KEY | Khóa API Google AI Studio (aistudio.google.com/app/apikey) |
GEMINI_API_KEY | Bí danh cho GOOGLE_API_KEY |
GEMINI_BASE_URL | Ghi đè URL cơ sở Google AI Studio |
ANTHOPIC_API_KEY | Khóa API của Anthropic Console (console.anthropic.com) |
ANTHROPIC_TOKEN | Ghi đè thủ công hoặc kế thừa OAuth/mã thông báo thiết lập Anthropic |
DASHSCOPE_API_KEY | Khóa API của Alibaba Cloud DashScope cho các mô hình Qwen (modelstudio.console.alibabacloud.com) |
DASHSCOPE_BASE_URL | URL cơ sở DashScope tùy chỉnh (mặc định: https://coding-intl.dashscope.aliyuncs.com/v1) |
DEEPSEEK_API_KEY | Khóa API DeepSeek để truy cập DeepSeek trực tiếp (platform.deepseek.com) |
DEEPSEEK_BASE_URL | URL cơ sở API DeepSeek tùy chỉnh |
OPENCODE_ZEN_API_KEY | Khóa API OpenCode Zen — quyền truy cập trả tiền khi bạn sử dụng vào các mô hình được quản lý (opencode.ai) |
OPENCODE_ZEN_BASE_URL | Ghi đè URL cơ sở OpenCode Zen |
OPENCODE_GO_API_KEY | Khóa API OpenCode Go — đăng ký $10/tháng cho các mô hình mở (opencode.ai) |
OPENCODE_GO_BASE_URL | Ghi đè OpenCode Go URL cơ sở |
CLAUDE_CODE_OAUTH_TOKEN | Ghi đè mã thông báo Claude Code rõ ràng nếu bạn xuất thủ công |
HERMES_MODEL | Tên mẫu máy ưa thích (được chọn trước LLM_MODEL, được sử dụng bởi cổng) |
LLM_MODEL | Tên mô hình mặc định (dự phòng khi không được đặt trong config.yaml) |
VOICE_TOOLS_OPENAI_KEY | Khóa OpenAI ưa thích dành cho các nhà cung cấp dịch vụ chuyển lời nói thành văn bản và chuyển văn bản thành giọng nói OpenAI |
HERMES_LOCAL_STT_COMMAND | Mẫu lệnh chuyển giọng nói thành văn bản cục bộ tùy chọn. Hỗ trợ các phần giữ chỗ {input_path}, {output_dir}, {lingu} và {model} |
HERMES_LOCAL_STT_LANGUAGE | Ngôn ngữ mặc định được chuyển tới HERMES_LOCAL_STT_COMMAND hoặc dự phòng CLI whisper cục bộ được phát hiện tự động (mặc định: en) |
HERMES_HOME | Ghi đè thư mục cấu hình Hermes (mặc định: ~/.hermes). Đồng thời xác định phạm vi tệp PID cổng và tên dịch vụ systemd, do đó, nhiều cài đặt có thể chạy đồng thời |
Xác thực nhà cung cấp (OAuth)
Đối với xác thực Anthropic gốc, Hermes ưu tiên các tệp thông tin xác thực của riêng Claude Code khi chúng tồn tại vì những thông tin xác thực đó có thể tự động làm mới. Các biến môi trường như ANTHROPIC_TOKEN vẫn hữu ích khi ghi đè thủ công, nhưng chúng không còn là đường dẫn ưu tiên để đăng nhập Claude Pro/Max.
| Biến | Mô tả |
|---|---|
HERMES_INFERENCE_PROVIDER | Ghi đè lựa chọn nhà cung cấp: auto, openrouter, nous, openai-codex, copilot, copilot-acp, anthropic, huggingface, zai, kimi-coding, minimax, minimax-cn, kilocode, alibaba, deepseek, opencode-zen, opencode-go, ai-gateway (mặc định: auto) |
HERMES_PORTAL_BASE_URL | Ghi đè URL Cổng thông tin Nous (để phát triển/thử nghiệm) |
NOUS_INFERENCE_BASE_URL | Ghi đè URL API suy luận Nous |
HERMES_NOUS_MIN_KEY_TTL_SECONDS | Khóa tác nhân tối thiểu TTL trước khi đúc lại (mặc định: 1800 = 30 phút) |
HERMES_NOUS_TIMEOUT_SECONDS | Hết thời gian chờ HTTP cho luồng thông tin xác thực / mã thông báo Nous |
HERMES_DUMP_REQUESTS | Kết xuất tải trọng yêu cầu API vào tệp nhật ký (true/false) |
HERMES_PREFILL_MESSAGES_FILE | Đường dẫn đến tệp JSON chứa các thông báo điền trước tạm thời được chèn vào thời điểm gọi API |
HERMES_TIMEZONE | Ghi đè múi giờ IANA (ví dụ America/New_York) |
API công cụ
| Biến | Mô tả |
|---|---|
PARALLEL_API_KEY | Tìm kiếm trên web dựa trên AI (parallel.ai) |
FIRECRAWL_API_KEY | Quét web và trình duyệt đám mây (firecrawl.dev) |
FIRECRAWL_API_URL | Điểm cuối API Firecrawl tùy chỉnh cho các phiên bản tự lưu trữ (tùy chọn) |
TAVILY_API_KEY | Khóa API Tavily để tìm kiếm, trích xuất và thu thập thông tin trên web gốc AI (app.tavily.com) |
EXA_API_KEY | Khóa API Exa dành cho nội dung và tìm kiếm trên web gốc AI (exa.ai) |
BROWSERBASE_API_KEY | Tự động hóa trình duyệt (browserbase.com) |
BROWSERBASE_PRO DỰ ÁN_ID | ID dự án cơ sở trình duyệt |
BROWSER_USE_API_KEY | Trình duyệt Sử dụng khóa API trình duyệt đám mây (browser-use.com) |
FIRECRAWL_BROWSER_TTL | Phiên trình duyệt Firecrawl TTL tính bằng giây (mặc định: 300) |
BROWSER_CDP_URL | URL giao thức Chrome DevTools cho trình duyệt cục bộ (được đặt qua /browser connect, ví dụ: ws://localhost:9222) |
CAMOFOX_URL | URL trình duyệt chống phát hiện cục bộ Camofox (mặc định: http://localhost:9377) |
BROWSER_INACTIVITY_TIMEOUT | Thời gian chờ không hoạt động của phiên trình duyệt tính bằng giây |
FAL_KEY | Tạo hình ảnh (fal.ai) |
GROQ_API_KEY | Khóa API Groq Whisper STT (groq.com) |
ELEVENLABS_API_KEY | Giọng nói TTS cao cấp của ElevenLabs (elevenlabs.io) |
STT_GROQ_MODEL | Ghi đè mô hình Groq STT (mặc định: whisper-large-v3-turbo) |
GROQ_BASE_URL | Ghi đè điểm cuối STT tương thích với Groq OpenAI |
STT_OPENAI_MODEL | Ghi đè mô hình OpenAI STT (mặc định: whisper-1) |
STT_OPENAI_BASE_URL | Ghi đè điểm cuối STT tương thích với OpenAI |
GITHUB_TOKEN | Mã thông báo GitHub cho Trung tâm kỹ năng (giới hạn tỷ lệ API cao hơn, xuất bản kỹ năng) |
HONCHO_API_KEY | Lập mô hình người dùng giữa các phiên (honcho.dev) |
HONCHO_BASE_URL | URL cơ sở cho các phiên bản Honcho tự lưu trữ (mặc định: đám mây Honcho). Không cần khóa API cho phiên bản cục bộ |
SUPERMEMORY_API_KEY | Bộ nhớ dài hạn ngữ nghĩa với tính năng thu hồi hồ sơ và nhập phiên (supermemory.ai) |
TINKER_API_KEY | Đào tạo RL (tinker-console.thinkingmachines.ai) |
WANDB_API_KEY | Các chỉ số đào tạo RL (wandb.ai) |
DAYTONA_API_KEY | Hộp cát đám mây Daytona (daytona.io) |
Phần cuối của thiết bị đầu cuối
| Biến | Mô tả |
|---|---|
TERMINAL_ENV | Phần cuối: local, docker, ssh, singularity, modal, daytona |
TERMINAL_DOCKER_IMAGE | Hình ảnh Docker (mặc định: nikolaik/python-nodejs:python3.11-nodejs20) |
TERMINAL_DOCKER_FORWARD_ENV | Mảng JSON chứa các tên var env để chuyển tiếp rõ ràng tới các phiên cuối của Docker. Lưu ý: required_environment_variables được khai báo theo kỹ năng được chuyển tiếp tự động - bạn chỉ cần điều này đối với các vars không được khai báo bởi bất kỳ kỹ năng nào. |
TERMINAL_DOCKER_VOLUMES | Các phần gắn kết khối lượng Docker bổ sung (cặp host:container được phân tách bằng dấu phẩy) |
TERMINAL_DOCKER_MOUNT_CWD_TO_WORKSPACE | Chọn tham gia nâng cao: gắn cwd khởi chạy vào Docker /workspace (true/false, mặc định: false) |
TERMINAL_SINGULARITY_IMAGE | Hình ảnh kỳ dị hoặc đường dẫn .sif |
TERMINAL_MODAL_IMAGE | Hình ảnh vùng chứa phương thức |
TERMINAL_DAYTONA_IMAGE | Hình ảnh hộp cát Daytona |
TERMINAL_TIMEOUT | Thời gian chờ lệnh tính bằng giây |
TERMINAL_LIFETIME_SECONDS | Thời gian tồn tại tối đa cho các phiên cuối tính bằng giây |
TERMINAL_CWD | Thư mục làm việc cho tất cả các phiên cuối |
SUDO_PASSWORD | Bật sudo mà không cần lời nhắc tương tác |
Đối với các chương trình phụ trợ hộp cát trên đám mây, tính bền vững được định hướng theo hệ thống tệp. TERMINAL_LIFETIME_SECONDS kiểm soát thời điểm Hermes dọn dẹp phiên cuối không hoạt động và các lần tiếp tục sau đó có thể tạo lại hộp cát thay vì tiếp tục chạy các quy trình trực tiếp tương tự.
Phần cuối SSH
| Biến | Mô tả |
|---|---|
TERMINAL_SSH_HOST | Tên máy chủ từ xa |
TERMINAL_SSH_USER | tên người dùng SSH |
TERMINAL_SSH_PORT | Cổng SSH (mặc định: 22) |
TERMINAL_SSH_KEY | Đường dẫn đến khóa riêng |
TERMINAL_SSH_PERSISTENT | Ghi đè shell liên tục cho SSH (mặc định: tuân theo TERMINAL_PERSISTENT_SHELL) |
Tài nguyên vùng chứa (Docker, Singularity, Modal, Daytona)
| Biến | Mô tả |
|---|---|
TERMINAL_CONTAINER_CPU | Lõi CPU (mặc định: 1) |
TERMINAL_CONTAINER_MEMORY | Bộ nhớ tính bằng MB (mặc định: 5120) |
TERMINAL_CONTAINER_DISK | Đĩa tính bằng MB (mặc định: 51200) |
TERMINAL_CONTAINER_PERSISTENT | Duy trì hệ thống tập tin vùng chứa qua các phiên (mặc định: true) |
TERMINAL_SANDBOX_DIR | Thư mục máy chủ cho không gian làm việc và lớp phủ (mặc định: ~/.hermes/sandboxes/) |
Vỏ liên tục
| Biến | Mô tả |
|---|---|
TERMINAL_PERSISTENT_SHELL | Bật shell liên tục cho các chương trình phụ trợ không cục bộ (mặc định: true). Cũng có thể giải quyết thông qua terminal.persistent_shell trong config.yaml |
TERMINAL_LOCAL_PERSISTENT | Kích hoạt shell liên tục cho chương trình phụ trợ cục bộ (mặc định: false) |
TERMINAL_SSH_PERSISTENT | Ghi đè shell liên tục cho chương trình phụ trợ SSH (mặc định: tuân theo TERMINAL_PERSISTENT_SHELL) |
Messaging
| Variable | Description |
|---|---|
TELEGRAM_BOT_TOKEN | Telegram bot token (from @BotFather) |
TELEGRAM_ALLOWED_USERS | Comma-separated user IDs allowed to use the bot |
TELEGRAM_HOME_CHANNEL | Default Telegram chat/channel for cron delivery |
TELEGRAM_HOME_CHANNEL_NAME | Display name for the Telegram home channel |
TELEGRAM_WEBHOOK_URL | Public HTTPS URL for webhook mode (enables webhook instead of polling) |
TELEGRAM_WEBHOOK_PORT | Local listen port for webhook server (default: 8443) |
TELEGRAM_WEBHOOK_SECRET | Secret token for verifying updates come from Telegram |
TELEGRAM_REACTIONS | Enable emoji reactions on messages during processing (default: false) |
DISCORD_BOT_TOKEN | Discord bot token |
DISCORD_ALLOWED_USERS | Comma-separated Discord user IDs allowed to use the bot |
DISCORD_HOME_CHANNEL | Default Discord channel for cron delivery |
DISCORD_HOME_CHANNEL_NAME | Display name for the Discord home channel |
DISCORD_REQUIRE_MENTION | Require an @mention before responding in server channels |
DISCORD_FREE_RESPONSE_CHANNELS | Comma-separated channel IDs where mention is not required |
DISCORD_AUTO_THREAD | Auto-thread long replies when supported |
DISCORD_REACTIONS | Enable emoji reactions on messages during processing (default: true) |
DISCORD_IGNORED_CHANNELS | Comma-separated channel IDs where the bot never responds |
DISCORD_NO_THREAD_CHANNELS | Comma-separated channel IDs where bot responds without auto-threading |
SLACK_BOT_TOKEN | Slack bot token (xoxb-...) |
SLACK_APP_TOKEN | Slack app-level token (xapp-..., required for Socket Mode) |
SLACK_ALLOWED_USERS | Comma-separated Slack user IDs |
SLACK_HOME_CHANNEL | Default Slack channel for cron delivery |
SLACK_HOME_CHANNEL_NAME | Display name for the Slack home channel |
WHATSAPP_ENABLED | Enable the WhatsApp bridge (true/false) |
WHATSAPP_MODE | bot (separate number) or self-chat (message yourself) |
WHATSAPP_ALLOWED_USERS | Comma-separated phone numbers (with country code, no +), or * to allow all senders |
WHATSAPP_ALLOW_ALL_USERS | Allow all WhatsApp senders without an allowlist (true/false) |
WHATSAPP_DEBUG | Log raw message events in the bridge for troubleshooting (true/false) |
SIGNAL_HTTP_URL | signal-cli daemon HTTP endpoint (for example http://127.0.0.1:8080) |
SIGNAL_ACCOUNT | Bot phone number in E.164 format |
SIGNAL_ALLOWED_USERS | Comma-separated E.164 phone numbers or UUIDs |
SIGNAL_GROUP_ALLOWED_USERS | Comma-separated group IDs, or * for all groups |
SIGNAL_HOME_CHANNEL_NAME | Display name for the Signal home channel |
SIGNAL_IGNORE_STORIES | Ignore Signal stories/status updates |
SIGNAL_ALLOW_ALL_USERS | Allow all Signal users without an allowlist |
TWILIO_ACCOUNT_SID | Twilio Account SID (shared with telephony skill) |
TWILIO_AUTH_TOKEN | Twilio Auth Token (shared with telephony skill) |
TWILIO_PHONE_NUMBER | Twilio phone number in E.164 format (shared with telephony skill) |
SMS_WEBHOOK_PORT | Webhook listener port for inbound SMS (default: 8080) |
SMS_ALLOWED_USERS | Comma-separated E.164 phone numbers allowed to chat |
SMS_ALLOW_ALL_USERS | Allow all SMS senders without an allowlist |
SMS_HOME_CHANNEL | Phone number for cron job / notification delivery |
SMS_HOME_CHANNEL_NAME | Display name for the SMS home channel |
EMAIL_ADDRESS | Email address for the Email gateway adapter |
EMAIL_PASSWORD | Password or app password for the email account |
EMAIL_IMAP_HOST | IMAP hostname for the email adapter |
EMAIL_IMAP_PORT | IMAP port |
EMAIL_SMTP_HOST | SMTP hostname for the email adapter |
EMAIL_SMTP_PORT | SMTP port |
EMAIL_ALLOWED_USERS | Comma-separated email addresses allowed to message the bot |
EMAIL_HOME_ADDRESS | Default recipient for proactive email delivery |
EMAIL_HOME_ADDRESS_NAME | Display name for the email home target |
EMAIL_POLL_INTERVAL | Email polling interval in seconds |
EMAIL_ALLOW_ALL_USERS | Allow all inbound email senders |
DINGTALK_CLIENT_ID | DingTalk bot AppKey from developer portal (open.dingtalk.com) |
DINGTALK_CLIENT_SECRET | DingTalk bot AppSecret from developer portal |
DINGTALK_ALLOWED_USERS | Comma-separated DingTalk user IDs allowed to message the bot |
FEISHU_APP_ID | Feishu/Lark bot App ID from open.feishu.cn |
FEISHU_APP_SECRET | Feishu/Lark bot App Secret |
FEISHU_DOMAIN | feishu (China) or lark (international). Default: feishu |
FEISHU_CONNECTION_MODE | websocket (recommended) or webhook. Default: websocket |
FEISHU_ENCRYPT_KEY | Optional encryption key for webhook mode |
FEISHU_VERIFICATION_TOKEN | Optional verification token for webhook mode |
FEISHU_ALLOWED_USERS | Comma-separated Feishu user IDs allowed to message the bot |
FEISHU_HOME_CHANNEL | Feishu chat ID for cron delivery and notifications |
WECOM_BOT_ID | WeCom AI Bot ID from admin console |
WECOM_SECRET | WeCom AI Bot secret |
WECOM_WEBSOCKET_URL | Custom WebSocket URL (default: wss://openws.work.weixin.qq.com) |
WECOM_ALLOWED_USERS | Comma-separated WeCom user IDs allowed to message the bot |
WECOM_HOME_CHANNEL | WeCom chat ID for cron delivery and notifications |
MATTERMOST_URL | Mattermost server URL (e.g. https://mm.example.com) |
MATTERMOST_TOKEN | Bot token or personal access token for Mattermost |
MATTERMOST_ALLOWED_USERS | Comma-separated Mattermost user IDs allowed to message the bot |
MATTERMOST_HOME_CHANNEL | Channel ID for proactive message delivery (cron, notifications) |
MATTERMOST_REQUIRE_MENTION | Require @mention in channels (default: true). Set to false to respond to all messages. |
MATTERMOST_FREE_RESPONSE_CHANNELS | Comma-separated channel IDs where bot responds without @mention |
MATTERMOST_REPLY_MODE | Reply style: thread (threaded replies) or off (flat messages, default) |
MATRIX_HOMESERVER | Matrix homeserver URL (e.g. https://matrix.org) |
MATRIX_ACCESS_TOKEN | Matrix access token for bot authentication |
MATRIX_USER_ID | Matrix user ID (e.g. @hermes:matrix.org) — required for password login, optional with access token |
MATRIX_PASSWORD | Matrix password (alternative to access token) |
MATRIX_ALLOWED_USERS | Comma-separated Matrix user IDs allowed to message the bot (e.g. @alice:matrix.org) |
MATRIX_HOME_ROOM | Room ID for proactive message delivery (e.g. !abc123:matrix.org) |
MATRIX_ENCRYPTION | Enable end-to-end encryption (true/false, default: false) |
MATRIX_REQUIRE_MENTION | Require @mention in rooms (default: true). Set to false to respond to all messages. |
MATRIX_FREE_RESPONSE_ROOMS | Comma-separated room IDs where bot responds without @mention |
MATRIX_AUTO_THREAD | Auto-create threads for room messages (default: true) |
HASS_TOKEN | Home Assistant Long-Lived Access Token (enables HA platform + tools) |
HASS_URL | Home Assistant URL (default: http://homeassistant.local:8123) |
WEBHOOK_ENABLED | Enable the webhook platform adapter (true/false) |
WEBHOOK_PORT | HTTP server port for receiving webhooks (default: 8644) |
WEBHOOK_SECRET | Global HMAC secret for webhook signature validation (used as fallback when routes don't specify their own) |
API_SERVER_ENABLED | Enable the OpenAI-compatible API server (true/false). Runs alongside other platforms. |
API_SERVER_KEY | Bearer token for API server authentication. Strongly recommended; required for any network-accessible deployment. |
API_SERVER_CORS_ORIGINS | Comma-separated browser origins allowed to call the API server directly (for example http://localhost:3000,http://127.0.0.1:3000). Default: disabled. |
API_SERVER_PORT | Port for the API server (default: 8642) |
API_SERVER_HOST | Host/bind address for the API server (default: 127.0.0.1). Use 0.0.0.0 for network access only with API_SERVER_KEY and a narrow API_SERVER_CORS_ORIGINS allowlist. |
MESSAGING_CWD | Working directory for terminal commands in messaging mode (default: ~) |
GATEWAY_ALLOWED_USERS | Comma-separated user IDs allowed across all platforms |
GATEWAY_ALLOW_ALL_USERS | Allow all users without allowlists (true/false, default: false) |
Agent Behavior
| Variable | Description |
|---|---|
HERMES_MAX_ITERATIONS | Max tool-calling iterations per conversation (default: 90) |
HERMES_TOOL_PROGRESS | Deprecated compatibility variable for tool progress display. Prefer display.tool_progress in config.yaml. |
HERMES_TOOL_PROGRESS_MODE | Deprecated compatibility variable for tool progress mode. Prefer display.tool_progress in config.yaml. |
HERMES_HUMAN_DELAY_MODE | Response pacing: off/natural/custom |
HERMES_HUMAN_DELAY_MIN_MS | Custom delay range minimum (ms) |
HERMES_HUMAN_DELAY_MAX_MS | Custom delay range maximum (ms) |
HERMES_QUIET | Suppress non-essential output (true/false) |
HERMES_API_TIMEOUT | LLM API call timeout in seconds (default: 1800) |
HERMES_EXEC_ASK | Enable execution approval prompts in gateway mode (true/false) |
HERMES_ENABLE_PROJECT_PLUGINS | Enable auto-discovery of repo-local plugins from ./.hermes/plugins/ (true/false, default: false) |
HERMES_BACKGROUND_NOTIFICATIONS | Background process notification mode in gateway: all (default), result, error, off |
HERMES_EPHEMERAL_SYSTEM_PROMPT | Ephemeral system prompt injected at API-call time (never persisted to sessions) |
Session Settings
| Variable | Description |
|---|---|
SESSION_IDLE_MINUTES | Reset sessions after N minutes of inactivity (default: 1440) |
SESSION_RESET_HOUR | Daily reset hour in 24h format (default: 4 = 4am) |
Context Compression (config.yaml only)
Context compression is configured exclusively through the compression section in config.yaml — there are no environment variables for it.
compression:
enabled: true
threshold: 0.50
summary_model: "" # empty = use main configured model
summary_provider: auto
summary_base_url: null # Custom OpenAI-compatible endpoint for summaries
Auxiliary Task Overrides
| Variable | Description |
|---|---|
AUXILIARY_VISION_PROVIDER | Override provider for vision tasks |
AUXILIARY_VISION_MODEL | Override model for vision tasks |
AUXILIARY_VISION_BASE_URL | Direct OpenAI-compatible endpoint for vision tasks |
AUXILIARY_VISION_API_KEY | API key paired with AUXILIARY_VISION_BASE_URL |
AUXILIARY_WEB_EXTRACT_PROVIDER | Override provider for web extraction/summarization |
AUXILIARY_WEB_EXTRACT_MODEL | Override model for web extraction/summarization |
AUXILIARY_WEB_EXTRACT_BASE_URL | Direct OpenAI-compatible endpoint for web extraction/summarization |
AUXILIARY_WEB_EXTRACT_API_KEY | API key paired with AUXILIARY_WEB_EXTRACT_BASE_URL |
For task-specific direct endpoints, Hermes uses the task's configured API key or OPENAI_API_KEY. It does not reuse OPENROUTER_API_KEY for those custom endpoints.
Fallback Model (config.yaml only)
The primary model fallback is configured exclusively through config.yaml — there are no environment variables for it. Add a fallback_model section with provider and model keys to enable automatic failover when your main model encounters errors.
fallback_model:
provider: openrouter
model: anthropic/claude-sonnet-4
See Fallback Providers for full details.
Provider Routing (config.yaml only)
These go in ~/.hermes/config.yaml under the provider_routing section:
| Key | Description |
|---|---|
sort | Sort providers: "price" (default), "throughput", or "latency" |
only | List of provider slugs to allow (e.g., ["anthropic", "google"]) |
ignore | List of provider slugs to skip |
order | List of provider slugs to try in order |
require_parameters | Only use providers supporting all request params (true/false) |
data_collection | "allow" (default) or "deny" to exclude data-storing providers |
Use hermes config set to set environment variables — it automatically saves them to the right file (.env for secrets, config.yaml for everything else).