Providers

Anthropic

Anthropic builds the Claude model family. OpenClaw supports two auth routes:

  • API key - direct Anthropic API access with usage-based billing (anthropic/* models)
  • Claude CLI - reuse an existing Claude Code login on the same host

Usage and cost tracking

OpenClaw detects the available Anthropic credential and selects the matching usage surface:

  • Claude subscription/setup credentials show quota windows and optional extra-usage budget.
  • ANTHROPIC_ADMIN_KEY or ANTHROPIC_ADMIN_API_KEY shows 30 days of provider-reported organization cost and Messages API usage in Control UI Usage, including daily spend, token/cache totals, top models, and cost categories.
  • An sk-ant-admin... credential stored in the Anthropic provider profile is detected as an Admin API key automatically.

Admin API cost history comes from Anthropic's Usage and Cost API. It is actual provider billing, separate from OpenClaw's session-derived estimated cost.

Getting started

API key

Best for: standard API access and usage-based billing.

  • Get your API key

    Create an API key in the Anthropic Console.

  • Run onboarding

    bash
    openclaw onboard# choose: Anthropic API key

    Or pass the key directly:

    bash
    openclaw onboard --anthropic-api-key "$ANTHROPIC_API_KEY"
  • Verify the model is available

    bash
    openclaw models list --provider anthropic
  • Config example

    json5
    {  env: { vars: { ANTHROPIC_API_KEY: "example-anthropic-key-not-real" } },  agents: { defaults: { model: { primary: "anthropic/claude-opus-5" } } },}

    Claude CLI

    Best for: reusing an existing Claude CLI login without a separate API key.

  • Ensure Claude CLI is installed and logged in

    OpenClaw's streamed session correlation requires the msg_lifecycle_v1 capability. Claude Code 2.1.206 is the first published build known to advertise it. Verify the installed version:

    bash
    claude --version

    A lower-version compatible backport or wrapper remains selectable; OpenClaw verifies the capability at runtime. If the runtime rejects the installed build, update Claude Code and restart OpenClaw so the gateway launches the new binary:

    bash
    claude update
  • Run onboarding

    bash
    openclaw onboard# choose: Claude CLI

    OpenClaw detects and reuses the existing Claude CLI credentials.

  • Verify the model is available

    bash
    openclaw models list --provider anthropic
  • Get a setup token

    Run claude setup-token on any machine with Claude Code installed. It prints a long-lived token starting with sk-ant-oat01-.

    During onboarding, paste the token in the macOS app by choosing Anthropic setup-token under Connect with an API key or token, or use:

    bash
    openclaw models auth login --provider anthropic --method setup-token

    Config example

    Prefer the canonical Anthropic model ref plus a CLI runtime override:

    json5
    {  agents: {    defaults: {      model: { primary: "anthropic/claude-opus-5" },      models: {        "anthropic/claude-opus-5": {          agentRuntime: { id: "claude-cli" },        },      },    },  },}

    Legacy claude-cli/claude-opus-4-7 model refs still work for compatibility, but new config should keep provider/model selection as anthropic/* and put the execution backend in provider/model runtime policy.

    Billing and claude -p

    OpenClaw uses Claude Code's non-interactive claude -p path for Claude CLI runs. Anthropic currently treats that path as Agent SDK/programmatic usage:

    • Anthropic's June 15, 2026 support update paused the previously announced separate Agent SDK credit plan.
    • Subscription-plan Claude Agent SDK, claude -p, and third-party app usage still draw from the signed-in subscription's usage limits.
    • The previously announced monthly Agent SDK credit is not available while Anthropic revises that plan.
    • Console/API-key logins use pay-as-you-go API billing and do not receive the subscription Agent SDK credit.

    See Anthropic's Agent SDK plan article for the pause notice, and the Claude Code plan articles for Pro/Max and Team/Enterprise subscription behavior.

    Anthropic can change Claude Code billing and rate-limit behavior without an OpenClaw release. Check claude auth status, /status, and Anthropic's linked docs when billing predictability matters.

    Claude sessions across computers

    The bundled Anthropic plugin adds a Claude Code group to the normal sessions sidebar. Rows open in the normal Chat pane. It discovers non-archived Claude Code sessions on the Gateway and on connected node hosts:

    • Claude CLI sessions come from valid project-index records. For unindexed transcripts, a bounded metadata fallback recognizes concurrent non-sidechain interactive (cli) and headless Agent SDK CLI (sdk-cli) sessions under ~/.claude/projects/.
    • Claude Desktop sessions use the Desktop title, activity time, and archive state when its metadata points to the same Claude Code session ID.
    • A CLI-only session has no archive flag, so it remains visible while its transcript is present.

    No additional OpenClaw config is required for discovery. The Anthropic plugin is bundled and enabled by default; a native macOS node advertises the read-only Claude session commands when the local ~/.claude/projects/ directory exists. Approve the node pairing upgrade when those commands first appear.

    The sidebar groups rows by their Gateway or paired-node host and shows each host's newest bounded page as soon as that computer answers. It reconciles again after host-connectivity changes, when the page regains focus, and at most every 30 seconds while visible, so Claude sessions created outside OpenClaw appear without a reload. A changed catalog gets a faster follow-up pass. Use Load more sessions below a catalog group to append the next page for every host that has more history; appended rows stay visible and are re-fetched to the same depth across refreshes. Catalog clients use sessions.catalog.list; opening a row uses sessions.catalog.read.

    Terminal takeover resolves claude from the owning host user's login-shell PATH before the service/daemon PATH. This keeps app-launched sessions aligned with the Claude CLI the operator gets in a normal terminal.

    Selecting a row reads the newest transcript page first. Load older transcript items follows an opaque byte cursor and reads another bounded section from the JSONL file instead of loading the entire history. Normal user, assistant, reasoning, tool-call, and tool-result content is preserved. An individual item larger than the node/Gateway safety ceiling is clearly marked as truncated.

    For a Gateway-local claude-cli row, typing in the normal composer calls sessions.catalog.continue. OpenClaw re-resolves the local catalog record, creates or reuses a model-locked native session, imports at most 200 visible items or 512 KiB, and seeds the Claude CLI binding. The first turn resumes with --fork-session; Claude assigns the fork a new session ID, so later turns use the fork and the source session stays untouched.

    A headless node host can also make its Claude CLI rows continuable by enabling the node-local setting below and restarting the node host:

    json5
    {  nodeHost: {    agentRuns: {      claude: { enabled: true },    },  },}

    The node advertises agent.cli.claude.run.v1 only when the setting is enabled and its local claude executable resolves. OpenClaw re-resolves the catalog record on that node, imports the same bounded history, and binds the adopted session to the node and catalog-reported working directory. Each turn runs the node's real claude -p process using that node's Claude files and login. The node's exec approval policy still applies; the Gateway cannot force the opt-in.

    Node continuation v1 is one-shot only. It omits Gateway loopback MCP config and Gateway skills plugin arguments, does not reseed from a Gateway transcript, and rejects attachments and images. Claude Desktop rows remain view-only. Native macOS app nodes also remain view-only until the app advertises the run command.

    See Nodes: Claude sessions and transcripts for the node command and security boundary.

    Live model discovery

    With an Anthropic API key configured, OpenClaw refreshes the Claude catalog from Anthropic's models endpoint, so newly published snapshots of supported model families appear without an OpenClaw release. Models the shipped catalog already describes always keep their published metadata and pricing.

    A newly discovered model is only offered when Anthropic's advertised capabilities match the request shaping OpenClaw would apply to it. A brand-new model generation therefore stays hidden until OpenClaw adds support for it, rather than appearing in the picker and failing every request. Discovery is advisory: without an API key, or if the endpoint is unreachable, the shipped catalog is used unchanged.

    Thinking defaults (Claude Opus 5, Sonnet 5, Mythos 5, Fable 5, 4.8, and 4.6)

    Bare family aliases are rolling: opus tracks the current supported Claude Opus generation and today resolves to anthropic/claude-opus-5, the same way sonnet tracks the current Sonnet. Upgrading OpenClaw can therefore move a config that says opus onto a newer model generation. Pin a version to opt out — versioned aliases such as opus-4.8 keep resolving to their own model, and configs that already name claude-opus-4-8 are never rewritten.

    anthropic/claude-opus-5 uses adaptive thinking at high effort by default. Use /think off to disable thinking, or /think xhigh|max for the model's higher native effort levels. OpenClaw omits manual thinking budgets, custom sampling parameters, assistant prefills, and Priority Tier for Opus 5 because Anthropic does not support those request features on this model. The catalog publishes its 1,000,000-token context window, 128,000-token output limit, image input, and $5/$25 input/output pricing.

    anthropic/claude-sonnet-5 uses the same adaptive-thinking defaults and request restrictions. The catalog uses Anthropic's introductory $2/$10 input/output pricing through August 31, 2026; standard $3/$15 pricing begins September 1, 2026.

    anthropic/claude-fable-5 always uses adaptive thinking and defaults to high effort. Anthropic does not allow thinking to be disabled for this model, so /think off and /think minimal map to low effort instead. OpenClaw also omits custom temperature values for Fable 5 requests, since Anthropic rejects a temperature override on any thinking-enabled request.

    anthropic/claude-mythos-5 is a limited-access model with the same always-on adaptive-thinking contract. OpenClaw defaults to high, maps /think off and /think minimal to low, and omits caller-selected sampling parameters. The catalog publishes its 1,000,000-token context window, 128,000-token output limit, image input, and $10/$50 input/output pricing.

    Claude Opus 4.8 keeps thinking off by default in OpenClaw. When you explicitly enable adaptive thinking with /think high|xhigh|max, OpenClaw sends Anthropic's Opus 4.8 effort values; Claude 4.6 models (Opus 4.6 and Sonnet 4.6) default to adaptive.

    Override per-message with /think:<level> or in model params:

    json5
    {  agents: {    defaults: {      models: {        "anthropic/claude-opus-5": {          params: { thinking: "high" },        },      },    },  },}

    Safety refusal fallback (Claude Opus 5 and Fable 5)

    Why this exists

    Opus 5 and Fable 5 classifiers return stop_reason: "refusal" on requests in restricted domains. Without a fallback, the turn ends with an error even when Anthropic has a recommended model for that refusal category.

    How it works

    1. For every direct API-key request to anthropic/claude-opus-5 or anthropic/claude-fable-5, OpenClaw sends the server-side-fallback-2026-07-01 beta header plus fallbacks: "default". Anthropic selects the recommended model for the reported refusal category.
    2. Only a safety-classifier decline triggers the fallback. Rate limits, overloads, and server errors behave exactly as before and go through OpenClaw's normal model failover.
    3. The rescue happens inside the same call. A decline before any output is invisible apart from latency; the whole answer comes from the serving model. On a mid-stream decline the partial text is kept as the prefix the fallback model continues from, while the declined model's reasoning and tool calls are discarded per Anthropic's replay rules (they must not be echoed back or executed).
    4. If the recommended model declines as well, the turn surfaces the refusal as an error.

    The fallback happens at the Anthropic API level, so the serving model does not need to be in your configured OpenClaw fallback chain.

    Observability and billing

    • A fallback-served turn records a provider_fallback diagnostic on the assistant message naming fromModel and toModel, and the message's responseModel reports the model that answered.
    • Anthropic bills the fallback attempt at the serving model's rates. OpenClaw prices known Opus 4.8 fallback-served turns at Opus 4.8 rates.
    • A mid-stream decline additionally bills the already-streamed primary-model partial on Anthropic's side; that portion is reported in the API's per-attempt usage but not folded into OpenClaw's per-turn estimate.

    Scope

    Applies to anthropic/claude-opus-5 and anthropic/claude-fable-5 with API-key auth against api.anthropic.com. OAuth (including Claude CLI subscription reuse), proxy base URLs, Bedrock, Vertex, and Foundry requests are unchanged and still surface refusals as errors there.

    See Anthropic's refusals and fallback guide for the underlying behavior.

    Prompt caching

    OpenClaw supports Anthropic's prompt caching feature for API-key auth.

    Value Cache duration Description
    "short" (default) 5 minutes Applied automatically for API-key auth
    "long" 1 hour Extended cache
    "none" No caching Disable prompt caching
    json5
    {  agents: {    defaults: {      models: {        "anthropic/claude-opus-4-6": {          params: { cacheRetention: "long" },        },      },    },  },}
    Per-agent cache overrides

    Use model-level params as your baseline, then override specific agents via agents.entries.*.params:

    json5
    {  agents: {    defaults: {      model: { primary: "anthropic/claude-opus-4-6" },      models: {        "anthropic/claude-opus-4-6": {          params: { cacheRetention: "long" },        },      },    },    entries: {      research: { default: true },      alerts: { params: { cacheRetention: "none" } },    },  },}

    Config merge order:

    1. agents.defaults.models["provider/model"].params
    2. agents.entries.*.params (matching id, overrides by key)

    This lets one agent keep a long-lived cache while another agent on the same model disables caching for 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.
    • API-key smart defaults also seed cacheRetention: "short" for Claude-on-Bedrock refs when no explicit value is set.

    Advanced configuration

    Fast mode

    For Claude Opus 5 and Opus 4.8, OpenClaw's shared /fast toggle uses Anthropic's native fast mode for direct API-key traffic to api.anthropic.com.

    Command Maps to
    /fast on speed: "fast" plus fast-mode-2026-02-01
    /fast off Standard speed; no speed field
    json5
    {  agents: {    defaults: {      models: {        "anthropic/claude-opus-5": {          params: { fastMode: true },        },      },    },  },}
    Media understanding (image and PDF)

    The bundled Anthropic plugin registers image and PDF understanding. OpenClaw auto-resolves media capabilities from the configured Anthropic auth; no additional config is needed.

    Property Value
    Default model claude-opus-5
    Supported input Images, PDF documents

    When an image or PDF is attached to a conversation, OpenClaw automatically routes it through the Anthropic media understanding provider.

    1M context window

    Claude Opus 5, Sonnet 5, Mythos 5, and Fable 5 have an exact 1,000,000-token input window and support up to 128,000 output tokens. Anthropic's 1M context window is also GA on Claude 4.x models with adaptive thinking: Opus 4.8, Opus 4.7, Opus 4.6, and Sonnet 4.6. OpenClaw sizes these models automatically, no params.context1m needed:

    json5
    {  agents: {    defaults: {      models: {        "anthropic/claude-opus-5": {},        "anthropic/claude-sonnet-5": {},        "anthropic/claude-mythos-5": {},        "anthropic/claude-opus-4-8": {},      },    },  },}

    Older configs can keep params.context1m: true; it is a harmless no-op for these models and OpenClaw no longer sends the retired context-1m-2025-08-07 beta header regardless. Older anthropicBeta config entries with that value are dropped during request header resolution, and unsupported older Claude models stay on their normal context window.

    params.context1m: true behaves the same way for the Claude CLI backend (claude-cli/*): eligible GA-capable Opus and Sonnet models already get the 1M window automatically, so the param is optional there too.

    Claude Opus 5 1M context

    anthropic/claude-opus-5 and its claude-cli variant have a 1M context window by default; no params.context1m: true needed.

    Troubleshooting

    401 errors / token suddenly invalid

    Anthropic token auth expires and can be revoked. For new setups, use an Anthropic API key instead.

    No API key found for provider "anthropic"

    Anthropic auth is per agent; new agents do not inherit the main agent's keys. Re-run onboarding for that agent (or configure an 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 configure an API key for that profile path.

    No available auth profile (all in cooldown)

    Check openclaw models status --json for auth.unusableProfiles. Anthropic rate-limit cooldowns can be model-scoped, so a sibling Anthropic model may still be usable. Add another Anthropic profile or wait for cooldown.

    Was this useful?
    On this page

    On this page