Your own keys in Hermes
Hermes reads its model configuration from ~/.hermes/config.yaml on its persistent disk. On Harnesser this file is seeded exactly once, on first boot, pointing at the built-in model gateway — after that it is yours. Edit it to point Hermes at your own provider, and the change survives restarts.
Two ways to change the provider
Section titled “Two ways to change the provider”Settings UI. Open Settings → Providers in the Hermes web UI and add your provider — for OpenAI-compatible gateways (OpenRouter, LiteLLM, vLLM), add a custom provider with its base URL and API key.
Edit the config file. Hermes has a real shell, so you can also edit the file directly. The seeded model: section looks like this:
model: provider: custom default: claude-opus-5 base_url: http://litellm.platform.svc.cluster.local:4000/v1 api_key: <the built-in gateway key> max_tokens: 30000Replace base_url and api_key with your own endpoint and key, and set default to a model id your endpoint serves. provider: custom works with any OpenAI-compatible endpoint; for a first-party provider such as Anthropic or OpenRouter, set provider accordingly and use the matching key. The hermes model and hermes config set CLI commands (run them in the Hermes terminal) edit the same file and can walk you through provider selection interactively.
The machine has open egress to public AI APIs, so any public endpoint is reachable. Restart the conversation (or the harness) after editing so the new settings load.
Do not put your key in .env
Section titled “Do not put your key in .env”Hermes also reads ~/.hermes/.env for secrets, and normally that is where keys belong. On Harnesser, however, .env is rewritten on every boot with the built-in gateway key, so anything you put there is lost on restart. Put your key in config.yaml (the api_key field) or enter it through the Settings UI instead — those persist.
Auxiliary models
Section titled “Auxiliary models”Hermes uses smaller auxiliary models for tasks like compression. Each auxiliary task accepts its own provider, model, and base_url; when base_url is set, Hermes calls that endpoint directly with the configured api_key. See the Hermes configuration docs for the full reference.