---
title: "13 — Model Configuration — Picking the Right Brain for the Job"
uid: model-configuration
tags: ["effort", "opus", "roadmap:claude-code", "haiku", "opusplan", "sonnet", "models", "claude-code"]
excerpt: "Opus, Sonnet, Haiku sit on one reasoning-vs-speed curve — match the brain to the task, tune effort, and let planning use opusplan when it deserves more than execution."
date: 2026-08-13T03:28:20+0000
source: https://www.aveshina.my.id/en/blog/model-configuration
---

"Just pick the biggest" was my model-selection strategy, and it was wrong in three ways at once: slowest, priciest, and often unnecessary. The curve that replaced it: **the three Claude models sit on a single reasoning-versus-speed curve, and the job is to match the brain to the task — deep reasoning for hard architecture, balance for daily building, speed for mechanical work.** [1] "Biggest" is wrong because the biggest is also the slowest and the most expensive; it's the right choice for one kind of task and a costly waste for another.

The framing that clicked is to think of Opus, Sonnet, and Haiku as three points on the same tradeoff curve, not three unrelated products. As I move along the curve toward more reasoning, I give up speed and pay more. As I move toward speed, I give up depth and pay less. The configuration tools — /model, the --model flag, the model key in settings, the effort dial, and opusplan — are all mechanisms for picking the right point on that curve for the task at hand [1].

## The three models on the curve

The roadmap describes each model with a one-line role, and once I read them as positions on the curve they snapped into place [1]:

- **Opus** — the deep thinker. The most capable, used for complex reasoning, high-level system design, and surgical bug fixes in large codebases. Slowest and most expensive. The right pick when a wrong answer is expensive and the problem is genuinely hard.
- **Sonnet** — the balanced builder. Strikes a balance between reasoning and speed; handles multi-file refactoring and autonomous debugging while running faster and cheaper than Opus. The default for daily coding, and for good reason — most tasks are neither trivial nor research-grade.
- **Haiku** — the fast-response specialist. Fastest and cheapest, for near-instant execution of lightweight tasks: rapid UI prototypes, commit messages, or parallel subagents scanning logs and running quick checks [2]. The right pick when the answer is easy and I'm paying for throughput.

```figure
<svg viewBox="0 0 740 280" xmlns="http://www.w3.org/2000/svg" class="my-6 w-full max-w-2xl" role="img" aria-label="Three models on a reasoning-vs-speed curve. A curve from bottom-left (fast, cheap, shallow) to top-right (slow, pricey, deep). Haiku sits bottom-left: small, fast, cheap, for lightweight tasks. Sonnet sits in the middle: balanced. Opus sits top-right: large, deep reasoning, highest cost. A separate effort dial and an opusplan switch sit beside the curve.">
  <g font-family="ui-sans-serif, system-ui, sans-serif" text-rendering="geometricPrecision">
    <!-- axes -->
    <line x1="80" y1="240" x2="620" y2="240" stroke="#94a3b8" stroke-width="1.2"/>
    <line x1="80" y1="240" x2="80" y2="40" stroke="#94a3b8" stroke-width="1.2"/>
    <text x="350" y="265" font-size="10.5" fill="#64748b" text-anchor="middle">reasoning depth →</text>
    <text x="60" y="140" font-size="10.5" fill="#64748b" text-anchor="middle" transform="rotate(-90 60 140)">speed / cost →</text>

    <!-- curve -->
    <path d="M120,210 C250,200 360,120 560,60" fill="none" stroke="#6366f1" stroke-width="2"/>

    <!-- Haiku -->
    <circle cx="135" cy="208" r="14" fill="#dcfce7" stroke="#16a34a" stroke-width="2"/>
    <text x="135" y="212" font-size="10" font-weight="700" fill="#052e16" text-anchor="middle">H</text>
    <text x="135" y="232" font-size="9.5" font-weight="700" fill="#052e16" text-anchor="middle">Haiku</text>
    <text x="135" y="170" font-size="9" fill="#052e16" text-anchor="middle">fast · cheap</text>
    <text x="135" y="158" font-size="9" fill="#052e16" text-anchor="middle">lightweight tasks</text>

    <!-- Sonnet -->
    <circle cx="350" cy="135" r="16" fill="#e0e7ff" stroke="#6366f1" stroke-width="2"/>
    <text x="350" y="139" font-size="11" font-weight="700" fill="#1e1b4b" text-anchor="middle">S</text>
    <text x="350" y="115" font-size="9.5" font-weight="700" fill="#1e1b4b" text-anchor="middle">Sonnet</text>
    <text x="350" y="103" font-size="9" fill="#1e1b4b" text-anchor="middle">balanced · default</text>

    <!-- Opus -->
    <circle cx="540" cy="72" r="18" fill="#fce7f3" stroke="#db2777" stroke-width="2"/>
    <text x="540" y="76" font-size="11" font-weight="700" fill="#500724" text-anchor="middle">O</text>
    <text x="540" y="48" font-size="9.5" font-weight="700" fill="#500724" text-anchor="middle">Opus</text>
    <text x="540" y="36" font-size="9" fill="#500724" text-anchor="middle">deep · pricey</text>

    <!-- effort dial -->
    <rect x="600" y="150" width="120" height="80" rx="8" fill="#fef9c3" stroke="#ca8a04" stroke-width="1.5"/>
    <text x="660" y="170" font-size="11" font-weight="700" fill="#422006" text-anchor="middle">effort dial</text>
    <text x="660" y="188" font-size="9" fill="#422006" text-anchor="middle">low · medium · high</text>
    <text x="660" y="204" font-size="9" fill="#422006" text-anchor="middle">thinking time</text>
    <text x="660" y="220" font-size="8.5" font-style="italic" fill="#64748b" text-anchor="middle">tune within a model</text>
  </g>
</svg>
```

