RouteMux Docs
IntegrationsDev tool

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/v1
export 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_modeRouteMux endpoint
chat_completions/v1/chat/completions
codex_responses/v1/responses
anthropic_messages/v1/messages
bedrock_conversenot 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

SymptomCause
Provider not foundmodel.provider is missing the custom: prefix, or the name does not match the custom_providers entry.
Key not picked upkey_env names a variable that is not exported in the shell Hermes runs in. hermes doctor will say so.
400 MODEL_PROTOCOL_UNSUPPORTEDThe model is not served on the api_mode you chose.
Model rejectedId does not match GET /v1/models, prefix included.
422 BILLING_INSUFFICIENT_CREDITSWallet lacks credit. Failed requests are not billed.

On this page