Skip to main content
Hermes reads environment variables from ~/.hermes/.env (loaded on startup) and from the shell environment. The .env file takes precedence over stale shell exports. Use hermes setup to configure variables interactively, or set them directly:
To edit the .env file directly:
HERMES_HOME overrides the base directory for all config files. Default is ~/.hermes. Set this before running any hermes command.

Provider API keys

At least one provider must be configured for Hermes to start. Run hermes setup to choose a provider interactively.
string
API key for OpenRouter. Provides access to 100+ models including Claude, GPT, Gemini, and open-source models. Also required for the vision_analyze and mixture_of_agents tools when using auxiliary providers.
string
API key for direct Anthropic API access (Claude models). Alternative to using Anthropic via OpenRouter.
string
OpenAI API key. Used when OPENAI_BASE_URL is set (custom endpoint) or for direct OpenAI access.
string
Base URL for any OpenAI-compatible endpoint (custom deployments, local models, proxies). When set alongside OPENAI_API_KEY, Hermes routes all requests to this endpoint.
string
API key for Z.AI / ZhipuAI GLM models (GLM-5, GLM-4.7, etc.). Also recognized as ZAI_API_KEY or Z_AI_API_KEY.
string
Base URL override for the Z.AI / GLM API. Leave empty to use the default endpoint.
string
API key for Kimi / Moonshot AI models. Keys prefixed with sk-kimi- use the Kimi Code API by default.
string
Base URL override for Kimi. Use https://api.kimi.com/coding/v1 for Kimi Code keys, https://api.moonshot.ai/v1 for legacy Moonshot keys.
string
API key for MiniMax (international endpoint).
string
API key for MiniMax China (domestic endpoint).
string
API key for direct DeepSeek access.
string
API key for Alibaba Cloud DashScope (Qwen models).
string
API key for OpenCode Zen — pay-as-you-go access to curated models.
string
API key for OpenCode Go — $10/month subscription for open models (GLM-5, Kimi K2.5, MiniMax M2.5).
string
API key for Kilo Code gateway — access to Claude, GPT, and Gemini models.
string
API key for AI Gateway by Vercel — 200+ models, pay-per-use.
string
GitHub token for GitHub Copilot access. Accepts OAuth tokens (gho_*), fine-grained PATs with Copilot Requests permission (github_pat_*), or GitHub App tokens (ghu_*). Classic PATs (ghp_*) are not supported. Set via hermes model → GitHub Copilot, or run copilot login.
string
Override the inference provider at runtime without changing config.yaml. Accepted values: auto, openrouter, nous, openai-codex, copilot, anthropic, zai, kimi-coding, minimax, minimax-cn, kilocode, custom.

Tool API keys

string
API key for Parallel — AI-native web search and content extraction. Powers the web_search and web_extract tools.
string
API key for Firecrawl — web search and scraping. Powers web_search and web_extract.
string
URL for a self-hosted Firecrawl instance. Leave empty to use the Firecrawl cloud service.
string
API key for Tavily — AI-native web search, extract, and crawl. Powers web_search, web_extract, and web_crawl tools.
string
API key for Browserbase cloud browser. Required for remote browser execution. Local browser automation works without this key.
string
Browserbase project ID from your dashboard. Required alongside BROWSERBASE_API_KEY for cloud browser sessions.
string
API key for Browser Use cloud browser (alternative to Browserbase).
string
API key for FAL.ai — image generation. Required by the image_generate tool.
string
OpenAI API key used exclusively for voice transcription (Whisper) and OpenAI TTS. Named separately to avoid interfering with the main inference provider. Get one at platform.openai.com/api-keys.
string
API key for ElevenLabs premium text-to-speech voices.
string
API key for Honcho AI-native cross-session user memory. Required by the honcho_context, honcho_profile, honcho_search, and honcho_conclude tools. Also requires ~/.honcho/config.json.
string
GitHub personal access token for the Skills Hub (higher API rate limits) and skill publishing. Get one at github.com/settings/tokens.
string
API key for Tinker — RL training service. Required by rl_start_training and related tools.
string
Weights & Biases API key for experiment tracking. Used by rl_get_results and rl_check_status.

Messaging platforms

string
Telegram bot token obtained from @BotFather. Required to enable the Telegram gateway.
string
Comma-separated Telegram user IDs allowed to interact with the bot. Get your ID from @userinfobot. Leave empty (with GATEWAY_ALLOW_ALL_USERS=true) for open access.
string
Discord bot token from the Developer Portal. Required to enable the Discord gateway.
string
Comma-separated Discord user IDs allowed to use the bot.
string
Slack bot token (xoxb-...) from your app’s OAuth & Permissions settings. Required scopes: chat:write, app_mentions:read, channels:history, groups:history, im:history, im:read, im:write, users:read, files:write.
string
Slack app-level token (xapp-...) for Socket Mode. Create in Basic Information → App-Level Tokens. Also requires Event Subscriptions: message.im, message.channels, message.groups, app_mention.
string
Mattermost server URL, e.g. https://mm.example.com.
string
Mattermost bot token or personal access token.
string
Comma-separated Mattermost user IDs allowed to use the bot.
string
Matrix homeserver URL, e.g. https://matrix.example.org.
string
Matrix access token (preferred over password login).
string
Matrix user ID in @user:server format.
string
Comma-separated Matrix user IDs in @user:server format.
string
Set to true to enable the WhatsApp gateway. Use hermes whatsapp to pair via QR code.
string
Comma-separated phone numbers (e.g. 15551234567) allowed to message the bot. Use * for anyone.
string
default:"false"
Set to true to allow all users to interact with messaging bots without an allowlist. Use only for private deployments.
string
default:"false"
Set to true to enable the OpenAI-compatible API server. Allows frontends like Open WebUI and LobeChat to connect.
string
Bearer token for API server authentication. If empty, all requests are allowed (suitable for local use only).
string
default:"8642"
Port for the API server.
string
default:"127.0.0.1"
Host/bind address for the API server. Use 0.0.0.0 for network access — set API_SERVER_KEY for security.

Settings

string
Working directory for terminal commands executed via messaging platforms. Defaults to the home directory. The CLI always uses the directory where hermes was launched.
string
Sudo password for terminal commands requiring root access. Piped via sudo -S. Works with all terminal backends.
Stored in plaintext. Use only on trusted machines. Consider passwordless sudo or running containers as root instead.
string
default:"90"
Maximum tool-calling iterations per conversation. Overrides agent.max_turns in config.yaml.
string
Path to a JSON file containing ephemeral prefill messages for few-shot priming. The messages are injected at the start of every API call but never saved to sessions or logs.
string
An ephemeral system prompt injected at API-call time. Never persisted to sessions.