Hermes gives your agent a body. ClawRouter gives it a brain.
A plugin for NousResearch Hermes that replaces every lab provider block with one local endpoint — and pays for each request with a signature instead of an account.
pip install hermes-plugin-clawrouter
hermes plugins enable clawrouter && hermes-clawrouter setupFour labs, four accounts, four cards
Stock Hermes wants a provider block and an API key for every lab you intend to use. That is a reasonable design for a human with a browser, a company card and an afternoon. It is a wall for an agent.
An agent cannot open an account, accept terms, or type a card number. The one thing it can do is sign. So the plugin gives Hermes a single provider whose credential is a per-request signature, and puts the entire catalog behind it.
Your config.yaml, before and after
providers:
- id: anthropic
type: anthropic
api_key: sk-ant-...
- id: openai
type: openai
api_key: sk-proj-...
- id: google
type: gemini
api_key: AIza...
- id: deepseek
type: openai_compatible
api_key: sk-...Four keys to obtain, rotate and leak. Adding a fifth lab means a fifth account.
providers:
- id: clawrouter
type: api_key
base_url: http://127.0.0.1:8402/v1
api_key: x40276 chat models behind one endpoint. The api_key is a literal placeholder — the real credential is the signature on each request.
It does not reimplement routing
This plugin is wiring, not a second router. On startup it probes 127.0.0.1:8402, scans up through 8410 for an existing proxy, and if it finds none, lazily spawns npx -y @blockrun/clawrouter and waits up to thirty seconds for its catalog to answer.
Everything interesting after that — the routing decision, the compression, the payment — is ClawRouter doing what it already does.
Hermes chat → 127.0.0.1:8402 → blockrun.ai → the labs
(ClawRouter) (x402 USDC)The same trick fixes auxiliary vision
Hermes has two open bugs in how it hands images to an auxiliary vision model. Both of them come from provider-specific paths that a single local api_key provider simply does not take.
This was not the goal — it is a side effect of collapsing four provider blocks into one. It is also the reason some people install the plugin.
The CLI
| setup | Register the provider, create or adopt the wallet, write config.yaml |
| doctor | Verify the whole link — proxy, wallet, catalog, config |
| wallet | Print the address to fund, and the balance |
| route | Show which model a prompt would be routed to, without spending |
| stats | Per-model spend and call counts |
| update | Pull the latest ClawRouter and refresh the catalog |
Prefixed with hermes-clawrouter, inside the Hermes venv.
One wallet, shared with ClawRouter
The plugin adopts the same mnemonic ClawRouter already uses, so a machine that runs both has one funding address rather than two. The key stays on your machine; x402 sends a signature, never the key.
7 models are free and need no wallet at all, so you can install this, run it, and decide afterwards whether to fund anything.