Hermes Agent
Add RouteMux as a custom provider in Hermes Agent's config.yaml.
Hermes Agent, not the Hermes models
This page is about Hermes Agent, Nous Research's agent application. It is a separate thing from the Hermes family of language models, which happens to share the name.
Hermes keeps providers in ~/.hermes/config.yaml under custom_providers, and selects one
in the model block.
Configure
custom_providers:
- name: routemux
base_url: https://api.routemux.com/v1
key_env: ROUTEMUX_API_KEY
api_mode: chat_completions
default_model: openai/gpt-5.5
models:
openai/gpt-5.5:
name: GPT-5.5
model:
provider: custom:routemux
default: openai/gpt-5.5
base_url: https://api.routemux.com/v1export ROUTEMUX_API_KEY="sk-..."A custom provider is referenced as custom:<name> — the custom: prefix is required.
key_env points at an environment variable; use api_key instead if you want the value
inline.
hermes model walks you through the same settings interactively, and hermes doctor
reports providers it cannot resolve.
Protocol modes
api_mode selects the wire protocol:
api_mode | RouteMux endpoint |
|---|---|
chat_completions | /v1/chat/completions |
codex_responses | /v1/responses |
anthropic_messages | /v1/messages |
bedrock_converse | not served by RouteMux |
Claude models are only available on anthropic_messages; Grok models are not available on it
at all. See the compatibility matrix for the full picture.
Hermes normalises a trailing /v1 on the base URL, so https://api.routemux.com/v1 is the
form to use throughout and you do not need a different value per mode.
Model ids
Use exactly what GET /v1/models returns, including the provider prefix. The models map
keys are those ids; the name underneath is only a display label.
Troubleshooting
| Symptom | Cause |
|---|---|
| Provider not found | model.provider is missing the custom: prefix, or the name does not match the custom_providers entry. |
| Key not picked up | key_env names a variable that is not exported in the shell Hermes runs in. hermes doctor will say so. |
400 MODEL_PROTOCOL_UNSUPPORTED | The model is not served on the api_mode you chose. |
| Model rejected | Id does not match GET /v1/models, prefix included. |
422 BILLING_INSUFFICIENT_CREDITS | Wallet lacks credit. Failed requests are not billed. |