Authentication¶
OpenClaw supports OAuth and API keys for model providers. For Anthropic
accounts, we recommend using an API key. For Claude subscription access,
use the long‑lived token created by claude setup-token.
See /concepts/oauth for the full OAuth flow and storage layout.
Recommended Anthropic setup (API key)¶
If you’re using Anthropic directly, use an API key.
- Create an API key in the Anthropic Console.
- Put it on the gateway host (the machine running
openclaw gateway).
- If the Gateway runs under systemd/launchd, prefer putting the key in
~/.openclaw/.envso the daemon can read it:
Then restart the daemon (or restart your Gateway process) and re-check:
If you’d rather not manage env vars yourself, the onboarding wizard can store
API keys for daemon use: openclaw onboard.
See Help for details on env inheritance (env.shellEnv,
~/.openclaw/.env, systemd/launchd).
Anthropic: setup-token (subscription auth)¶
For Anthropic, the recommended path is an API key. If you’re using a Claude subscription, the setup-token flow is also supported. Run it on the gateway host:
Then paste it into OpenClaw:
If the token was created on another machine, paste it manually:
If you see an Anthropic error like:
This credential is only authorized for use with Claude Code and cannot be used for other API requests.
…use an Anthropic API key instead.
Manual token entry (any provider; writes auth-profiles.json + updates config):
openclaw models auth paste-token --provider anthropic
openclaw models auth paste-token --provider openrouter
Automation-friendly check (exit 1 when expired/missing, 2 when expiring):
Optional ops scripts (systemd/Termux) are documented here: /automation/auth-monitoring
claude setup-tokenrequires an interactive TTY.
Checking model auth status¶
Controlling which credential is used¶
Per-session (chat command)¶
Use /model <alias-or-id>@<profileId> to pin a specific provider credential for the current session (example profile ids: anthropic:default, anthropic:work).
Use /model (or /model list) for a compact picker; use /model status for the full view (candidates + next auth profile, plus provider endpoint details when configured).
Per-agent (CLI override)¶
Set an explicit auth profile order override for an agent (stored in that agent’s auth-profiles.json):
openclaw models auth order get --provider anthropic
openclaw models auth order set --provider anthropic anthropic:default
openclaw models auth order clear --provider anthropic
Use --agent <id> to target a specific agent; omit it to use the configured default agent.
Troubleshooting¶
“No credentials found”¶
If the Anthropic token profile is missing, run claude setup-token on the
gateway host, then re-check:
Token expiring/expired¶
Run openclaw models status to confirm which profile is expiring. If the profile
is missing, rerun claude setup-token and paste the token again.
Requirements¶
- Claude Max or Pro subscription (for
claude setup-token) - Claude Code CLI installed (
claudecommand available)