Pick the right model and effort for each task
Choose between Opus, Sonnet, Haiku and Fable, set the effort level, and use ultrathink for one hard turn without wasting cache.
Claude Code gives you two dials: which model answers, and how much effort it puts into each step. Most people only touch the first, and they touch it too often. This guide is for anyone who wants better answers without a bigger bill. At the end you will know which model to start on, when to move effort up or down, and how to get one deep answer without changing anything else.
What you will have at the end
- A default you can leave alone for most work
- A simple rule for when to raise or lower effort
- The
ultrathinkkeyword for one hard question in the middle of routine work - Knowledge of when Fable is worth selecting
- A habit that keeps your prompt cache warm
Before you start
- Claude Code installed and signed in. See Start here.
- Claude Code v2.1.311 or newer if you want
ultrathinkto raise a turn's effort (model config). Runclaude updateif you are behind.
Step 1: Know the default
Run:
/modelThe picker shows your models and an effort slider. On Pro, Max, Ultra, Team, Enterprise and the Anthropic API, the default is Opus 5.5 (default model). Opus 5.5, Sonnet 5.5 and Haiku 5.5 start at medium effort (effort).
That default is a good place to stay. The model config page notes that in Anthropic's testing, Opus 5.5 at medium matches or beats Opus 5 at high on coding and knowledge-work evaluations. If you are coming from Opus 5, do not carry your old effort level over.
Step 2: Learn the aliases
You rarely need full model IDs. These aliases always point at the current version for your provider (aliases):
| Alias | Use it for |
|---|---|
opus |
Complex reasoning, the everyday default |
sonnet |
Daily coding at a lower price |
haiku |
Simple, fast jobs, often in subagents |
fable |
Your hardest and longest-running tasks |
opusplan |
Opus while in plan mode, then Sonnet for execution |
On the Anthropic API, opus, sonnet and haiku resolve to Opus 5.5, Sonnet 5.5 and Haiku 5.5. Some cloud providers resolve them to older versions, so check the table on the docs page if you use Bedrock, Agent Platform or Foundry.
Switch in a session with /model sonnet, or for one launch with:
claude --model opusNote that /model <name> also saves the choice as your default for new sessions. To switch for this session only, open the picker with /model and press s on the row (setting your model).
Step 3: Turn effort, not models
Effort controls how much Claude reasons on each step. The levels on current models are low, medium, high, xhigh and max (effort). Change it with:
/effort highHere is when to move it, following the best practices page:
- Raise to
highorxhighwhen correctness depends on easy-to-miss cases: a bug in code you did not write, a flaky test, a schema change where every reader of the old shape must be found. - Lower to
lowfor quick back and forth where you review each result anyway: brainstorming, a first sketch, a rename across a few files. - Save
maxfor hard problems you want Claude to work through alone, such as hunting for a security hole. On ordinary work it tends to overthink.
max applies to the current session only unless you set it through an environment variable. /effort auto clears your saved level for the active model.
Why prefer effort over switching models mid-task? Each model has its own prompt cache, so a model switch makes the next request reprocess the whole conversation. On Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable 5.1 with an API key or a Claude subscription, changing effort keeps the cache (prompt caching). The docs advise picking your model and effort at the top of a session and changing as little as possible mid-task.
Step 4: Use ultrathink for one turn
When only the next message needs deep thought, put the word in your prompt:
ultrathink why does this cache key collide only under load?ultrathink asks for deeper reasoning on that turn without changing your session setting. Typed in the terminal, it can also raise that turn to xhigh, and the word shows in rainbow colours when it does (ultrathink). Phrases like "think hard" or "think more" are not keywords. They are passed through as ordinary text.
Step 5: Select Fable for the biggest jobs
Fable 5.1 is not the default on any plan. You select it explicitly:
/model fableThe docs describe Fable as suited to tasks larger than a single sitting. It investigates before acting and checks its own work more often than smaller models (work with Fable). Hand it outcomes, not steps, and give it ambiguous problems like root-cause investigations or architecture decisions.
On some plans Fable bills to usage credits instead of your included limits. The /model picker shows "Requires usage credits" on the Fable row when that applies (Fable and usage credits).
Current numbers
API prices per million tokens, input / output, from the pricing page. Checked 2026-11-06.
| Model | Input | Output |
|---|---|---|
| Fable 5.1 | $10 | $50 |
| Opus 5.5 | $4 | $20 |
| Sonnet 5.5 | $2 | $10 |
| Haiku 5.5, prompts up to 100K tokens | $0.10 | $0.50 |
| Haiku 5.5, prompts over 100K tokens | $0.50 | $2.50 |
On a subscription you pay your plan price instead, and usage counts against your plan limits. Run /usage to see session cost and plan usage.
Check it worked
- Run
/effort status. It prints the level your session is using (send no effort level). - After
/effort high, the session header shows the new level, and the footer briefly shows it too. - Type
ultrathinkin a prompt and confirm the word turns rainbow before you send it.
Common problems
A new session starts on a different model than you picked. You may have chosen it for one session only, or a project setting, managed setting or ANTHROPIC_MODEL outranks your choice. The startup header names the settings file when one sets the model (troubleshooting).
ultrathink is not rainbow. Retype it outside quotes, paths or commands, in a prompt that does not start with /. Also check that CLAUDE_CODE_EFFORT_LEVEL is not set below xhigh, and that you are on Opus 5.5, Sonnet 5.5, Haiku 5.5 or Fable 5.1 (ultrathink).
Your effort change seems to do nothing. The new level applies from your next message. If CLAUDE_CODE_EFFORT_LEVEL is set, it wins over /effort (effort).
Subagents suddenly cost more. Subagents that inherit the main model follow your /model switch. To keep one on a smaller model, set model in its definition (setting your model).
Next
- Spend less without getting worse results: more ways to cut tokens with caching and compaction.
- The token budget masterclass: the paid guide with a settings and hook pack for tracking cost.
Sources
- https://code.claude.com/docs/en/model-config
- https://code.claude.com/docs/en/best-practices
- https://code.claude.com/docs/en/prompt-caching
- https://code.claude.com/docs/en/commands
- https://platform.claude.com/docs/en/about-claude/pricing
Last checked: 2026-11-06