Four names in the model picker and no hint about which one to take. The first instinct is usually the same: I’m paying, so I’ll have the strongest. Understandable, right in a few situations, but not always.
Look at this less as a ranking and more as four different working speeds. Below: what each model actually does and when picking it makes sense, what jumping between them costs, and the two settings available with each that change more than you’d expect.
The strongest model doesn’t always win
In workshops we reach for a jet analogy here: having access to one doesn’t mean it gets you to the corner shop faster than a bicycle. It gets you there slower, more expensively, and with a great deal more to operate along the way.
Models work much the same. Each of the four has its own speed and its own kind of task, and the list in the picker is not a ranking from worst to best.
Throughout this guide we use the family names – Haiku, Sonnet, Opus, Fable – because the specific versions change several times a year while the rules for choosing between them stay put. In Claude Code you only get the newest version of each model anyway; in claude.ai and the desktop app the list tends to be longer, with older versions to pick from.
Haiku – short questions through the day
Haiku is the fastest of the four and spends the fewest tokens. It suits single questions you want answered immediately: how do I phrase this in English? what does this message mean? what’s the difference between these two? In that role it makes a fine replacement for a search engine, except that instead of a list of pages you get the answer itself.
Haiku isn’t built for complex tasks, and that’s its main limitation. It loses the thread, simplifies things it shouldn’t, and over a longer stretch of work it runs out of context window – it’s the only one of the four without a million-token window, holding two hundred thousand, roughly a fifth of what the others have.
Anthropic describes Haiku as the fastest model for quick answers, rather than one for work where Claude Code runs on its own across many steps. For that kind of work there are Opus and Fable.
Sonnet – the everyday working model
Sonnet is the model that fits everyday work best, and on the Pro plan it’s the one you start on by default. If you don’t know which model to use, take Sonnet.
It’s built for tasks that are complex but singular. Analysing one large spreadsheet or comparing a few smaller ones, writing a single function, building a small website. Writing the code for an entire service – rather less so.
Think of it as a junior colleague: plenty of enthusiasm and textbook knowledge, without the experience and the planning instinct that Opus has. Give it a task stated plainly and it delivers; the more there is to decide along the way, the more often it drifts.
So what tells you Sonnet isn’t enough? You ask for the same thing again, you fix the same passage over and over, and the result still isn’t what you meant. The tenth round of small edits on one email template looks harmless, and it’s exactly the moment: instead of asking an eleventh time, move to Opus.
Opus – when a task holds many conditions at once
A completely different situation: dozens of files to work through, a change to plan because it touches several places at once, or a complex project to build end to end. Opus earns its place precisely where the conditions pile up to the point of having to be held all at once. That’s its advantage over Sonnet: it plans first and works second, and it keeps track of what was settled along the way.
It’s also the model you reach for when Sonnet doesn’t deliver – the situation above, on the third or tenth round of fixing the same thing.
If you’re on the Max plan, Opus is your default – though for the first few weeks we’d suggest using Sonnet instead, since tasks like the ones above tend to be rare early on. Exactly as we described it in the post on choosing a plan.
Fable – work larger than a single sitting
Fable is the most capable model in Claude Code and the only one built for work that runs for hours without you – migrating a whole site, going through several hundred files, a project spread across stages. Before it changes anything it looks over the material it’s working with, and when it’s done it comes back to its own output to verify it, rather than handing over a first draft and calling the task closed.
It isn’t the default on any account – you select it with /model fable. It’s also billed differently from the other three, so check this before you switch it on: on the Max plan it fits inside your plan’s limit, while on Pro it runs on usage credits, outside the limit and at extra cost.
Thinking mode and effort are two different things
Next to the model itself sit two settings that get confused more than anything else, so it’s worth separating them with an image. In thinking mode the model sort of writes the problem out on a scratchpad before answering, instead of firing off a result straight away. Effort is how long that scratchpad is allowed to fill up.
The effort levels are low, medium, high, xhigh and max. Day to day, leaving the default alone works best – Anthropic picks it to suit most tasks. You change it with /effort, which opens a slider when given no argument, while /effort auto returns to the model’s own default.
Let’s try a simple experiment. Say hello to the model on low and it answers at once, with no deliberation. Say hello on high and it starts weighing whether your greeting has a second meaning and whether the right answer is “good morning” or “hey”. The same message, two completely different amounts of work – and in the second case all of it went nowhere, because an answer to “hello” was needed straight away and without thought.
A higher level, then, means longer thinking – not necessarily a better answer. On a simple question that’s time and tokens spent for nothing, while on a hard task a low level gives you a shallower answer than you need – which is why effort gets matched to the difficulty of the question rather than set to the maximum once and for all.
Thinking mode itself toggles for the current session with Alt+T on Windows and Linux or Option+T on macOS, and permanently in /config. And when you want deeper deliberation on one question only, put the word ultrathink in your prompt. Claude Code picks up that exact word and asks the model to think longer on that turn, without touching the setting for the whole session. There’s no separate charge for it, though longer thinking does mean more tokens, so it still shows up in your usage. Only that specific word is recognised – phrases like “think hard about this” pass through as ordinary text, however emphatic they sound.
One last thing that’s easy to forget: the effort scale is calibrated per model. high on Haiku and high on Opus aren’t the same amount of thinking, just the same position on two different sliders. After switching models, it’s worth checking whether the level still fits the task.
Where the difference in spend comes from
A stronger model costs more. That’s only part of the story, though. The more interesting part: stronger models think more before they answer, and thinking spends tokens exactly like the answer does. That’s why simply moving down to a lighter model can shift your spend more than a comparison of rates would suggest. The same mechanism applies to effort: the higher the level, the longer the model thinks and the more tokens it spends.
There’s one more thing in this arithmetic that the per-token rates don’t show. Sonnet is cheaper than Opus on a single request, but it sometimes needs several attempts to land on what you meant. Opus occasionally gets the same thing right the first time. Three attempts on the cheaper model can end up costing more than one on the more expensive one.
Switching models, for a moment and for good
Mid-session: type /model on its own to open the picker, or go straight to /model haiku, /model sonnet, /model opus, /model fable.
Worth remembering: a choice made in /model saves as the default for new sessions, not just for the current one.
When you want a change for one session only, launch Claude Code with the flag – claude --model haiku. The flag applies to that one session and saves nothing permanently.
One more alias worth knowing is opusplan. It plans on Opus and executes on Sonnet – the stronger model where the decisions get made, the cheaper one where the work happens. Planning here is a separate mode in Claude Code: you get a plan to approve first, and only then does the tool start doing.
Switching models isn’t free
The model you’re working with remembers the conversation you’re in. Switch to another one and the new model has to read the whole conversation from the start to know what this is about – and you pay for that reading in tokens, the same as for any other text. You’ll see it as one noticeably slower answer right after the change.
Put another way, the price of switching grows with the length of the session. Three minutes into a conversation it’s imperceptible. Four hours into one project it’s the most expensive request you’ll send that day – hence the simple rule that the model is best chosen at the start of a session.
The same thing happens with opusplan on every entry into plan mode and every exit from it, since moving between Opus and Sonnet is a model switch too. With one plan per session there’s nothing to discuss; with hopping back and forth it turns into a standing cost.
Changing the effort level mid-conversation counts the same way: each level has its own cache, so the first request after the change also reads the conversation from the start. That’s why Claude Code shows a confirmation dialog for it once a conversation is under way.
If you want to keep the token cost of switching down, run /compact before you change models. Claude Code condenses the whole conversation, so the new model has far less material to get through before it starts working. You can also simply open a new chat, if the next task doesn’t need what came before.
When it’s worth changing model
Beyond the situation described in the Sonnet section, where the model simply isn’t delivering, there are three moments when the cost pays for itself.
Few tokens left and a long wait until the limit resets. Drop down to Haiku and use it for the simple, repetitive things, instead of parking the work until tomorrow.
Plenty of tokens left and the limit resets in half an hour. The rest will expire anyway, so take Opus and give it the hardest task on your list. Even if it uses everything that’s left, the limit comes back shortly. The same holds on a weekly scale: in the last session before your weekly limit resets, you can safely spend what remains of it. How much is left and when it resets is what /usage tells you – we covered that command under the second pattern in the post on plans.
The work is done and needs checking. You write on Sonnet, then hand the result to Opus for review – ideally in a new session, because a model that has just written something makes a poor reviewer of that same text. A fresh session carries none of the conversation where those decisions were made, so Opus gets the output and your question, and judges what it sees rather than anyone’s earlier reasoning. We work this way ourselves on longer texts and on changes that touch several files at once.
In short
If we had to compress all of this into one piece of advice: start on Sonnet and don’t give the rest of it a thought until something feels off. For short questions during the day take Haiku – you’ll notice the difference in pace immediately. And when you’re asking for the same thing a third time and the result still misses what you meant, it doesn’t mean you’re asking badly: just move to Opus. Keep Fable for the day you hand over something meant to run for hours without you.
And two things we had to learn to remember ourselves. Choose your model at the start of a session, because changing it midway costs tokens. And match the effort level to how hard the question is, instead of pinning it at the maximum – settings aren’t about squeezing everything out of the tool, they’re about fitting what you happen to be doing.