#How can I use clawdbot to use my claude pro subscription?
1 messages · Page 1 of 1 (latest)
Claude Pro/Max subscription ≠Anthropic API key (so you can’t just “plug in Claude Pro” like an API key). In OpenClaw/Clawdbot the supported way to use your Claude subscription is: Anthropic setup-token (generated by the Claude Code CLI), then switch your default model/provider to anthropic.
Docs (same steps):
- https://docs.openclaw.ai/help/faq#do-you-support-claude-subscription-auth-claude-pro-or-max
- https://docs.openclaw.ai/providers/anthropic
Step-by-step (Mac mini host)
0) (Recommended) confirm version
openclaw --version
1) Generate a Claude setup-token (subscription token)
On any machine where you have Claude Code installed and logged in:
claude setup-token
Copy the token it prints.
2) Paste that token into OpenClaw on the Mac mini (gateway host)
On the Mac mini:
openclaw models auth paste-token --provider anthropic
Paste the setup-token when prompted.
(Alternative, same idea:)
openclaw models auth setup-token --provider anthropic
3) Verify Anthropic auth works
openclaw models status --probe-provider anthropic
4) Switch your default model away from OpenRouter → Anthropic
List what your install knows about, then pick an anthropic/... model:
openclaw models list | grep anthropic
openclaw models set anthropic/<model-you-picked>
5) Restart the gateway (so everything is definitely using the new default)
openclaw gateway restart
Common gotchas
- Auth is per-agent. If you have multiple agents, run the same commands with
--agent <id>(e.g.openclaw models status --agent <id>), otherwise you might be editing a different agent than the one your Discord route uses. - If you want to never fall back to OpenRouter, remove OpenRouter from your fallbacks / don’t keep OpenRouter creds configured (otherwise failover may still hit it when Anthropic is rate-limited).
If you paste back:
openclaw --version
openclaw models status
(Ideally in a code block) I can tell you exactly where it’s still selecting OpenRouter.
is the setup token the same as the oath token?
No — the setup-token is not the same thing as an OAuth token.
What’s the difference?
- OAuth token: comes from an interactive “login” flow (browser-based), usually refreshable and managed by an OAuth client.
- Claude setup-token: a separate token string you generate with the Claude Code CLI:
OpenClaw stores/uses it basically like an API key for Anthropic subscription access (it’s not the “logged-in OAuth session token”).claude setup-token
OpenClaw-specific note
OpenClaw’s current guidance is: don’t try to reuse Claude Code CLI OAuth tokens; use a setup-token (or an Anthropic API key).
Docs:
If you tell me what command/flow you used to get the “OAuth token” you’re looking at (e.g. openclaw models auth login ... vs claude login), I can map it to the right OpenClaw auth method.
I used the claude setup-token and it provided me the auth token. below is what it responded with to the command. (Note the token i am listening below is redacted not the full one:
Your OAuth token (valid for 1 year):
sk-ant-oat01-O2GV_DPDLo0ObesrnrCzDvao9pUaXoxJUXQhaSF_(redacted)
Store this token securely. You won't be able to see it again.
Use this token by setting: export CLAUDE_CODE_OAUTH_TOKEN=<token>
That output is expected: claude setup-token prints a token that Claude labels “OAuth token” (sk-ant-oat01-...). In OpenClaw docs, that exact string is what they mean by “setup-token” for Anthropic subscription auth.
So in practice:
- The token you got (
sk-ant-oat01-...) is the setup-token you paste into OpenClaw. - The
export CLAUDE_CODE_OAUTH_TOKEN=...line is just telling you how Claude Code would use it — OpenClaw doesn’t need that env var.
What to do on the Mac mini (gateway host)
Run one of these on the Mac mini and paste that token:
openclaw models auth paste-token --provider anthropic
Then verify:
openclaw models status --probe-provider anthropic
Important
Even redacted, don’t post tokens in Discord. If you ever pasted the full token anywhere public, assume it’s compromised and generate a new one (run claude setup-token again) and replace it in OpenClaw.
okay it shows antrhopic effective and openrouter effective after models status now what
“Effective” just means those providers are configured and usable. It does not mean OpenClaw is actively using both.
What you do next depends on what you want:
A) Use Anthropic by default (recommended)
- See what your current default model is:
openclaw models status --plain
- If it’s still an OpenRouter model, switch primary to an Anthropic one:
openclaw models list | grep anthropic
openclaw models set anthropic/<pick-one-from-the-list>
- Restart:
openclaw gateway restart
B) Stop OpenRouter from being used at all (no more “oops I burned OR tokens”)
Even if Anthropic is primary, OpenRouter can still get used as a fallback when Anthropic rate-limits/errors.
Check your fallbacks:
openclaw models fallbacks list --plain
If you see any openrouter/... entries and you want to prevent OpenRouter usage:
openclaw models fallbacks remove openrouter/<that-model>
# or nuke all fallbacks:
openclaw models fallbacks clear
Then:
openclaw gateway restart
If you’re unsure what’s happening
Paste the output of these two (they’re safe to share; no secrets):
openclaw models status --plain
openclaw models fallbacks list --plain
…and I’ll tell you exactly whether OpenRouter is only “available” or actually in your default/fallback chain.
wait for A by number 2 do i have to pick a certain one does it matter that much? just thought that was for api only
You do have to pick one, but it’s not a “right/wrong” permanent decision — you can switch later with openclaw models set ....
And yep: this is not API‑key only. In OpenClaw, the Claude subscription path is exactly “Anthropic via setup-token”. (The one thing that is API-key-only is prompt caching, but basic model usage works fine with setup-token.)
Which one should you pick?
Pick based on the tradeoffs you want:
- General daily driver: pick a “Sonnet”-style model (balanced speed/quality)
- Best quality / harder tasks: pick an “Opus”-style model (usually slower, but smarter)
- Fast/cheap/simple tasks: pick a “Haiku”-style model (fastest, least capable)
On your box, just run:
openclaw models list | grep anthropic
…then choose one of the anthropic/... entries you see and set it:
openclaw models set anthropic/<whatever-you-chose>
If you tell me what you mainly want Clawdbot to do (coding? chat? automations?), I’ll tell you which tier to default to.
pulling up openclaw models list | grep antrhopic does nothing and the openclaw modelslist only shows the openrouter minimax im running rightn o
Two things going on there:
- Typos: it’s
anthropic(notantrhopic) and the command isopenclaw models list(with a space). - By default,
openclaw models listonly shows models you’ve already configured, so if you haven’t set any Anthropic model yet it can look like “only OpenRouter exists” even though Anthropic auth is effective.
Do this
Option 1 (CLI, show Anthropic catalog)
openclaw models list --all --provider anthropic --plain
Pick one line from that output and set it:
openclaw models set anthropic/<paste-the-exact-model-id-from-the-list>
openclaw gateway restart
openclaw models status --plain
Option 2 (in chat with the bot, easiest)
In the Discord chat with Clawdbot, send:
/model list
It should show a numbered picker. Then pick one:
/model 3
If --all --provider anthropic still shows nothing
Paste these (no secrets in them):
openclaw --version
openclaw models status --plain
openclaw models list --all --plain | head -50
and I’ll tell you exactly why Anthropic isn’t appearing on your install.
sweet that worked, now is there a way to enable tts, and voice messaging system for my clawdbot? so it can send me voice messages if that makes sense and vice versa?
Yep — that’s two separate features:
- Outbound voice replies (TTS)
- Inbound voice notes (speech-to-text transcription) so you can talk to it
1) Enable TTS (voice replies) on Discord
On Discord the command is /voice (Discord reserves /tts).
Try in the thread:
/voice always(always send an audio reply)- or
/voice inbound(only send audio replies after you send a voice note) /voice status
To make it default-on (global), set config:
openclaw config set messages.tts.auto '"always"'
# or:
openclaw config set messages.tts.auto '"inbound"'
openclaw gateway restart
Docs: https://docs.openclaw.ai/tts
2) “Vice versa”: you send voice notes → Clawdbot understands them
Your Claude setup-token does not provide speech-to-text. For voice-note understanding you need either:
- a local transcription CLI (free), or
- a transcription provider (OpenAI / Deepgram / etc)
OpenClaw will auto-detect local CLIs if installed (whisper-cpp / whisper, etc). If none are available, you’ll need to configure tools.media.audio.models.
Docs (audio/voice notes): https://docs.openclaw.ai/nodes/audio
Discord “voice message” format (waveform bubble) note
OpenClaw can send native Discord voice messages, but it requires ffmpeg + ffprobe on the gateway host. Docs: https://docs.openclaw.ai/channels/discord#voice-messages
If you tell me which direction you want first:
- (A) “I just want voice replies (audio attachment is fine)”
- (B) “I want Discord-native voice message bubbles”
- (C) “I want to send voice notes and have it reliably transcribe them without OpenAI keys”
…I’ll give you the exact minimal config for that path.