Not every task needs the frontier model. A frontier model is the most advanced, capable model available at any given time — right now, that's Opus 4.8 (and, for the hardest and longest work, Fable 5). It's tempting to use it for everything: if you have access to the best, why settle for less?. But doing so wastes tokens, wait time, and resources. Most daily development tasks don't require deep reasoning.
Claude Code already applies this logic internally. Its Explore agent runs on Haiku for fast codebase searches. The opusplan alias automates the full strategy: Opus reasons through planning, Sonnet handles execution.
TL;DR Use
opusplanto plan with Opus and execute with Sonnet. Switch to Haiku for quick exploration. Don't use the frontier model for everything — allocate power where it actually matters.
Result:
> /model
default
● opusplan ← Plan: Opus 4.8 · Execution: Sonnet 5
opus
sonnet
haiku
The strategy: plan, execute, explore
1. Plan with the frontier model
Deep reasoning is only justified when designing architecture, evaluating trade-offs, or making decisions that affect the entire project. This is where Opus makes the difference.
claude --model opus
# Or switch mid-session:
/model opus
2. Execute with Sonnet
Writing functions, tests, refactoring — doesn't need the same level of reasoning. Today's sonnet is Sonnet 5: intelligence close to Opus 4.8 at lower cost and higher speed.
/model sonnet
3. Explore with Haiku
Codebase searches, file reads, structure analysis. Read-only tasks where speed matters more than depth.
/model haiku
4. The shortcut: opusplan
If you don't want to switch manually, opusplan automates the strategy:
claude --model opusplan
# Or during a session:
/model opusplan
Opus activates during plan mode. When Claude transitions to execution, it switches to Sonnet automatically. This is exactly what Claude Code's native agents do — each task gets the right model for the job.
Reference
| Model | Alias | Relative cost | Best for |
|---|---|---|---|
| Opus 4.8 | opus |
$$$ | Architecture, complex debugging, design decisions |
| Sonnet 5 | sonnet |
$$ | Daily development, implementation, tests |
| Haiku 4.5 | haiku |
$ | Exploration, searches, simple tasks |
| Opus → Sonnet | opusplan |
Mixed | Full workflow: plan + execute |
Permanent configuration
Add the model to your settings.json so you don't have to choose every session:
{
"model": "opusplan"
}
Or via environment variable:
export ANTHROPIC_MODEL=opusplan
You can also set it from the picker: since v2.1.153, Enter in /model saves it as your default and s keeps it to that session only. If your model sticks or resets when you didn't mean to, that's why.
If you want to further fine-tune Opus's reasoning during the planning phase, combine this strategy with Claude Code effort level adjustment: lower the effort for quick decisions and reserve high for architectural ones.
And there's a third option besides opusplan: the /advisor toggle. Unlike opusplan (Opus only in plan, Sonnet in execution), /advisor keeps Opus available during execution for on-demand consultations when Sonnet stalls — Anthropic measured −11.9% cost and +2.7% accuracy with that pattern.
Official docs: Model configuration
Part of the 10 habits to save tokens in Claude Code.
And if the model you picked is overloaded (529) or down? Give it a plan B: a
fallbackModelchain degrades to the next one instead of killing your session.