Clients/Hermes Agent

Use the Wokey API with Hermes Agent

Get a Wokey API key, point Hermes Agent at the Wokey base URL, then confirm the connection with one curl request.

Updated

On this pageexpand_more

Get an API key and the base URLlink

Every client uses the same Wokey API key and the same base URL.

Create an API key

Sign in and create a platform key on the API page. Keys in one account share its balance.

Create an API keykey

Use the Wokey base URL

Set the client base URL to the gateway domain; the configuration below shows whether to append /v1.

Configure the clientlink

Hermes Agent only needs the first five config lines for model, custom provider, Base URL, and API key. For GPT models (such as gpt-6-sol), add api_mode: codex_responses for the best cache hit rate; leave it off for other models such as Claude.

Hermes Agent
# ~/.hermes/config.yaml
model:
  default: claude-opus-5-5
  provider: custom
  base_url: https://api.wokey.ai
  api_key: YOUR_API_KEY
  # GPT models (such as gpt-6-sol) only — uncomment for the best cache hit rate:
  # api_mode: codex_responses

API formats and base URLslink

When one client switches API format, whether the base URL ends in /v1 can change.

FormatBase URLUse it for
OpenAI Chat Completionshttps://api.wokey.aiDeepSeek, GLM, Kimi, and other models

Where it is configured: ~/.hermes/config.yaml

Run Hermes Agent as an always-on agent with Opus 5.5: how it compares with Claude Duetlink

On 2026-10-21 Anthropic opened a research preview of Claude Duet, a proactive agent built on Claude Opus 5.5 that sends a morning brief, watches your connected apps in the background and checks with you before it acts. Duet only works with a Claude account sign-in; there is no API key or custom base URL, so it cannot run through Wokey. Hermes Agent is an open-source, self-hosted always-on agent: connected to Wokey it uses the same Opus 5.5 model, with no waitlist and no region limit.

Claude DuetHermes Agent + Wokey
ModelClaude Opus 5.5, not switchableclaude-opus-5-5, or any other model on Wokey
Who can use itClaude Pro and Max subscribers in the US, by waitlist; not Team or Enterprise yetInstall it yourself; a Wokey API key is all you need, in any region
CostNo extra charge during the preview, but it shares your plan’s usage limits with chat and Claude Code, background checks includedPay per token from your Wokey balance; you choose how often it checks
Where it runsA virtual machine with its own browser in Anthropic’s cloud; keeps working with your phone and laptop offYour own computer or server; host it on an always-on machine for round-the-clock work
How you talk to itThe Duet app (iOS and Android) and claude.aiChat apps such as Telegram and Slack
Memory and toolsCarries over your Claude account’s memory, skills and connectorsMemory, skills and tools live locally; you install and manage them
Approval before actingAsks before sending messages, paying, signing or deleting; securities trading and transfers between accounts are never allowedYou set the permissions and approval rules; grant only the accounts it needs
  • With per-token billing, frequent checks cost more: every check resends the system prompt and memory. Use a cheaper model (such as claude-sonnet-5-5 or deepseek-v4.1-flash) for routine checks and switch to Opus 5.5 for decisions and actions.
  • Over Chat Completions, Opus 5.5 thinks before it writes, so the first token is slow; an agent working in the background rarely notices.
  • The configuration above already defaults to claude-opus-5-5; no change is needed.

Duet details checked 2026-10-22 · Duet sources: Introducing Claude Duet · Claude Duet FAQ

Verify with curllink

If the client reports an error, rule out the key and base URL with curl first.

Hermes Agent uses the OpenAI Chat Completions format by default. A 200 from this request means the key and base URL are right. Replace YOUR_API_KEY with your key before sending it.

cURL
curl https://api.wokey.ai/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6-sol",
    "messages": [
      { "role": "user", "content": "Hello" }
    ]
  }'

Errors & Troubleshootinglink

Separate auth, balance, rate limit, model availability, and upstream timeout cases first.

401

invalid api key

The key is missing, mistyped, deleted, or Authorization / x-api-key headers conflict.

402

insufficient balance

The account balance is too low. Top up before sending more requests.

403

model_denylisted / account_restricted

Calls to the model, or to every model on the account, are paused after repeated violations. See Violation Handling Fees & Restrictions.

403

request_blocked

This request was blocked before reaching the upstream and is not charged, for example an unchanged resend of a request the model just refused, or a paused end user (X-End-User-Id). The error message says what is blocked; change the request as it says or retry later. Other requests are not affected.

429

rate limited

Traffic is too frequent. Retry later or reduce concurrency. If only one model, or one end user (X-End-User-Id), keeps returning 429, it may be a temporary limit after violations.

499

client disconnected

The client closed the connection before the response finished (code downstream_aborted). This is free by default. Once an account has at least 50 client disconnects in the past 24 hours and they make up 10% or more of its requests, later disconnected requests are billed for the usage the upstream reported: the processed input, including cache reads and writes, and output only when the upstream counted it. A disconnect before the upstream reported any usage stays free. The account is notified when billing starts, and billing stops automatically within an hour once the disconnect rate is back to normal. The usual cause is a client or proxy timeout that is too short, or a program that cancels requests before they finish.

502

upstream unavailable

The upstream model service is temporarily unavailable. Switch models or retry later.

504

upstream timeout

The upstream response timed out. Shorten context, reduce max_tokens, or retry.

529

upstream overloaded

The upstream model is temporarily overloaded and Wokey already retried on other routes (code upstream_overloaded). It is unrelated to your balance. Retry shortly or switch models.

Frequently asked questionslink

Should the Hermes Agent base_url end in /v1?
No. Set base_url to https://api.wokey.ai and provider to custom.
When do I add api_mode: codex_responses?
Only with GPT models such as gpt-6-sol, where it gives the best cache hit rate. Leave it out for Claude and other models.
Where does the API key go?
In the api_key field under model in ~/.hermes/config.yaml, as the key on its own.