~/.hermes/config.yaml. Missing keys fall back to built-in defaults. The file is created automatically on first run.
The current config schema version is 10. Running
hermes config migrate adds any new fields introduced since your last update and bumps the _config_version key.Complete example
Model
The default model. Can be a plain string (model slug) or an object with
default, provider, and base_url.Inference provider. Options:
auto, openrouter, nous, openai-codex, copilot-acp, copilot, anthropic, zai, kimi-coding, minimax, minimax-cn, kilocode, opencode-zen, opencode-go, ai-gateway, alibaba, custom. Can also be overridden with --provider flag or HERMES_INFERENCE_PROVIDER env var.API base URL. Used to point at custom OpenAI-compatible endpoints.
Agent
Maximum tool-calling iterations per conversation. Higher values allow more complex tasks at the cost of more tokens. Recommended: 20–30 for focused tasks, 50–100 for open exploration.
Reasoning effort level for models that support extended thinking (OpenRouter, Nous Portal). Options:
xhigh, high, medium, low, minimal, none. Toggle at runtime with /reasoning [level].Terminal
Terminal execution backend. Options:
local— runs commands on your machinessh— runs commands on a remote serverdocker— isolated Docker containersingularity— Singularity/Apptainer container (HPC environments)modal— Modal cloud sandboxdaytona— Daytona cloud dev environments
Working directory. For
local: . means the directory where hermes was launched. For remote backends, use an absolute path inside the target environment.Default command timeout in seconds.
Keep a long-lived bash shell across
execute() calls so cwd, environment variables, and shell state survive between commands. Enabled by default for non-local backends.Docker image for the
docker backend.Explicitly mount the launch
cwd into /workspace inside Docker. Off by default for isolation.List of environment variable names to forward from the host into the Docker container.
Docker volume mounts. Each entry is
host_path:container_path (standard Docker -v syntax).CPU cores for container backends (docker, singularity, modal, daytona). Ignored for
local and ssh.Memory in MB for container backends. Default is 5120 (5 GB).
Disk space in MB for container backends. Default is 51200 (50 GB).
Persist the container filesystem across sessions. Set to
false for ephemeral (fresh) containers.backend: ssh):
| Key | Description |
|---|---|
terminal.ssh_host | SSH hostname or IP |
terminal.ssh_user | SSH username |
terminal.ssh_port | SSH port (default: 22) |
terminal.ssh_key | Path to SSH private key (uses ssh-agent if omitted) |
Browser
Seconds of agent inactivity before browser sessions are automatically closed.
Automatically record browser sessions as WebM videos.
Memory
Enable the agent’s persistent memory store (
MEMORY.md). The agent can save facts about the environment, coding conventions, and things it has learned.Enable the user profile store (
USER.md). The agent saves preferences, communication style, and expectations.Maximum character count for the agent memory store (~800 tokens at 2.75 chars/token).
Maximum character count for the user profile store (~500 tokens).
Compression
When a conversation approaches the model’s context limit, middle turns are automatically summarized.Enable automatic context compression.
Trigger compression at this fraction of the model’s context limit (e.g.
0.85 = 85%). Lower values compress earlier.Fast, cheap model used to generate conversation summaries. Must support a context length at least as large as your main model.
Provider for the summary model. Options:
auto, openrouter, nous, main.Display / Skin
Visual theme for the CLI. Built-in skins:
default (gold/kawaii), ares (crimson/bronze), mono (grayscale), slate (blue developer), poseidon (ocean blue), sisyphus (austere grayscale), charizard (volcanic orange). Drop custom YAML skins in ~/.hermes/skins/<name>.yaml and activate with /skin <name>.Tool activity display level:
off— silent, only show the final responsenew— show a tool indicator only when the tool changesall— show every tool call with a short previewverbose— full args, results, and debug logs
/verbose.Use compact banner mode.
Show the model’s reasoning/thinking before each response. Toggle with
/reasoning show or /reasoning hide.Stream tokens to the terminal as they arrive instead of waiting for the full response.
Ring the terminal bell when the agent finishes a response.
Show estimated cost in the status bar.
Default personality preset.
Gateway-only. Controls watcher verbosity for
terminal(background=true) calls:all— running output + final messageresult— final completion message onlyerror— final message only when exit code ≠ 0off— no watcher messages
Approvals
Approval mode for dangerous terminal commands:
manual— always prompt the usersmart— use an auxiliary LLM to auto-approve low-risk commands, prompt for high-riskoff— skip all prompts (equivalent to--yolo)
Permanently allowed dangerous command patterns (added via the “always” approval option during a session).
Tools / Toolsets
List of toolsets to enable. Use
all to enable everything, or specify individual toolset names.Per-platform toolset configuration. Keys:
cli, telegram, discord, whatsapp, slack, signal, homeassistant.Delegation
Model for subagents spawned by
delegate_task. Empty inherits the parent’s model.Provider for subagents. Empty inherits the parent’s provider.
Maximum tool-calling turns per child agent.
Default toolsets available to subagents.
Auxiliary models
Hermes uses lightweight auxiliary models for side tasks (vision analysis, web extraction, context compression, session search). Each task has its ownprovider + model pair.
openrouter:google/gemini-3-flash-preview if the configured provider is unavailable.
TTS / STT
Text-to-speech provider:
edge (free, no API key), elevenlabs (premium), openai, or neutts (local).Speech-to-text provider:
local (faster-whisper, no API key), groq, or openai.Enable automatic voice transcription for messaging platforms.
Checkpoints
Take automatic filesystem snapshots before destructive file operations. Use
/rollback to restore.Maximum number of checkpoints to keep per directory.
Session reset (gateway)
When to auto-clear messaging sessions:
both (idle or daily), idle, daily, or none.Inactivity timeout in minutes before a session is reset. Default is 1440 (24 hours).
Hour of the day (0–23) for the daily reset.
In group/channel chats, maintain a separate session per user. Set to
false for a single shared context.Security
Redact API keys, tokens, and passwords from tool output before sending to the LLM.
Enable pre-execution command security scanning via tirith (when installed).
When
true, hash user IDs and strip phone numbers from the LLM context. Names and usernames are not affected.Other
IANA timezone string, e.g.
America/New_York or Asia/Kolkata. Empty uses server-local time.Path to a JSON file containing ephemeral
{role, content} messages injected at every API call for few-shot priming. Never persisted.Hermes-specific overrides for Honcho integration. Most Honcho config lives in
~/.honcho/config.json (shared with Claude Code, Cursor, etc.).Custom personality presets. Supports string format (
{"name": "system prompt"}) or dict format with description, system_prompt, tone, and style keys.User-defined quick commands that bypass the agent loop entirely (type:
exec only).MCP (Model Context Protocol) server connections. See the MCP documentation for full configuration options.