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-sol

Hermes 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_completions

Switch to it mid-session with /model custom:xkiro:<model-name>. Config keys: base_url (aliases api / url), api_key, key_env, and transportchat_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.

Was this page helpful?