Appearance
Configuration overview
Hermes splits configuration across two files in ~/.hermes/:
config.yaml: everything non-secret (model, toolsets, approvals, memory, cron settings)..env: secrets only (API keys, bot tokens, passwords).
Rule of thumb from the official docs: secrets go in .env, everything else in config.yaml. When both set the same non-secret value, config.yaml wins.
Core model section
yaml
model:
default: "qwen3.5-64k"
provider: "custom"
base_url: "http://localhost:11434/v1"
context_length: 65536Change provider or model with the interactive wizard:
bash
hermes modelKey config areas
| Section | Controls |
|---|---|
model | Which LLM Hermes talks to |
agent | Toolset enable/disable, retries, agent behavior |
terminal | Command backend (local, docker, ssh, etc.) |
approvals | Dangerous-command approval mode |
memory | Memory system behavior |
skills | Skill creation and loading |
cron | Scheduled-job settings (jobs themselves live in ~/.hermes/cron/) |
delegation | Subagent model/provider overrides |
auxiliary | Vision/TTS/compression sub-tasks (optional) |
Environment variables
Useful overrides (put secrets in ~/.hermes/.env, not your shell profile):
bash
export HERMES_HOME=~/.hermes # config/state directory
export OLLAMA_CONTEXT_LENGTH=65536 # Ollama-side context
export OLLAMA_KEEP_ALIVE=-1 # keep model loaded
export HERMES_STREAM_READ_TIMEOUT=1800 # only if a slow local model still times outLocal timeouts are handled automatically
Hermes auto-detects local endpoints and relaxes streaming timeouts (read timeout raised to 1800s, stale-stream detection disabled). You usually do not need to set anything. For a per-provider limit, use providers.<name>.request_timeout_seconds in config.yaml.
Profiles
Hermes supports profiles for different contexts (work vs. personal):
bash
hermes --profile work # or -p work
hermes profile create work # create a new isolated profile
hermes profile list # see all profiles
hermes profile use work # set a sticky default
hermes profile alias work # generate a `hermes-work` wrapper commandEach profile gets its own config, memory, sessions, and skills under ~/.hermes/profiles/.
Inspecting current config
bash
hermes config show
hermes config set OPENROUTER_API_KEY sk-or-... # write a secret to .env
hermes modelMinimal offline config
This is enough to get started:
yaml
model:
default: "qwen3.5-64k"
provider: "custom"
base_url: "http://localhost:11434/v1"
context_length: 65536
approvals:
mode: manual # prompt before running dangerous shell commandsAdd toolsets, memory, and gateway settings as you grow into them.
Next: SOUL.md & personality.