Connect OpenClaw with your Claude Pro or Max subscription
MonoRouter is an anonymous proxy that lets OpenClaw, Claude Code, Cursor, Cline, and any other Anthropic Messages API or OpenAI Chat Completions API client route requests through the Claude Pro or Max subscription you already pay for — instead of burning Anthropic API credits. This guide walks the whole setup end-to-end — signup to first working call — in about five minutes.
openclaw.json?Skip the walkthrough below. Paste your existing config into the in-browser merger on /keys and we'll fold MonoRouter in for you — nothing leaves your browser.
what you need
- ·A Claude Pro or Max subscription at claude.ai — whichever tier you have is fine; MonoRouter routes through both.
- ·Claude Code installed locally (needed for the OAuth token extraction). Install with
npm i -g @anthropic-ai/claude-codeor see claude.com/claude-code. Only required once, during the connect step. - ·OpenClaw installed on your machine. Configuration details below.
sign up for MonoRouter
Open /signup, pick a handle + password. No email required. Save the six recovery codes shown on the welcome screen — they're the only way to get back in if you lose your password.
// we never see your email or name; your handle is the whole identity.
connect your Claude Pro/Max subscription
From the dashboard, go to /tokens, click [ + add token ], and pick ANTHROPIC. Use the auto-connect tab (first one) — it's the fastest.
The modal shows a one-liner like this:
curl -sSL https://api.monorouter.dev/connect.sh | bash -s -- mrc_xxxxxxxxxxxx
Paste it into a terminal on your machine. The script opens a browser to claude.ai, asks you to log in, and sends the resulting OAuth token back to MonoRouter. When the dashboard flips to connected, you're done.
get your MonoRouter API key
A default mrk_* key was created for you on signup. Go to /keys and copy it — you'll paste it into OpenClaw next.
// treat this like a password. anyone with it can burn your Claude quota.
add MonoRouter as an OpenClaw provider
OpenClaw's config lives at ~/.openclaw/openclaw.json. Drop your MonoRouter key into apiKey and merge the two blocks below into the file. Already have config there? Merge alongside what's in your root {…} — don't replace the whole thing.
{
"models": {
"providers": {
"monorouter": {
"baseUrl": "https://api.monorouter.dev",
"apiKey": "mrk_...",
"api": "anthropic-messages",
"models": [
{ "id": "claude-opus-4-7", "name": "Opus 4.7 (via MonoRouter)" },
{ "id": "claude-opus-4-6", "name": "Opus 4.6 (via MonoRouter)" },
{ "id": "claude-sonnet-4-6", "name": "Sonnet 4.6 (via MonoRouter)" },
{ "id": "claude-haiku-4-5-20251001", "name": "Haiku 4.5 (via MonoRouter)" }
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "monorouter/claude-sonnet-4-6",
"fallbacks": ["monorouter/claude-opus-4-7"]
},
"models": {
"monorouter/claude-opus-4-7": {},
"monorouter/claude-sonnet-4-6": {},
"monorouter/claude-opus-4-6": {},
"monorouter/claude-haiku-4-5-20251001": {}
}
}
}
}Note the models allowlist inside agents.defaults. OpenClaw only lets agents pick from models explicitly listed there — declaring them under models.providers alone isn't enough.
understand the default + fallback model
The agents.defaults block at the bottom of the config above has two important pieces:
- ·
model.primary:monorouter/claude-sonnet-4-6— fast, cheap, great coding. The daily driver. - ·
model.fallbacks:["monorouter/claude-opus-4-6"]— kicks in when Sonnet is unavailable (capacity, retry exhausted). Slower + pricier, higher reasoning ceiling. - ·
models: explicit allowlist of every model the agent may touch. If a model isn't listed here — even a valid one you registered undermodels.providers— OpenClaw won't use it. Keep the list in sync with themodelsarray you set in the providers block above.
Save openclaw.json, restart OpenClaw, and every call now routes through MonoRouter — which in turn routes through your Claude Pro / Max subscription.
verify it works
Quick curl sanity check:
curl -X POST https://api.monorouter.dev/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: mrk_..." \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 128,
"messages": [{"role": "user", "content": "hi"}]
}'A 200 with a JSON response means you're done. The call also shows up on /dashboard within a second or two.
pricing
- ·✦ Launch offer: new signups through April 30, 2026 (UTC) also get 15 days of unlimited calls on top of the free tier below. Granted automatically at signup — no code to enter, no card required.
- ·1,500 successful calls are free for the lifetime of your account. Failed calls don't count.
- ·After that, $5 in crypto (paid once, non-recurring) gives you 30 days of unlimited calls. See /billing for the payment flow.