Claude Code just made Opus 5.5 the default. Check your model before you burn the window.

2026-09-23

Open a terminal this morning, type claude, and look at the first line of the header.

If you updated to Claude Code v2.1.280 and you are on Pro or Team Standard, that header no longer says Sonnet. It says Opus. Specifically Claude Opus 5.5, model id claude-opus-5-5.

Nobody popped a dialog. The five-hour usage window did not grow to match. Anthropic moved the default, and the /model picker will keep that choice unless you write a new one.

I sat down with the official price sheet, the v2.1.280 notes, and a small cost model you can rerun in ten minutes. The short version: Opus 5.5 is a real step up on coding benches, and it is cheaper than Opus 5. It is still twice Sonnet 5 on list price. If you treat the new default as “free quality,” the window empties in the middle of a refactor.

What actually changed in Claude Code v2.1.280

Claude Code default model guide mind map with bill math, routing, FAQ

Two switches flipped at once.

The opus alias now resolves to Opus 5.5. That is the new family flagship: Fable-level work on most tasks, 40 percent lower typical cost than Opus 5, more than 30 percent faster output, 1 million tokens of context. Anthropic published Terminal-Bench 4.0 at 66.4 percent, FrontierCode v1.1 at 54.4 percent, CursorBench 4.0 at 57.8 percent. Those three coding numbers sit above Fable 5.1, Opus 5, and GPT-6 Astra.

The account default moved too. Before 2.1.280, Pro and Team Standard started on Sonnet 5. Max, Team Premium, Enterprise, and the API already started on Opus. After 2.1.280, default on Pro and Team Standard resolves to Opus 5.5 as well. Official docs on Claude Code model configuration spell this out. The Help Center article that lists supported models was updated the same day.

A third detail hides in the effort system. Effort is now per-model. A level you saved before that change does not carry onto Opus 5.5. The new model starts on its own default, which is medium, not high. If your muscle memory is “I already set high in settings.json,” check /effort status. You may be on medium without noticing.

The rest of 2.1.280 is worth the upgrade even if you ignore the model. Writes through a symlink are judged by where the file actually lands, not the path you typed. Auto mode stops retrying a security check that already declined. CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH lets you lift the 2,048 character cap on MCP tool descriptions. Upgrade first. Then decide the model.

The bill math I actually ran

I did not guess the multiplier. I used Anthropic’s published list prices and a session sketch you can copy.

List prices per million tokens:

Sonnet 5 sits at $2 input and $10 output, with cache reads at $0.20. Opus 5 sits at $5 input and $25 output, with cache reads at $0.50. Opus 5.5 sits at $4 input and $20 output, with cache reads at $0.20. Fast mode on 5.5 is $8 and $40 if you turn it on.

A blended rate with 80 percent input and 20 percent output, the shape of a context-heavy agent loop, comes out to $3.60 on Sonnet 5, $9.00 on Opus 5, and $7.20 on Opus 5.5. Flip the mix to 50/50 and the numbers become $6, $15, and $12. The Opus 5.5 to Sonnet 5 ratio is 2.0 in both mixes. List input and output on 5.5 are 80 percent of Opus 5. Cache reads drop to 40 percent of Opus 5.

A more honest session sketch: 40,000 fresh input tokens, 200,000 cache reads, 12,000 output tokens. That is one busy turn in a warm repo, not a full afternoon.

Sonnet 5 costs $0.24. Opus 5 costs $0.60. Opus 5.5 costs $0.44. So 5.5 lands about 1.83 times Sonnet on that sketch, and about 73 percent of Opus 5. Anthropic’s “40 percent cheaper than Opus 5 on typical tasks” is not marketing vapor. Faster, shorter answers plus cheaper cache reads do that work. The trap is comparing 5.5 to 5. Compare it to the model you were actually running yesterday.

On a Pro five-hour window the unit is usage, not dollars, but the ratio still bites. Twice the list price with similar tool-loop volume means you hit the cap earlier. Fast mode makes that worse. Medium effort makes it better. That is the lever most people skip.

Five minutes to prove what you are running

Do this before you change anything.

Update Claude Code and confirm the version. You want 2.1.280 or newer. Older builds keep answering as Opus 5 when you type the opus alias, and they do it quietly.

claude --version

Start a throwaway session in a scratch folder. Run /status. Read the model name, not the alias. You want to see claude-opus-5-5 if the new default applied. If you see claude-opus-5, you are on the previous Opus. If you see claude-sonnet-5, you still have an override in user settings, project settings, or ANTHROPIC_MODEL.

/status
/model
/effort status

In the /model picker, Enter saves the choice as your default. The s key switches for this session only. That distinction matters. I have burned a morning because a project .claude/settings.json kept putting Sonnet back on the next launch while I thought /model opus had stuck.

Check three places if the header disagrees with what you expect:

Your user settings model field. A project model field, which wins on the next launch. ANTHROPIC_MODEL in the shell, which applies only to that process. Resume and continue keep the model that was live when the transcript was saved. A session you started Monday on Sonnet stays on Sonnet even after the default flip.

If you share a machine with an org admin, an organization default can override you on the next launch. The startup header names the settings file that set the model. Read that line once.

