Hermes integration is currently in beta. Some features may not work, some may only work with certain models.
Why Use Concentrate with Hermes?
Hermes Agent is an open-source agent from Nous Research that runs in your terminal, with tools for the shell, files, the web, MCP servers, subagents and computer use. It accepts any OpenAI- or Anthropic-compatible API as a custom provider. By routing Hermes through Concentrate, you use models from every provider in our catalog with one API key, and get centralized visibility and control over your team’s usage: spend tracking, budget limits, and everything visible in your Concentrate dashboard in real time.What Works
Prerequisites
-
A Concentrate AI account with an active API key (starts with
sk-cn) -
Hermes Agent installed:
Bash
Quick Setup
Bash
~/.hermes/.env as CONCENTRATE_HERMES_API_KEY, so it doesn’t change your shell profile, and Hermes can use a different key from your other tools. If you already have CONCENTRATE_API_KEY set, it asks whether to reuse it. It adds a concentrate provider to ~/.hermes/config.yaml that uses our Responses API (for the other API formats, see Other API formats), and makes Concentrate your default provider, asking first if you already have one. Your other settings are kept, and config.yaml is backed up first. Without a terminal (for example in CI), the script can’t ask, so it keeps any default provider you already have, and uses a saved key or CONCENTRATE_API_KEY. If neither is set, pass the key with --key <API_KEY>.
Then start Hermes in a project directory:
Manual Setup
If you prefer to configure Hermes manually or the script doesn’t work for your environment:1
Save your API key
Add this line to Hermes’ Editing the file keeps the key out of your shell history.
.env file, ~/.hermes/.env (create it if it doesn’t exist):2
Add Concentrate to ~/.hermes/config.yaml
Add a
concentrate provider and make it the default. Keep any other settings already in the file. key_env is the name of the variable, not the key itself:codex_responses makes Hermes use our Responses API. Use any model from the supported models page with its provider/model ID.3
Verify the connection
Send a one-off prompt, then start Hermes in a project directory:
Switch models
Inside a session, name the model and the provider:Other API formats
We recommend the Responses API (codex_responses) shown above. It gets the best prompt-cache hit rate, which keeps long agent sessions cheaper. Hermes can also use our Chat Completions and Messages APIs, which are in beta. To use them, add them under providers: in the same file:
--provider, for example hermes chat --provider concentrate-messages -m anthropic/claude-haiku-4-5.
Tips
- Context window. Hermes needs a model with a context window of at least 64K tokens, because its tools and system prompt take up a large part of every request. Check a model’s context window on the supported models page.
- Images on text-only models. If you send an image to a model that can’t read images, Hermes first describes it with a vision model and passes the description on. That extra call is billed like any other request.
- Side requests. Besides your conversation, Hermes makes short side requests, for example to title sessions or describe images. They appear in your Concentrate dashboard alongside the main requests.
- Costs. The Concentrate dashboard is the source of truth for spend.
Remove Concentrate AI
Bash
concentrate provider and CONCENTRATE_HERMES_API_KEY. Remove any providers you added by hand yourself. Other settings are kept. If Concentrate was your default provider, run hermes model afterwards to choose a new one.
Troubleshooting
401 Invalid API key
401 Invalid API key
- Check the key is saved:
hermes config get CONCENTRATE_HERMES_API_KEYshows its first and last characters. To replace it, re-run the setup script or edit the line in~/.hermes/.env. - Check
key_envinconfig.yamlis the variable’s name (CONCENTRATE_HERMES_API_KEY), not the key itself.
400 Invalid request: model
400 Invalid request: model
The model ID isn’t one Concentrate knows. Use the exact
provider/model ID from the supported models page, and switch with /model <model> --provider concentrate, not concentrate:<model>.402 Insufficient funds
402 Insufficient funds
Your balance is empty. Add funds on the billing page.

