Opus 5.5 vs Sonnet 5.5: Which Model and Effort Level to Use for Coding
When to use Opus 5.5, when to use Sonnet 5.5, which effort level to pick, and a workflow that combines both without burning your limits.
- ai
- claude code
- vibe-coding
It’s an undeniable fact that Claude Code is one of the best agentic coding tools out there. It’s also an undeniable fact that its usage limits cause more anxiety than a Friday afternoon deploy.
So you use Opus 5.5 when you can, Sonnet 5.5 when you have to, and spend the rest of your time wondering whether you’re wasting your limits on the wrong model.
In this guide, we compare Opus 5.5 vs Sonnet 5.5 for coding, show you which model and effort level fits which job, and share a workflow that gets you Opus-quality output without running out of usage by Wednesday.
Opus 5.5 vs Sonnet 5.5 — The Data
First, let’s look at the numbers.
- Intelligence: Opus 5.5 wins. It ranks #1 out of 215 models on the Artificial Analysis Intelligence Index whereas Sonnet 5.5 comes in at 2nd. On Anthropic’s internal agentic-coding benchmark, Opus 5.5 scored 86.6% at medium effort, while Sonnet 5.5 scored 77.8% at high.
- Speed: Sonnet 5.5 wins. It writes about 133 tokens per second against Opus’s 96, which makes it roughly 38% faster.
- Price: Sonnet 5.5 costs exactly half. Opus 5.5 costs $4 per million input tokens and $20 per million output tokens. Sonnet 5.5 costs $2 and $10. On a Pro or Max plan, Anthropic doesn’t publish an exact ratio, but its support docs say Opus uses “meaningfully more of your quota.”
- Context: same window, but Opus remembers more. Both have a 1M-token context window, but Opus is better at keeping track of all the important details in a long session.
There are two exceptions to the above findings though:
-
Sonnet beats Opus on Terminal-Bench 4.0, which measures how well a model works in the terminal. Sonnet scores 70.6% against Opus’s best score of 66.4%, at xhigh.
-
Sonnet slows down at max effort, because it thinks for longer. When Artificial Analysis ran both models at max, Sonnet used about 65% more output tokens per task, and Opus finished tasks sooner on average.
Opus 5.5 vs Sonnet 5.5 — Best Use Cases
Not sure whether to choose Opus 5.5 or Sonnet 5.5 for a task? This table matches common coding jobs to the right model and effort level.
| Use case | Model (effort) |
|---|---|
| Planning a new app or feature, and writing the implementation plan | Opus 5.5 (high) |
| Architecture decisions and tricky trade-offs | Opus 5.5 (high) |
| Large rewrites, such as restructuring your code or moving to a new database or framework | Opus 5.5 (high) |
| An elusive bug | Opus 5.5 (high) |
| Security reviews | Opus 5.5 (high) |
| Reviewing changes before you add them to your main code | Opus 5.5 (low) |
| Building a feature from a written plan | Sonnet 5.5 (high) |
| Fixing a bug with a known cause | Sonnet 5.5 (high) |
| Setup work: install scripts, config files, and terminal commands | Sonnet 5.5 (medium) |
| Writing tests and docs for code that already works | Sonnet 5.5 (medium) |
| Small changes: copy edits, renames, UI tweaks | Sonnet 5.5 (low) |
The Best Coding Workflow With Opus 5.5 and Sonnet 5.5 Combined
If limits aren’t a worry for you, stick with Opus 5.5 for everything. It’s a little slower than Sonnet, but it gets more right on the first try, and that’s what saves you time.
When your limits are tight, use this workflow instead.
1. Write a Detailed Prompt for Opus 5.5 on High
Start a new session with Opus 5.5, and set the effort to high.
Claude Code normally runs Opus 5.5 at medium, which is fine for most daily work. But for planning, high is recommended. On Anthropic’s internal set of SWE-bench Pro tasks, Opus solved 92.8% of tasks at medium effort and 95.3% at high, with high effort costing just $0.08 more per task.
Then write your prompt. In our first week with Opus 5.5, we found it needs less hand-holding than older models. But it can only plan around what you tell it.
So explain everything:
- What you’re building, and who it’s for
- Your constraints, and the things that must not change
- The libraries you want to use or avoid
- The files and docs it should read
- What “done” looks like
Our post, Anatomy of a Senior Engineer’s Prompt, walks through an example of a good code generating prompt.
2. Ask for a Tiered Plan, Starting With a Summary
At the end of your prompt, ask Opus to create an implementation plan split into tiers. Each tier is a chunk of work you can build and test independently.
The important part is that in its initial response, Opus should only give you a summary of the plan and its tiers. And once you have reviewed and approved the tier-wise split, only then should it write the plans out in full.
Here’s exactly what to add to your prompt:
Planning prompt
Don't write any code yet. I want an implementation plan, split into tiers that I can build and test one at a time.
In your first reply, only give me a short summary of each tier: what it covers, and why it comes in that order. Then wait for my approval.
Once I approve, write each tier as its own file in a plans/ folder at the root of the project. Name them tier_0.md, tier_1.md, tier_2.md, and so on. tier_0.md holds the background: what the project is and who it's for, the tech stack, the directory structure, and the rules every tier must follow (naming, patterns, libraries to use and avoid).
Every other tier file must list the exact files to create or change, the implementation details, and what is out of scope. End each tier with a definition of done and the steps to test it.
3. Approve the Summary, Then Review Each Tier
Read the summary. If a tier is too big, too vague, or in the wrong order, ask Opus to fix it.
Once the summary looks right, approve it.
After Opus has written all the files, go through them one by one and ensure that everything looks right.
Don’t rush this step.
4. Implement Tier 1 in a New Session With Sonnet 5.5 on High
Close the Opus session, and start a fresh one with Sonnet 5.5 on High.
Then give it this prompt:
Implementation prompt
Read plans/tier_0.md for the project background and rules. Then implement plans/tier_1.md.
Only do what tier 1 asks. When you reach its definition of done, run its tests, then stop and report what you did.
5. Test It, Commit It, Then Start a New Session for Tier 2
Test tier 1 yourself. If something fails, tell Sonnet what broke, in the same session, before you move on.
When tier 1 works, ask Claude to commit it to git.
Then close the session and start a new one to implement tier 2 in the same way.
Anthropic’s best practices recommend a fresh session to build from a finished plan, so the model only has the current task in view. A session that carries tier 1’s back-and-forth into tier 2 is slower, more expensive, and more likely to get confused. Your plan files already hold everything the next session needs to know.
6. (Optional) Have Opus Review Each Tier
If you have the limits for it, get Opus to check each tier before you move on. Start a new session, ask it to read plans/tier_0.md and the tier you just built, and then review the new code against that plan.
Tell it to flag only problems that affect correctness or the plan’s requirements.
Best Practices When Working With Opus 5.5 and Sonnet 5.5
Next, here are some best practices to follow when working with Opus and Sonnet 5.5.
Don’t Switch Models Mid-Conversation
It’s tempting to start a session on Sonnet and type /model opus when things get hard. Don’t.
Claude Code caches your conversation so that the model doesn’t have to reprocess it on every message. But each model has its own cache. When you switch, the cache no longer applies, and the new model rereads your entire history from scratch. On a long session, that costs a lot.
Going from Opus down to Sonnet has a second cost. Before each reply, Opus thinks through the problem, and that thinking remains in your conversation history. But Sonnet 5.5 can’t read Opus’s thinking, so when you switch, it gets dropped, and Sonnet carries on without the reasoning that got you this far.
Use Opus as an Advisor Instead of Switching
If you want Opus’s help without leaving a Sonnet session, Claude Code has an experimental advisor feature. Sonnet stays your main model and handles the routine work. Opus gets consulted only at the hard moments: before Sonnet commits to an approach, when an error keeps coming back, or before it calls the task done.
Turn it on with /advisor opus, and turn it off with /advisor off. Unlike /model, turning the advisor on or off keeps your prompt cache intact. It works on Claude plans and API billing.
Each advisor call makes Opus read your full conversation, without the cache, so every consultation costs more than a normal turn.
Try Opus 5.5 on Low Before You Downgrade to Sonnet
If Opus 5.5 is burning through your limits on a task, lower its effort before you switch models.
On Anthropic’s SWE-bench Pro tasks, Opus 5.5 at low solved 87.4% at $0.12 per solved task. Sonnet 5.5 at high solved 87.6% at $0.11. That’s basically the same result at nearly the same cost.
Wrapping Up
If your limits allow it, use Opus 5.5 for everything. When they don’t, plan with Opus on high and build with Sonnet on high.
Before you switch models to save usage, try lowering the effort level instead. And stay off max and ultracode unless the job really needs them (it rarely does!)
If a session still keeps going awry, read What to Do When Vibe Coding Stops Working.
Frequently asked
Is Opus 5.5 better than Sonnet 5.5 for coding?
Yes, for most coding work. Opus 5.5 scores higher on the harder coding benchmarks and is clearly stronger on open-ended work that needs judgment. Though, Sonnet 5.5 is faster, costs half as much per token, and is very good at well-scoped tasks.
Which effort level should I use with Sonnet 5.5 in Claude Code?
High, for any real implementation work. Claude Code starts Sonnet 5.5 at medium, but in Anthropic's own testing, medium scored about 15 points lower than high on an internal agentic-coding benchmark.
Should I switch from Sonnet 5.5 to Opus 5.5 in the middle of a session?
Avoid it. Each model has its own prompt cache, so the first request after a switch reprocesses your whole conversation with no cache hits. Raise the effort level instead, or start a new session with the model you need.
Is max effort worth it for coding?
Rarely. Anthropic's docs say max is prone to overthinking, and Sonnet 5.5 scored lower at max than at xhigh on the FrontierCode benchmark. High is the right ceiling for most coding work.