Config files
Hermes stores all configuration in~/.hermes/:
The
.env file is created at setup and secured with owner-only permissions. Never put API keys directly in config.yaml.
Managing config
Model and provider selection
Select your model interactively:Supported providers
- Nous Portal
- OpenRouter
- OpenAI / Anthropic
- Custom endpoint
The official Nous Research model portal. Authenticate via OAuth:The OAuth flow opens your browser for authentication and stores credentials locally in
~/.hermes/auth.json. No API key needed — Hermes handles credential refresh automatically.Other supported providers
config.yaml reference
Below is a representative~/.hermes/config.yaml with the most commonly tuned options:
Configuration sections
- Model
- Terminal
- Display
- Memory
Environment variables vs config.yaml
Hermes uses two distinct systems:~/.hermes/.env— API keys, tokens, and passwords. Never exposed to the agent. Loaded on startup and overrides stale shell exports.~/.hermes/config.yaml— All behavioral settings. The authoritative source for model, terminal, display, and memory configuration.
config.yaml wins for terminal settings; .env wins for API keys.
Config version migration
Hermes uses a_config_version field in config.yaml (currently 10) to track schema changes. When you update Hermes, it automatically:
- Detects that your config is on an older version
- Merges any new default fields into your config
- Prompts for any new optional API keys that were added
- Bumps
_config_versionto the latest value