BlockRun
ClawRouter

PLUGIN FOR NOUSRESEARCH HERMES

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.

PyPI · hermes-plugin-clawrouterv0.3.19PythonMIT
shell
pip install hermes-plugin-clawrouter
hermes plugins enable clawrouter && hermes-clawrouter setup

Four 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

BEFORE — ONE BLOCK PER LAB

yaml
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.

AFTER — ONE BLOCK, TOTAL

yaml
providers:
  - id: clawrouter
    type: api_key
    base_url: http://127.0.0.1:8402/v1
    api_key: x402

76 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.

text
Hermes chat  →  127.0.0.1:8402  →  blockrun.ai  →  the labs
                  (ClawRouter)      (x402 USDC)
How the routing itself works →

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

setupRegister the provider, create or adopt the wallet, write config.yaml
doctorVerify the whole link — proxy, wallet, catalog, config
walletPrint the address to fund, and the balance
routeShow which model a prompt would be routed to, without spending
statsPer-model spend and call counts
updatePull 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.

The rest of the family

Give the agent a wallet