Skip to main content

Anthropic (Claude)

Anthropic builds the Claude model family and provides access via an API. In OpenClaw you can authenticate with an API key or a setup-token.

Option A: Anthropic API key

Best for: standard API access and usage-based billing. Create your API key in the Anthropic Console.

CLI setup

Config snippet

Thinking defaults (Claude 4.6)

  • Anthropic Claude 4.6 models default to adaptive thinking in OpenClaw when no explicit thinking level is set.
  • Supported thinking levels: off, minimal, low, medium, high, xhigh, adaptive. xhigh is model-gated (OpenAI/Codex models only — not offered on Anthropic); adaptive lets the model decide per request.
  • Thinking level resolution, highest priority first:
    1. Per-message directive: /think:<level>
    2. Per-model: agents.defaults.models["anthropic/<model>"].params.thinking
    3. Global default: agents.defaults.thinkingDefault (any provider)
    4. Built-in fallback: adaptive for Claude 4.6, low for other reasoning models, off otherwise
  • Related Anthropic docs:

Prompt caching (Anthropic API)

OpenClaw supports Anthropic’s prompt caching feature. This is API-only; subscription auth does not honor cache settings.

Configuration

Use the cacheRetention parameter in your model config:

Defaults

When using Anthropic API Key authentication, OpenClaw automatically applies cacheRetention: "short" (5-minute cache) for all Anthropic models. You can override this by explicitly setting cacheRetention in your config.

Per-agent cacheRetention overrides

Use model-level params as your baseline, then override specific agents via agents.list[].params.
Config merge order for cache-related params:
  1. agents.defaults.models["provider/model"].params
  2. agents.list[].params (matching id, overrides by key)
This lets one agent keep a long-lived cache while another agent on the same model disables caching to avoid write costs on bursty/low-reuse traffic.

Bedrock Claude notes

  • Anthropic Claude models on Bedrock (amazon-bedrock/*anthropic.claude*) accept cacheRetention pass-through when configured.
  • Non-Anthropic Bedrock models are forced to cacheRetention: "none" at runtime.
  • Anthropic API-key smart defaults also seed cacheRetention: "short" for Claude-on-Bedrock model refs when no explicit value is set.

Legacy parameter

The older cacheControlTtl parameter is still supported for backwards compatibility:
  • "5m" maps to short
  • "1h" maps to long
We recommend migrating to the new cacheRetention parameter. OpenClaw includes the extended-cache-ttl-2025-04-11 beta flag for Anthropic API requests; keep it if you override provider headers (see /gateway/configuration).

1M context window (Anthropic beta)

Anthropic’s 1M context window is beta-gated. In OpenClaw, enable it per model with params.context1m: true for supported Opus/Sonnet models.
OpenClaw maps this to anthropic-beta: context-1m-2025-08-07 on Anthropic requests. This only activates when params.context1m is explicitly set to true for that model. Requirement: Anthropic must allow long-context usage on that credential (typically API key billing, or a subscription account with Extra Usage enabled). Otherwise Anthropic returns: HTTP 429: rate_limit_error: Extra usage is required for long context requests. Note: Anthropic currently rejects context-1m-* beta requests when using OAuth/subscription tokens (sk-ant-oat-*). OpenClaw automatically skips the context1m beta header for OAuth auth and keeps the required OAuth betas.

Option B: Direct OAuth token (ANTHROPIC_OAUTH_TOKEN)

Best for: scripted or containerized setups where you already hold an Anthropic OAuth token (sk-ant-oat-...) and want to inject it via environment variable without running claude setup-token. Set ANTHROPIC_OAUTH_TOKEN in the environment of the gateway host. OpenClaw treats it as an OAuth bearer token with the same behavior as a stored setup-token.
Or in your config:
Priority: ANTHROPIC_OAUTH_TOKEN is checked before ANTHROPIC_API_KEY. If both are set, the OAuth token wins. Notes:
  • This env var bypasses the auth-profiles.json store; no openclaw models auth commands are needed.
  • openclaw models status shows this auth as OAuth (env).
  • Prompt caching is API-only; ANTHROPIC_OAUTH_TOKEN uses OAuth auth, so prompt caching defaults to "none" (same behavior as a stored setup-token). Set cacheRetention explicitly if your account supports it.

Option C: Claude setup-token

Best for: using your Claude subscription.

Where to get a setup-token

Setup-tokens are created by the Claude Code CLI, not the Anthropic Console. You can run this on any machine:
Paste the token into OpenClaw (wizard: Anthropic token (paste setup-token)), or run it on the gateway host:
If you generated the token on a different machine, paste it:

CLI setup (setup-token)

Config snippet (setup-token)

Notes

  • Three auth options: API key (Option A), OAuth token env var (Option B / ANTHROPIC_OAUTH_TOKEN), or setup-token (Option C).
  • Generate the setup-token with claude setup-token and paste it, or run openclaw models auth setup-token on the gateway host.
  • If you see “OAuth token refresh failed …” on a Claude subscription, re-auth with a setup-token. See /gateway/troubleshooting#oauth-token-refresh-failed-anthropic-claude-subscription.
  • Auth details + reuse rules are in /concepts/oauth.

Troubleshooting

401 errors / token suddenly invalid
  • Claude subscription auth can expire or be revoked. Re-run claude setup-token and paste it into the gateway host.
  • If the Claude CLI login lives on a different machine, use openclaw models auth paste-token --provider anthropic on the gateway host.
No API key found for provider “anthropic”
  • Auth is per agent. New agents don’t inherit the main agent’s keys.
  • Re-run onboarding for that agent, or paste a setup-token / API key on the gateway host, then verify with openclaw models status.
No credentials found for profile anthropic:default
  • Run openclaw models status to see which auth profile is active.
  • Re-run onboarding, or paste a setup-token / API key for that profile.
No available auth profile (all in cooldown/unavailable)
  • Check openclaw models status --json for auth.unusableProfiles.
  • Add another Anthropic profile or wait for cooldown.
More: /gateway/troubleshooting and /help/faq.