Hermes Agent
Connect Hermes Agent to Mixen — pay from your balance in roubles, a self-improving TUI agent with any catalog model over our OpenAI-compatible API.
Hermes Agent is an open-source (MIT) agent from Nous Research: a terminal TUI, a built-in skills system (about 80 out of the box), persistent memory across projects, and notification channels — Telegram, Discord, and more. The model is whatever you like: an official provider, OpenRouter, or your own endpoint — Mixen connects via the latter.
Installation
Section titled “Installation”# Linux / macOS / WSL2 / Termuxcurl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash# Windows (PowerShell)iex (irm https://hermes-agent.nousresearch.com/install.ps1)The installer brings its own dependencies: uv, Python 3.11, Node.js, ripgrep, ffmpeg, and a portable Git Bash. After it finishes, run source ~/.bashrc (or ~/.zshrc) and start hermes.
Configuration
Section titled “Configuration”The config is ~/.hermes/config.yaml, secrets live in ~/.hermes/.env. The model section defines the provider, the model, and the endpoint:
model: provider: openai default: openai/gpt-5.6-sol base_url: https://api.mixen.ai/v1 api_mode: chat_completionsThe key goes into ~/.hermes/.env; Hermes documents OPENAI_API_KEY specifically for custom OpenAI-compatible endpoints:
OPENAI_API_KEY="your-api-key" # mxn-… from the Mixen dashboardKey points:
base_urlpoints athttps://api.mixen.ai/v1— with the suffix, as in the OpenAI SDK;api_mode: chat_completionsis the/v1/chat/completionsprotocol.defaultis the Mixen model ID, sent to the API as is; any from the catalog.provider: openai— the name of the built-in provider whose key is read fromOPENAI_API_KEY.
An alternative is a named provider on the Anthropic transport (handy when you keep several endpoints):
providers: mixen: api: https://api.mixen.ai # no /v1 — the transport appends the path api_key: "your-api-key" transport: anthropic_messages models: - anthropic/claude-sonnet-5 - z-ai/glm-5.3-flash
model: provider: mixen default: anthropic/claude-sonnet-5Switching models
Section titled “Switching models”hermes model # interactive picker: provider + model, written to config.yamlhermes setup # full initial setup wizardInside a session — the slash command:
/model z-ai/glm-5.3-flash --provider openai # session-only/model z-ai/glm-5.3-flash --provider openai --global # also persists to config.yaml/model anthropic/claude-sonnet-5 --once # one turn, then revertsThe choice applies to new sessions — chat tabs already open keep their current model.
Verifying the connection
Section titled “Verifying the connection”The key and balance are checked with a minimal generating request:
curl https://api.mixen.ai/v1/chat/completions \ -H "Authorization: Bearer your-api-key" \ -H "Content-Type: application/json" \ -d '{"model":"z-ai/glm-5.3-flash","messages":[{"role":"user","content":"ping"}],"max_tokens":5}'200 — the key and balance work; 401 — the key was copied incompletely or it is not a Mixen API key; 402 — the balance is empty. GET /v1/models does not check the key — it answers without one.
Picking a model per task
Section titled “Picking a model per task”The agent carries a growing context (memory, skills, history), so input price is the main multiplier of the bill. Prices are per 1M tokens, input/output; full tables with cache columns — in the catalog.
| Task | Model | Input / output |
|---|---|---|
| Routine: file review, simple questions, drafts | GLM 5.3 Flash (z-ai/glm-5.3-flash) |
8.4 / 27.9 ₽ |
| Long tasks in familiar context | GLM 5.3 (z-ai/glm-5.3) |
156 / 490.2 ₽ |
| Complex multi-step tasks | GPT-5.6 Sol (openai/gpt-5.6-sol) |
213.9 / 1069.5 ₽ |
Cache and session savings
Section titled “Cache and session savings”- Repeated context within 5 minutes is billed at ~10% of the input price (21.4 ₽ per 1M for gpt-5.6-sol instead of 213.9 ₽, 1.7 ₽ for glm-5.3-flash), and every hit extends the window by another 5 minutes — a dense session stays cached from start to finish.
- A pause longer than 5 minutes resets the cache: the next turn pays the full input price, then the discount builds up again.
- The agent’s persistent memory is exactly the kind of stable prefix that caches best; don’t edit rules or memory in the middle of an active task.
- The limit is 60 RPM per key.
Troubleshooting
Section titled “Troubleshooting”- 401 / Invalid API Key — the key is incomplete or missing from
~/.hermes/.env, or a stale entry for another provider in the same file interferes with it (Hermes explicitly warns about stale.envvalues conflicting). - Settings don’t apply — a model switch affects new sessions: restart the current tab/session;
hermes doctorruns a quick diagnostic. - Model not found —
model.defaultmust be a catalog ID (with the slash:openai/gpt-5.6-sol), andmodel.providerthe provider name from your config.