## The configuration hierarchy

The roadmap describes a layered configuration system, and reading it as "most specific wins" made it click [1]:

- **/model** — switch the model instantly during a session. The override for "this task needs a different brain."
- **--model flag** — specify the model at launch. The override for "this whole session is one kind of work."
- **model key in ~/.claude/settings.json** — the permanent default. The right place for the model I want on every session unless I say otherwise.

Semantic aliases (sonnet, haiku, opus) make these readable. Sonnet is the documented default for daily coding, which matches what I reach for — most work is in the balanced middle of the curve.

## Effort: tuning within a model

A separate axis from _which_ model is _how hard_ the model tries. The roadmap calls it **effort** — a parameter (low, medium, high) available through /model that controls how much thinking time the model allocates to solving a problem versus generating a rapid response [3].

Effort composes with the model choice, and the combination is the real lever. A low-effort Haiku for "draft a commit message" is cheap and fast. A high-effort Opus for "design the auth architecture" is slow and expensive but right. The mistake is leaving effort pinned high always — the thinking tokens cost money on API billing, so dialing effort down for mechanical work is a real saving, not a nicety.

## opusplan: plan deep, build balanced

The cleverest configuration in the roadmap is **opusplan**, and it deserves its own moment. When I start a session with claude opusplan, the tool uses Opus to analyze the request, explore the codebase, and draft a comprehensive technical strategy — getting the hard architectural decisions right — and then automatically switches to Sonnet for the actual code implementation [4]. The point is that planning and execution sit at different points on the curve, and most tasks benefit from deep reasoning on the _plan_ and balanced speed on the _build_.

The way of thinking: opusplan automates the habit I described in the workflow post (don't collapse explore+plan into implement) and assigns the best brain to each phase. It's the right default for non-trivial features where the architecture matters more than the typing speed — Opus nails the strategy, Sonnet efficiently executes it, and I get depth where it counts without paying Opus prices for every edit.

## How I use this

The habit these notes left me with is a two-axis match before any non-trivial session. First, _which model_: Haiku for throwaway drafts and parallel log-scanning subagents, Sonnet for daily building, Opus reserved for genuinely hard reasoning. Second, _what effort_: low for mechanical work, high for architectural puzzles, and I dial it down whenever I notice I'm paying for thinking on a task that doesn't need it. For features where the plan matters more than the typing, opusplan is the default — deep strategy, balanced execution. The throughline: the biggest model is a tool, not a setting; matching the brain (and the effort) to the task is the whole craft.

## References

[1] Anthropic, "Model configuration," Claude Code Docs, 2025. [Online]. Available: [https://code.claude.com/docs/en/model-config#model-configuration](https://code.claude.com/docs/en/model-config#model-configuration)

[2] Anthropic, "Models," Claude Code Docs, 2025. [Online]. Available: [https://code.claude.com/docs/en/how-claude-code-works#models](https://code.claude.com/docs/en/how-claude-code-works#models)

[3] Anthropic, "Adjust effort level," Claude Code Docs, 2025. [Online]. Available: [https://code.claude.com/docs/en/model-config#adjust-ef](https://code.claude.com/docs/en/model-config#adjust-ef)

[4] Anthropic, "opusplan model setting," Claude Code Docs, 2025. [Online]. Available: [https://code.claude.com/docs/en/model-config#opusplan-model-setting](https://code.claude.com/docs/en/model-config#opusplan-model-setting)

```quiz
Q: How are Opus, Sonnet, and Haiku best understood?
- As three unrelated products for different industries
- As three points on a single reasoning-vs-speed curve
correct: 1
explain: All three sit on the same tradeoff curve. Toward Opus = more reasoning, slower, pricier. Toward Haiku = faster, cheaper, shallower. The job is matching the point to the task.

Q: Which model is the documented default for daily coding, and why?
- Opus, because it is the most capable
- Sonnet, because it balances reasoning and speed for typical multi-file work
correct: 1
explain: Sonnet is the default. Most tasks are neither trivial nor research-grade, so the balanced middle of the curve fits. Opus is reserved for genuinely hard reasoning.

Q: What does the effort parameter control?
- Which model is selected
- How much thinking time the model allocates (low/medium/high) within a model
correct: 1
explain: Effort is a separate axis from model choice. It tunes thinking tokens, which also affect API cost. Dial it down for mechanical work, up for hard problems.

Q: What does `claude opusplan` do?
- Uses Opus for the entire session
- Uses Opus to plan (explore + strategize), then switches to Sonnet for implementation
correct: 1
explain: opusplan assigns the best brain to each phase: deep reasoning for the plan, balanced speed for the build. It automates "don't collapse explore+plan into implement."

Q: You need to draft commit messages and scan logs across 50 files. Best model choice?
- Opus, for accuracy
- Haiku, for near-instant lightweight work (and it's ideal as a parallel subagent)
correct: 1
explain: These are lightweight, high-volume tasks where the answer is easy and throughput matters. Haiku is the fast-response specialist — cheap and quick, and well-suited to parallel subagents.
```
