You install Hermes Agent, you try to chat, and the response is:
no inference provider configured. run 'hermes model' to choose a provider
This is the second most common post-install error (the first is hermes command not found). The agent needs an LLM provider to talk to. The install doesn't ship with one pre-selected on purpose.
Why Hermes doesn't have a default provider
Hermes supports many providers: Anthropic, OpenAI, OpenRouter, Nous Portal, Gemini, xAI, Qwen, MiniMax, Hugging Face, Groq, plus any local OpenAI-compatible endpoint like Ollama or LM Studio. None of these are obvious defaults. Picking one for you would mean pushing every user toward one vendor. So Hermes asks on first use.
If you skipped the wizard during install (or wiped ~/.hermes and reinstalled), the provider config is empty. Every chat request hits the inference layer, finds no provider, returns the error.
The fix in three commands
hermes model
# pick a provider, paste your API key when prompted
hermes doctor
hermes chat -q "say ok"
The hermes model command walks you through provider selection, model choice and key entry in one flow. hermes doctor confirms the config wrote correctly. The smoke test verifies the round trip works end to end.
Which provider should I pick?
The wizard doesn't tell you. Here is my opinion based on running Hermes for several months across different projects.
Anthropic direct
Best general agent performance. Claude Sonnet 4.6 is what I use for most work. The API is reliable, auth is simple, tool calls land cleanly. Downside: not the cheapest option.
OpenRouter
One API key, hundreds of models behind it. Good if you want to swap models per task without separate accounts. Setup is slightly more complex (you pick a default model from the catalog). See OpenRouter docs for account setup.
Nous Portal
Uses the same Nous-hosted models that power Hermes's OpenRouter ranking. Often cheaper than direct Anthropic for some use cases.
Local through Ollama or LM Studio
Zero per-token cost. The catch: you need a machine with enough VRAM. A 32B-class local model is competent for simple chat and noticeably worse than a hosted Sonnet on complex tool-heavy work. Hybrid is the practical answer: cheap local for chat, hosted for tool tasks.
Token cost trade-offs in more depth in our cut Hermes token costs guide.
What the Hermes model wizard does
Behind the scenes, four steps:
- Writes provider choice to config
- Saves API key (to auth.json or as env var, your choice)
- Picks a default model from the provider's catalog
- Runs a validation request to confirm the key works
If any step fails, the wizard tells you which one. Usually it's step 4 (validation): typo in the key, or you pasted a key from a different provider by mistake.
When Hermes model command doesn't exist
Older Hermes versions used hermes provider or hermes inference set instead. If hermes model errors with "command not found", you're on an older release:
hermes upgrade
hermes --version
You want at least v0.10 for the unified wizard. Check the Hermes releases page for current versions.
Wizard runs but agent still says no provider...
Two possibilities from what I've found:
Possibility 1: Wizard wrote to a different config than the agent reads
Happens with encrypted home directories, weird path setups, or installs spanning multiple users. Check:
echo $HOME
ls -la ~/.hermes/
hermes config show | head -30
If ~/.hermes is missing or owned by the wrong user, that's the issue.
Possibility 2: You configured as one user, gateway runs as another
Classic case. You ran hermes model as your normal user. The gateway runs as root through systemd. Root has no ~/.hermes, so the agent starts fresh with no provider.
Two fixes:
# Fix A: change systemd unit to run as your user
sudo systemctl edit hermes-gateway
# add: [Service]
# User=youruser
# Fix B: copy the config across
sudo cp -r ~/.hermes /root/.hermes
sudo chown -R root:root /root/.hermes
Fix A is the proper way. Our Hermes systemd setup shows the correct unit format.
Changing the model after setting the provider
The wizard picks a sensible default model. If you want a different one:
hermes model list
hermes model set anthropic/claude-sonnet-4-6
For OpenRouter: openrouter/model-id as listed in OpenRouter catalog. For Ollama: ollama/model-name (the local model name).
Always run hermes doctor after provider config
Don't skip this. Doctor checks provider connection, model availability, network, Python, disk permissions. If something else is wrong you find out now instead of discovering each issue one at a time during chat.
hermes doctor
If chat throws 401 right after wizard says key was valid
This is rare but real. The wizard validated, the key got mangled before reaching the inference call. Common with very long keys (some providers issue 200+ character keys) and shells that wrap or escape strangely.
Reset the key:
hermes auth set anthropic
Paste directly into the prompt, don't echo from a variable. If 401 persists, see our Hermes 401 auth errors tutorial.
LumaDock template with pre-configured provider setup
The Hermes Agent template on LumaDock includes a guided provider setup on first SSH login. You enter the key, the wizard validates, you chat. Unmetered bandwidth, no setup fees. The provider wizard is the same one you'd run manually. The template just walks it for you. Full setup in our Hermes Agent complete guide.

