Model Selection and Effort Levels
- Match Claude models to task complexity: when Sonnet is enough, when Opus earns its cost, and when Haiku is the right tool for subagents
- Use /effort to adjust extended thinking token spend without switching models
- Explain why switching models mid-task to save tokens can backfire and when it is safe to do so
Model Choice Is the Biggest Per-Turn Cost Variable
After context size, model selection is the largest driver of per-turn cost. Opus is significantly more expensive than Sonnet, and Sonnet more expensive than Haiku. But cost and capability are not the same dimension — the goal is not the cheapest model, it is the right model for the job. Paying for Opus on a task Sonnet handles easily wastes money. Using Sonnet on a task that requires Opus-level reasoning wastes time and may require re-runs.
The Model Hierarchy in Practice
Fast, cheap, best for simple subagent tasks. Use for: routine file lookups, formatting tasks, summarization where depth is not required, background jobs that fire repeatedly. Set per subagent: model: haiku in the subagent configuration.
The default and best general-purpose choice. Handles most coding tasks well. Use for: the majority of development work, debugging, code generation, standard refactors. This is the right starting point — only upgrade when Sonnet falls short.
Reserve for complex architectural decisions, multi-step reasoning across a large codebase, situations where Sonnet has already failed and you know the task is genuinely hard. The cost premium is only justified when the capability difference matters.
Switching Models: /model
Run /model to see your current model and switch to another mid-session, or set a default in /config. But be careful with mid-task switches:
- A model switch invalidates the prompt cache — the new model re-processes the full context at full price on the next turn
- If you switch to Opus for one hard task and forget to switch back, you pay Opus prices for all subsequent simpler work
- Different models have different behavior on the same prompt; switching mid-task can introduce inconsistency in style, approach, and decisions
The safer pattern: use /clear to start a new session if you genuinely need a different model for the next phase of work, rather than switching mid-session.
Effort Levels: /effort
Extended thinking is enabled by default because it significantly improves performance on complex planning and reasoning tasks. But thinking tokens are billed as output tokens at the full output rate — the default thinking budget can be tens of thousands of tokens per request on models that support it.
Use /effort to adjust the thinking budget without switching models:
/effort low: minimal thinking, fastest and cheapest responses. Good for routine edits and straightforward code generation./effort medium: balanced thinking, the practical default for most work./effort high: maximum thinking, appropriate for architectural decisions or tasks where deep reasoning matters.
You can also adjust this in /model or disable thinking entirely in /config. On models with a fixed thinking budget, set MAX_THINKING_TOKENS as an environment variable (e.g. MAX_THINKING_TOKENS=8000) to cap it. Adaptive-reasoning models ignore fixed budgets — use /effort there.
Fast Mode
Fast mode uses Claude Opus with optimized output for faster responses. It draws from usage credits separately from the standard seat allowance. Check /usage to see fast mode spend. Toggle it with /fast. It is useful for sessions where response latency matters more than cost efficiency — not the default for cost-conscious work.
The Right Default
Sonnet at medium effort is the right default for most Claude Code work. Start there. Upgrade to Opus or higher effort only when you have a specific reason — Sonnet gave a shallow answer to a hard architectural question, or you are about to make a high-stakes decision across a complex codebase. Then return to Sonnet for the implementation that follows.
- Sonnet at medium effort is the right default for almost all Claude Code work — upgrade to Opus only when Sonnet has demonstrably fallen short on a specific complex task.
- Switching models mid-session invalidates the prompt cache and re-processes the full context at full price; use /clear and start a new session instead of switching models in-place.
- Extended thinking tokens are billed as output tokens at full output rate — the default budget can be tens of thousands per request; /effort low cuts this cost for tasks that don't need deep reasoning.
- Use Haiku for subagent tasks that fire repeatedly or handle routine operations; the capability gap is acceptable for lookups and summaries and the cost difference is significant.
- Fast mode draws from usage credits separately and is for speed-sensitive work, not cost-sensitive work — know which you are optimizing before enabling it.