Claude Code 2.1.280, released on September 22, 2026, made Claude Opus 5.5 its default model and moved the opus alias to it. Claude Code also treats any gateway set in ANTHROPIC_BASE_URL as the Claude API. Through Router One that means an updated Claude Code sends claude-opus-5-5 unless you pin a model — and as of the 2026-09-24 plan response no Pro, Max or Ultra tier lists that id, so those requests are billed per token to your wallet.
Below are three ready-to-paste setups and the details behind them: the bare id, the 1M window, effort, and what does not work. For curl, SDKs and endpoints, see the Claude Opus 5.5 API guide; for your own code, the Opus 5.5 migration guide covers the breaking changes and their 400 errors.
What changed in Claude Code 2.1.280
The Claude Code changelog entry for 2.1.280 reads: "Added Claude Opus 5.5 (claude-opus-5-5), now the default Opus model". The model configuration docs show what moved for an Anthropic API connection:
| Setting | v2.1.219 to v2.1.279 | v2.1.280 and later |
|---|---|---|
default model | Opus 5 | Opus 5.5 |
opus alias | Opus 5 (claude-opus-5) | Opus 5.5 (claude-opus-5-5) |
| Starting effort on that model | high | medium |
| Thinking on that model | can be turned off | always on |
The same page states that Opus 5.5 requires Claude Code v2.1.280 or later. The LLM gateway protocol page adds that with ANTHROPIC_BASE_URL set, "Claude Code treats the gateway as the Claude API" — so a Router One session gets the right-hand column.
Anthropic's Opus 5.5 overview positions the model "For long-running agentic coding and knowledge work", with a 1M-token context window, up to 128K output tokens on the synchronous Messages API, always-on adaptive thinking and medium as the default effort. Those are the vendor's statements; Router One vouches for its catalog entry and how the gateway routes and bills the model.
What it means on Router One
- The id works as is. Since 2026-09-24 the gateway resolves
claude-opus-5-5to the catalog idanthropic/claude-opus-5.5and serves it on/v1/messages, the endpoint Claude Code calls. The catalog lists a 1,048,576-token window, text and image input, and one rate line across the whole window; the Claude Opus 5.5 model page carries the live rate. - It is not in a plan. As of the 2026-09-24 plan response, no tier of Pro, Max or Ultra lists
claude-opus-5-5, so every Opus 5.5 call bills per token to the wallet, plan or no plan. Claude Opus 5 stays in the Premium models tier of all three plans. A subscriber whose Claude Code drew Premium quota on Opus 5 starts paying from the wallet once Claude Code updates to 2.1.280, and with an empty or nearly empty wallet those requests fail with HTTP 402, abilling_errorwhose message starts with "insufficient balance" (API error codes). - Background work follows the main model. For a session that connects with
ANTHROPIC_AUTH_TOKEN, the gateway protocol page gives the background-task model as "The main model", unlessANTHROPIC_DEFAULT_HAIKU_MODELpins one. Subagents that don't name a model run on the session model too. - No silent model swaps. Router One never answers an Opus 5.5 request with Opus 5 or any other model, and a 400 parameter error goes back to Claude Code instead of being retried. As of 2026-09-24 there is no AWS or Google Cloud channel id for Opus 5.5 either; the
aws/andvertex/Claude ids stop at Opus 5 (channel model ids guide). - Rates differ by id. Claude Opus 5.5 vs Claude Opus 5 renders both from the live catalog; check it rather than assuming the newer model costs less per token. The prices in Claude Code's
/modelpicker are Claude Code's own display label, not Router One's rates.
Dashboard → Logs shows each request with its model, input and output tokens, cost and status (per-request observability), so the next few rows after a change tell you which model Claude Code really sends.
Three setups, ready to paste
All three keep the two variables from the Claude Code setup: ANTHROPIC_BASE_URL=https://api.router.one (no /v1) and ANTHROPIC_AUTH_TOKEN set to your Router One key. ANTHROPIC_API_KEY is not required — leave it unset. Each setup comes as shell exports for ~/.zshrc or ~/.bashrc and as the env block of ~/.claude/settings.json, where the Router One one-click install writes its values. Keep each variable in one place: an env block in the settings file replaces the value inherited from the shell. Run claude update first; everything below assumes 2.1.280 or later.
Setup A: Opus 5.5, billed to the wallet
The new default, pinned so a later change of default doesn't move you without notice:
export ANTHROPIC_BASE_URL=https://api.router.one
export ANTHROPIC_AUTH_TOKEN=sk-your-api-key
export ANTHROPIC_MODEL=claude-opus-5-5
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.router.one",
"ANTHROPIC_AUTH_TOKEN": "sk-your-api-key",
"ANTHROPIC_MODEL": "claude-opus-5-5"
}
}
Every request here bills to the wallet; add setup C to keep background calls off Opus 5.5.
Setup B: stay on plan quota with Opus 5
For Pro, Max and Ultra subscribers who want Claude Code to keep drawing the Premium models quota:
export ANTHROPIC_BASE_URL=https://api.router.one
export ANTHROPIC_AUTH_TOKEN=sk-your-api-key
export ANTHROPIC_MODEL=claude-opus-5
export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.router.one",
"ANTHROPIC_AUTH_TOKEN": "sk-your-api-key",
"ANTHROPIC_MODEL": "claude-opus-5",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-5"
}
}
ANTHROPIC_MODEL sets the session model; ANTHROPIC_DEFAULT_OPUS_MODEL points the opus alias at Opus 5 too, which covers /model opus, the planning phase of opusplan and subagents defined with model: opus. When the Premium tier's quota for the cycle runs out, further calls bill to the wallet at posted rates; the pricing page shows each plan's model lists and quotas, and Router One plans for Claude Code covers how overage is billed.
Setup C: background tasks on Haiku 4.5
Add one line to setup A or B, as an export or inside the same env block. The JSON below is setup A with the line added; for setup B, add the same last line to its block:
export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.router.one",
"ANTHROPIC_AUTH_TOKEN": "sk-your-api-key",
"ANTHROPIC_MODEL": "claude-opus-5-5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5"
}
}
This sets the model behind the haiku alias and Claude Code's background functionality; per Claude Code's changelog and model configuration docs (Claude Code 2.1.300, checked 2026-10-15), from 2.1.293 that alias otherwise resolves to Claude Haiku 5.5 (claude-haiku-5-5), which Router One lists as of the 2026-10-10 catalog but no plan tier lists in the 2026-10-10 plan response, so it bills per token to the wallet. Router One accepts claude-haiku-4-5 as an alias of anthropic/claude-haiku-4.5, which sits in the Standard models tier of all three plans.
To switch one session only, launch with claude --model claude-opus-5; at launch, --model and ANTHROPIC_MODEL take precedence over a model saved with /model.
Claude Code 2.1.284 and later: pin sonnet too (haiku optional)
Claude Code 2.1.284 (September 28, 2026) points the sonnet alias at Claude Sonnet 5.5 and sends claude-sonnet-5-5, per the Claude Code changelog and model configuration docs (checked 2026-10-01). Router One lists claude-sonnet-5-5 from 2026-09-29, but no Pro, Max or Ultra tier lists it in the 2026-09-29 plan response. The session model of each setup above is unaffected, but on a plan everything that goes through the sonnet alias bills per token to the wallet: /model sonnet, subagents defined with model: sonnet, /statusline and the execution phase of opusplan. Add these lines to whichever setup you use; the Haiku line is optional:
export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5
export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5
{
"env": {
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5"
}
}
In the JSON form, merge the keys into the env block you already have. The Haiku line is setup C. Claude Sonnet 5 is in the Mid-tier models tier of all three plans. The fable alias needs a pin of its own from Claude Code 2.1.321. Per Claude Code's model configuration docs (Claude Code 2.1.300, checked 2026-10-15), it resolves to Claude Fable 5.1 (claude-fable-5-1); per its changelog and model configuration docs (checked 2026-11-10), 2.1.321 resolves it to Claude Fable 5.2 (claude-fable-5-2) instead, which is not in the 2026-11-10 Router One catalog. If you use the alias, set ANTHROPIC_DEFAULT_FABLE_MODEL=claude-fable-5-1 the same way to keep it on Claude Fable 5.1, which Router One lists again as of the 2026-10-15 catalog and which, like Claude Fable 5, is in no plan tier as of the 2026-10-15 plan response, so it bills to the wallet. If you set ANTHROPIC_DEFAULT_FABLE_MODEL=claude-fable-5 earlier, the alias stays on Claude Fable 5 until you change that line. On the wallet, drop the Sonnet line if you want the sonnet alias on Claude Sonnet 5.5.
Why the bare id and not the catalog id
Router One accepts both claude-opus-5-5 and anthropic/claude-opus-5.5, but Claude Code releases before 2.1.314 read them differently; Claude Code's 2.1.314 changelog (checked 2026-10-30) reports a fix for model IDs spelled with a dot behind an LLM gateway being treated as an older model, and the official id works the same on every release from 2.1.280. Claude Code picks per-model defaults from the model id, and it recognizes Opus 5.5 by the official id. The catalog id contains the text claude-opus-5, and Claude Code's docs note that an id containing a Claude model name it knows, such as anthropic/claude-opus-4-8, resolves to that model. So on releases before 2.1.314 the catalog id gets Opus 5 defaults: effort starts at high, /model shows Opus 5, and some side requests turn thinking off or force a tool call, which Opus 5.5 does not accept. Router One rewrites those two settings for Opus 5.5 so those requests no longer fail, but a forced tool call becomes optional — WebSearch, for one, may answer in plain text without searching — and the defaults and the label stay wrong.
| Model value | On Router One | Claude Code treats it as |
|---|---|---|
claude-opus-5-5 | accepted (alias) | Opus 5.5 — use this |
opus | Claude Code sends claude-opus-5-5 (unless ANTHROPIC_DEFAULT_OPUS_MODEL is set) | Opus 5.5 |
anthropic/claude-opus-5.5 | accepted (catalog id) | Opus 5 before Claude Code 2.1.314 — avoid it, or map it |
claude-opus-5.5, anthropic/claude-opus-5-5, claude-opus-5-5-thinking | rejected with HTTP 404 (model not supported) | — |
If a shared config has to keep the catalog id, map it with modelOverrides in the settings file, keyed by the Anthropic id, as Claude Code's error reference describes. Claude Code then sends the catalog id while treating the session as Opus 5.5:
{
"modelOverrides": {
"claude-opus-5-5": "anthropic/claude-opus-5.5"
}
}
The 1M context window
Opus 5.5 has a 1M-token window on Anthropic's API, and the Router One catalog lists 1,048,576 tokens with one rate line across the whole window — no long-context tier. Since Claude Code 2.1.285 (September 29, 2026), a session behind a custom ANTHROPIC_BASE_URL gives each model Claude Code recognizes the window it has on the Anthropic API — Opus 4.7 and later, Sonnet 5 and later, and the Fable models get 1M with no [1m] variant to select — so claude-opus-5-5 runs with the full window and compacts at about 967K tokens by default, per the Claude Code changelog and model configuration docs (checked 2026-10-01). On 2026-10-15 both release channels were on 2.1.285 or later (npm dist-tags: stable 2.1.292, latest 2.1.300). Only on 2.1.280 to 2.1.284, which predate that change, add the [1m] suffix so Claude Code budgets the full window:
export ANTHROPIC_MODEL='claude-opus-5-5[1m]'
export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-5-5[1m]'
# or for a single launch
claude --model 'claude-opus-5-5[1m]'
On those versions, /model opus[1m] inside a session does the same. Keep the quotes: zsh reads an unquoted [1m] in a command argument as a filename pattern and stops with "no matches found". Claude Code strips the suffix before sending, so Router One still receives claude-opus-5-5; on ANTHROPIC_DEFAULT_OPUS_MODEL it extends the window to everything that uses the opus alias. If either variable already sits in the env block of ~/.claude/settings.json, as in the JSON form of the setups above, change it there, for example "ANTHROPIC_MODEL": "claude-opus-5-5[1m]": the settings value wins over a shell export.
The full window is now the default, and it is not free. Claude Code resends the conversation every turn, so a session that runs toward 967K tokens sends more input with every turn. Opus 5.5 bills that input to the wallet on its one rate line. On a plan, setup B's model draws plan requests by input length: a claude-opus-5 request whose input is above 256,000 tokens draws 2 plan requests and one above 512,000 draws 4, and claude-sonnet-5, behind the pinned sonnet alias, has the same bands (catalog as of 2026-10-01; the pricing page shows the live bands). To compact earlier, set the auto-compact window:
export CLAUDE_CODE_AUTO_COMPACT_WINDOW=240000 # plain integer, 100000 to 1000000; or in the env block
# inside a session: /autocompact 240k # 2.1.288+: saved for the current model only
At 240,000 a session compacts before the first band, although one turn that adds a large file or tool result can still cross it; when both are set, the variable wins over /autocompact. The variable applies to every model. From Claude Code 2.1.288, /autocompact saves its value for the current model only, per the model configuration docs (checked 2026-10-03), so run it on each model you switch to (with setup B and the sonnet pin, that means claude-opus-5 and claude-sonnet-5), or use the variable. CLAUDE_CODE_DISABLE_1M_CONTEXT=1 holds these models to a 200K window instead. The Claude Code token cost breakdown covers the other levers.
Effort is the thinking control
Thinking is always on for Opus 5.5; effort decides how much of it happens. Claude Code offers low, medium, high, xhigh and max, and starts Opus 5.5 at medium:
claude --effort high # this launch only
export CLAUDE_CODE_EFFORT_LEVEL=high # every session; overrides --effort and /effort
# inside a session: /effort high # saved for the current model
Two details from the model configuration docs: "a top-level effortLevel in your user settings file doesn't count for Opus 5.5", so a level kept there for Opus 5 does not carry over, and max lasts for the current session only unless it comes from CLAUDE_CODE_EFFORT_LEVEL. Claude Code sends the level with each request, and Router One's /v1/messages passes output_config.effort through unchanged. Higher effort means more thinking tokens, which are billed as output tokens, the same as on Anthropic's API.
What does not work: thinking off and fast mode
Turning thinking off. Claude Code's model configuration docs (checked 2026-10-01) are explicit: you can't turn thinking off on Opus 5.5. The session toggle and the /config row show "Thinking can't be turned off" for it instead of offering the switch, a saved alwaysThinkingEnabled: false or MAX_THINKING_TOKENS=0 has no effect, and the model decides per step how much to think based on the effort level. To spend less on thinking, lower the effort.
Fast mode. Per Claude Code's fast mode docs (checked 2026-10-01), a session that authenticates with ANTHROPIC_AUTH_TOKEN alone, with no claude.ai login or Anthropic API key, skips the availability check and treats fast mode as disabled by your organization, so /fast stays off in the setups above.
Balance, keys and version
- Keep a healthy balance. Before a request runs, Router One sets aside an estimate of its cost that grows with the requested
max_tokens, and Claude Code asks for a large output allowance on Opus 5.5. When the balance cannot cover that estimate, the gateway lowersmax_tokensto what it covers, and with thinking always on, a long answer can stop early. Parallel subagents each need their own allowance, so top up before long sessions: card or Alipay through one hosted checkout, or USDT/USDC on six chains. - One key per tool. Give Claude Code its own key with a
maxSpendcap. When the key reaches its cap, it cannot charge your wallet past that amount and your other keys keep working; a key can also carry an expiry date. Dashboard → API Keys shows how much of its cap that key has charged to the wallet (per-key cost tracking). - Check the version. Opus 5.5 needs 2.1.280 or later:
claude --version # should print 2.1.280 or later
claude update
Version 2.1.281 (September 23, 2026) also fixed several streaming issues seen behind proxies and gateways, and 2.1.285 gave gateway sessions the 1M window described above. On 2026-10-15 the stable channel was on 2.1.292 and latest on 2.1.300 (npm dist-tags), so update.
FAQ
Why is my wallet charged when I have a Router One Max plan? Claude Code 2.1.280 and later sends claude-opus-5-5 unless you pin a model, and as of the 2026-09-24 plan response no Pro, Max or Ultra tier lists Opus 5.5, so those requests, background tasks included, bill per token to the wallet. To keep drawing plan quota, set ANTHROPIC_MODEL=claude-opus-5 and ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5 (setup B) and check new rows in Dashboard → Logs.
I chose Opus 5.5, but /model shows Opus 5. Why? Usually the model value is the catalog id anthropic/claude-opus-5.5, which Claude Code releases before 2.1.314 read as Opus 5; use claude-opus-5-5 or map the catalog id with modelOverrides, and confirm claude --version shows 2.1.280 or later. Claude Code can also switch by itself: its docs describe an automatic fallback that re-runs a request flagged by the safety classifiers on another model (Opus 5 for biology, Opus 4.8 for cybersecurity) and shows a notice in the transcript. That happens in Claude Code, not in Router One; run /model to go back.
Can I turn thinking off to save tokens? No. Claude Code's toggle, alwaysThinkingEnabled and MAX_THINKING_TOKENS=0 have no effect on Opus 5.5. Lower the effort instead (/effort low, --effort low or CLAUDE_CODE_EFFORT_LEVEL=low), or use a model whose thinking can be turned off, such as Opus 5.
Does the [1m] suffix cost more? Not per token, and Claude Code 2.1.285 and later don't need it. As of 2026-10-01 the Router One catalog lists one rate line for Opus 5.5 across its whole window, and the suffix never reaches the gateway. A larger window changes how much history Claude Code keeps before compacting; every turn resends that history, so a longer session costs more in total. CLAUDE_CODE_AUTO_COMPACT_WINDOW sets an earlier compaction point.
Does /fast work through Router One? Not in the setups above. Per Claude Code's fast mode docs (checked 2026-10-01), a session that authenticates with ANTHROPIC_AUTH_TOKEN alone treats fast mode as disabled by your organization. For quicker turns, lower the effort.
How do I go back to Opus 5? For one launch, run claude --model claude-opus-5; inside a session, /model claude-opus-5 switches and saves it as your default. For every session, use setup B in your shell profile or the env block of ~/.claude/settings.json. As of 2026-09-24 Opus 5 is in the Premium models tier of the Pro, Max and Ultra plans, so plan holders draw quota again.
Which model do subagents use? Claude Code checks, in order, the model passed when Claude starts the subagent, the model in its definition, CLAUDE_CODE_SUBAGENT_MODEL, then the session model, so a subagent that sets none of the first three runs on Opus 5.5 in an unpinned session. Set CLAUDE_CODE_SUBAGENT_MODEL (for example to claude-sonnet-5) to change that default; background tasks run on the main model unless ANTHROPIC_DEFAULT_HAIKU_MODEL is set (setup C). A subagent defined with model: sonnet goes through the sonnet alias, which Claude Code 2.1.284 and later send as claude-sonnet-5-5; Router One lists that id, but no plan tier covers it as of the 2026-10-15 plan response, so on a plan set ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5. A subagent defined with model: haiku goes through the haiku alias, which Claude Code 2.1.293 and later resolve to claude-haiku-5-5 (per Claude Code's model configuration docs, Claude Code 2.1.300, checked 2026-10-15); Router One lists that id (Claude Haiku 5.5) as of the 2026-10-10 catalog, but no plan tier lists it in the 2026-10-10 plan response, so such subagents bill per token to the wallet unless ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5 (setup C) keeps them on Claude Haiku 4.5.
Next steps
- Call the model directly with the Claude Opus 5.5 API guide, and fix your own code with the Opus 5.5 migration guide.
- Compare the live spec sheets: Claude Opus 5.5 vs Claude Opus 5, Claude Opus 5.5 vs Claude Sonnet 5 (Sonnet 5 is in the Mid-tier models tier of all three plans) and Claude Opus 5.5 vs GPT-6 Sol. GPT-6 Sol runs in Codex CLI and other OpenAI-compatible tools, not in Claude Code (GPT-6 Sol tool setup).
- New to Claude Code on Router One? Start with the one-line install on Claude Code in China or the setup guide.