You open Claude Code for something routine — a small edit, a quick question — and somewhere along the way you notice you're running on Opus. You didn't pick it. And Opus is the expensive tier, so now you're wondering how much of your quota just went to a task that didn't need it.
Two people filed that exact complaint this week. It's worth knowing what's actually reported versus what's guessed — and then the ten-second habit that fixes it no matter the cause.
What's actually reported
Two open GitHub issues, two different users:
- #76222 (10 July, v2.1.205): "Model unexpectedly switches to Opus without user request." The reporter's words: "i keep getting my model switched to opus for no reason. what im doing is not anything with high value."
- #75479 (8 July): a Teams setup configured to launch with Sonnet, but inference going out on Opus — "spending too much money."
Both are open and unconfirmed. No Anthropic response on either; #75479 is even tagged "needs-info." So this is a pattern worth being aware of, not a confirmed bug — and I'm not going to tell you Claude Code is overcharging everyone, because two open reports don't show that.
I'll also be straight about what I couldn't verify: #76222 is on v2.1.205, and the build I could inspect is v2.1.203, so I haven't reproduced the switch myself and I can't tell you the cause. Bug, a routing config issue, some model-selection behavior — genuinely unknown right now.
Why it matters even if it's rare
Opus is Anthropic's most capable and most expensive tier. Sonnet is cheaper and, for most day-to-day coding, plenty. If you're on a Max or Pro plan, running Opus for routine work burns your usage quota faster; on the API, it's a higher per-token rate. So "am I accidentally on Opus?" is a real cost question, not paranoia.
The good news: you don't have to solve the mystery to protect yourself. You just have to control your own model — and that part I can verify.
The fix: check it, then pin it
All four of these are in the current Claude Code (confirmed in the v2.1.203 binary):
- Check what you're on, mid-session: run
/model. It shows your current model and lets you switch — flip to Sonnet for routine work in one step. - Set it at launch:
claude --model <model>starts the session on the model you name. - Make it stick: set
defaultModelin~/.claude/settings.json(global) or your project's.claude/settings.json(per-project). Now every session starts where you want. - Or via environment:
ANTHROPIC_MODEL.
The habit that makes the whole issue moot: run /model at the start of any session you care about the cost of. Ten seconds, and you're never surprised by the tier you're on.
What not to do
Don't rip into your config trying to "disable auto-Opus" based on a setting you found in a forum thread. The cause here isn't established, so you'd be chasing a fix for a mechanism nobody's confirmed. Pin your model with the documented controls above — that works whether the switch is a bug, a Teams routing quirk, or something else entirely. And skip the "Claude Code is secretly billing everyone at Opus rates" framing; the reports don't support it, and #76222 is specifically about the model switching, not proof of what you were charged.
The receipts
- #76222 — open, unconfirmed, v2.1.205, filed 10 July 2026. No maintainer response.
- #75479 — open, "needs-info," filed 8 July 2026. Teams Sonnet-vs-Opus routing.
- Model controls (
/model,--model,defaultModel,ANTHROPIC_MODEL) confirmed in the v2.1.203 binary on 10 July 2026. The switching behavior itself is reported on v2.1.205 and not verified here.
You can't always control whether a tool has a quirk. You can always control which model you're paying for. Check /model — then get back to work.
More fixes like this, before they hit the blog