Coding tools
Hermes Agent
Hermes configures interactively — run its model command and choose the custom endpoint.
Wire format
OpenAI format
Base URL
https://api.xkiro.com/v1
Configured by
Interactive prompt (hermes model)
Model IDs always carry the vendor prefix
Use openai/gpt-5.6-sol, never a bare gpt-5.6-sol. Full list at GET /v1/models.
Configure the endpoint#
Run hermes modelfrom your terminal — not from inside an active Hermes chat session. Per the official docs, it is used to "Interactively choose the default provider and model," and it is "the command for adding new providers, setting up API keys, and running OAuth flows."
hermes model
# 1. choose "Custom endpoint (self-hosted / VLLM / etc.)"
# 2. Base URL https://api.xkiro.com/v1
# 3. API key sk-xt-...
# 4. Model openai/gpt-5.6-solHermes saves the choice and reuses it every run; re-run hermes model to change it.
Exit the session before running hermes model
/model, the in-chat command, "can only switch between providers and models you've already set up. It cannot add new providers, run OAuth, or prompt for API keys." If xKiro is not configured yet, exit the session first — Ctrl+C or /quit — then run hermes model from the terminal, not /model from inside the chat.
Where it's stored#
The choice from hermes model is written to ~/.hermes/config.yaml:
model:
default: openai/gpt-5.6-sol
provider: custom
base_url: https://api.xkiro.com/v1
api_key: sk-xt-...A named, multi-endpoint form is also available, registering xKiro under its own name so it can be switched to mid-session rather than being the single default:
providers:
xkiro:
api: https://api.xkiro.com/v1
key_env: XKIRO_API_KEY
transport: chat_completionsSwitch to it mid-session with /model custom:xkiro:<model-name>. Config keys: base_url (aliases api / url), api_key, key_env, and transport — chat_completions, anthropic_messages or codex_responses. Use chat_completions for xKiro.
Dashboard picker#
A dashboard path also exists: sidebar → Models → Change. Picker changes made there apply to new sessions only — a session already running keeps whatever model it started with.
Auxiliary models are billed through xKiro too
Auxiliary models default to provider: "auto", which routes them to your main model. That means vision, summarization and MoA calls also go through xKiro and are billed — not a separate, free path.
If it does not work#
Send one request by hand before touching Hermes Agent's settings again. A reply proves the URL and key are both fine, which means whatever is left is in the tool's own configuration — and that is a much smaller place to look.
curl https://api.xkiro.com/v1/chat/completions \
-H "Authorization: Bearer $XKIRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"openai/gpt-5.6-sol","messages":[{"role":"user","content":"ping"}],"max_tokens":8}'An error naming an unknown model still counts as a success here: the request was authenticated before the model was rejected. Common failures and what each one means are on the overview page.


