What is Hermes Agent?
Hermes Agent is an open-source, terminal-native autonomous coding and task agent built by Nous Research. It features persistent memory, agent-created skills, and a messaging gateway that supports 21+ platforms including Telegram, Discord, Slack, WhatsApp, Signal, SMS, Matrix, and more. Hermes runs on local, Docker, SSH, Daytona, Modal, Vercel Sandbox, or Singularity backends and works with multiple LLM providers — including OpenRouter for multi-model access through a single API key.Setup
Recommended: Use the Interactive Model Selector
The easiest way to configure Hermes with OpenRouter:Quick Start (Environment Variable)
If you already have your OpenRouter API key:Manual Configuration
Step 1: Get Your OpenRouter API Key
- Sign up or log in at OpenRouter
- Navigate to your API Keys page
- Create a new API key
- Copy your key (starts with
sk-or-...)
Step 2: Set Your API Key
Add your OpenRouter API key to~/.hermes/.env:
Hermes separates secrets from non-secret settings. API keys go in
~/.hermes/.env, while model and provider configuration goes in ~/.hermes/config.yaml.Step 3: Configure Your Model
Edit~/.hermes/config.yaml:
Step 4: Start Hermes
Model Format
When using OpenRouter as a provider, Hermes uses the standard OpenRouter model format<author>/<slug> (optionally prefixed with ~ for the latest version in a family):
~anthropic/claude-sonnet-latest~google/gemini-flash-latestdeepseek/deepseek-chatopenrouter/auto(auto-routes to an optimal/best-fit model for your prompt)
Provider Routing
OpenRouter routes your requests across multiple infrastructure providers for each model. You can control this routing behavior in~/.hermes/config.yaml:
:nitro to any model name for throughput sorting (e.g., ~anthropic/claude-sonnet-latest:nitro), or :floor for price sorting.
For a full breakdown of routing options, see the Provider Routing docs.
Fallback Providers
Configure a chain of backup providers Hermes tries when the primary model fails:Auxiliary Models
Hermes uses “auxiliary models” for side tasks like context compression, vision analysis, session titles, and web summarization. By default these use your main model, but you can route them to cheaper models via OpenRouter:Pareto Code Router
OpenRouter’s experimental coding-model router auto-routes requests to the cheapest model meeting a coding-quality threshold. Configure it in~/.hermes/config.yaml:
Hermes uses its own
openrouter: config key to set min_coding_score. This maps to the plugins array in the OpenRouter API — you don’t need to construct the plugins payload yourself.Monitoring Usage
Track your Hermes usage in real-time:- Visit the OpenRouter Activity Dashboard
- See requests, costs, and token usage across all your Hermes sessions
- Filter by model, time range, or other criteria
Common Errors
”No API key” or provider not found
Hermes can’t find your OpenRouter API key. Fix:- Verify the key is set:
cat ~/.hermes/.env | grep OPENROUTER - Or re-run:
hermes config set OPENROUTER_API_KEY sk-or-... - Or use the interactive setup:
hermes model
Authentication errors (401/403)
Fix:- Verify your API key is valid at openrouter.ai/keys
- Check that you have sufficient credits in your account
- Ensure your key hasn’t expired or been revoked
Model not working
Fix:- Verify the model ID on the OpenRouter models page
- Use the format
<author>/<slug>, optionally prefixed with~for the latest version in a family (e.g.,~anthropic/claude-sonnet-latest) - Ensure the model is available and not deprecated