When Opus 5.5 is the right default

Keep it if the work is a real software job, not a tidy edit.

Migrations across modules. A 1 million token window plus stronger agentic coding is the reason 5.5 exists. Anthropic’s own long-task notes include a HAProxy C-to-Rust rewrite in 9.5 hours at 51 percent lower cost than Fable 5.1, and a 680,000 line migration finished in a day by an early tester. Your repo is smaller. The shape is the same.

Bugs that hide one layer past the first green test. Opus 5.5 at high or xhigh is for the rename that updates the handler and misses the client. Medium will often stop at the passing unit test. That is not a model failure. That is the effort default doing what it was tuned to do.

Plan mode on a messy architecture question. The opusplan alias still exists: Opus while you plan, Sonnet while you execute. Use it. Paying Opus prices for every mechanical apply-this-pattern turn is how the window dies.

Research or test subagents that inherit the parent model. If you /model to Opus and then spawn work, those children run Opus too. Switch first only when the child work needs it. Pin a smaller model in the subagent definition when it does not.

When you should switch Claude Code off Opus

Switch back for the work you already know how to describe.

Mechanical refactors, renames, test scaffolding, comment sweeps, “apply this pattern to these eight files.” Sonnet 5 at default effort handles that. You keep the 1 million token window. You pay half.

Tight interactive loops where you are sitting on the response. Opus 5.5 Fast mode is 2.5 times the list price of standard 5.5. If you need speed for a small edit, Sonnet is the cheaper speed. Save Fast for the hour you are blocked on a long agent run and the wall clock matters more than the window.

Any session where you have not set /effort since the upgrade. Opus 5.5 defaults to medium. That is correct for daily work. It is wrong if you left an old high in your head and started a gnarly debug. Set the effort on purpose. Do not inherit a ghost setting.

Teams that live on Pro because the five-hour cap is the budget. The default flip is a product decision, not a gift. /model sonnet is still one command. "model": "sonnet" in user settings is the durable version.

claude --model sonnet
/model sonnet
{
  "model": "sonnet"
}

Use the flag when you want one session. Use /model and hit Enter when you want the new default. Use the JSON field when you want every new session to start there, knowing a project file can still override it.

A routing rule I will keep for the next two weeks

This is the rule I wrote on a sticky note after the price model. Steal it.

Start the day on Sonnet 5. If the first pass stalls at one layer, or the plan itself is the work, switch to Opus 5.5 and set /effort high. If the task is a long autonomous run with a clear done condition, leave 5.5 on xhigh for that session only. Max stays session-only unless you force it through an environment variable, which is a kindness. Do not leave Max on overnight.

If the agent says “done” and you cannot point to a passing check after the last code edit, the model is not the problem. Put a Stop hook in front of the claim. A twenty-line Stop hook that runs your test command is enough for most projects. I would rather spend ten minutes on a hook than another 80,000 tokens arguing with a confident summary.

For the harness layer that sits under models — panes, function hooks, and in-process TypeScript — see TechWave Arena’s companion post on Claude Code mods vs plugins. And if you are still learning the basics, the Mastering Claude Code beginner’s guide is the on-ramp.

The first-hand test you can finish before standup

Pick one real ticket. Not a toy.

Run it on Sonnet 5 at default effort. Write down wall clock, whether tests passed, and whether you had to poke the agent more than twice.

Switch with /model claude-opus-5-5, confirm /effort status is medium, and rerun the same ticket in a fresh session. Same notes.

If medium still stops at one layer, bump to /effort high and do a third pass only on the failed slice, not the whole ticket.

You now have three data points on your repo, not a bench from a press post. Keep the model that finished the ticket with the fewest pokes. That is the only ranking that pays rent.

Official sources if you want the raw numbers: Introducing Claude Opus 5.5, Claude Code model configuration, and What a task costs on Opus 5.5.

Common questions about Claude Code default model

Did Claude Code change my default model without asking?

Yes, if you landed on v2.1.280 and you did not already pin a model in settings. Pro and Team Standard moved from Sonnet 5 to Opus 5.5. Max and higher plans already defaulted to Opus and now resolve that alias to 5.5. Your saved transcripts do not change.

How do I switch Claude Code back to Sonnet?

/model sonnet then Enter to save it. Or set "model": "sonnet" in user settings. Or launch with claude --model sonnet for one session. Check /status after. If a project settings file sets model, that file wins on the next launch.

Is Claude Opus 5.5 worth it inside Claude Code?

On coding benches, yes. Terminal-Bench 4.0 at 66.4 percent is not a rounding error. On a Pro window for mechanical work, not by default. Use 5.5 when the task is large, ambiguous, or one layer deeper than the first green test. Use Sonnet when you can describe the edit in one sentence.

Why does /effort look wrong after the upgrade?

Effort is per-model as of this release. Opus 5.5 starts at medium. An older saved high does not copy over. Run /effort status, then set the level you want. Changing effort clears the prompt cache for that conversation, so do it between tasks, not in the middle of a hot loop.

If you try only one thing

If you try only one thing from this page, make it /status on a fresh session. Read the model id. Then pick the model on purpose.

Leave a comment