A practical guide to Claude Code model selection

Kenneth Pangan
Written by

Kenneth Pangan

Last edited September 9, 2026

Expert Verified
Illustration of a person tapping their wrist beside spokes labeled Opus, Sonnet, and Haiku, with an eesel symbol.

Start with the runtime, not a model nickname

Claude Code can authenticate through a Claude subscription, Anthropic Console, a supported cloud provider, or a gateway. Those paths do not necessarily expose the same models, model IDs, aliases, or defaults. The current model configuration guide is the source of truth for the runtime you use.

Current Claude model families include Fable 5.1, Opus 5, Sonnet 5, and Haiku 4.5. On Anthropic’s API pricing, their input/output prices per million tokens are respectively $10/$50, $5/$25, $2/$10, and $1/$5. Those API rates are not a promise about subscription limits or another provider’s bill. Treat them as one input to a decision, alongside the actual task and plan limits.

Aliases such as opus, sonnet, and haiku are convenient, but an alias can resolve differently as supported models change. For a one-off investigation, that may be fine. For a benchmark, CI workflow, or a bug report someone must reproduce, record the exact model ID, provider, prompt, source revision, permission mode, command output, and test result.

Default, saved default, and per-session override are different

Inside an interactive session, /model shows the available choices. Pressing Enter in the picker switches models and saves the choice as your user default; pressing s switches only for that session. Typing /model sonnet also saves the choice. /model default clears the override so the applicable account default can take effect.

Starting Claude with --model <model> or setting ANTHROPIC_MODEL chooses a model for that launch without saving a new default. The precedence is a session choice, the launch flag, ANTHROPIC_MODEL, the model setting, then ANTHROPIC_DEFAULT_MODEL. Managed or project settings can reapply on the next launch, and provider availability or administrator restrictions still apply.

For supported configurations, opusplan uses Opus in Plan mode and Sonnet for execution. This is a mixed-model workflow, so record both phases when comparing it with a single-model run. Subagents can also have their own model settings; the main session's selection does not prove every delegated task used that model.

Before comparing results, establish the baseline:

Bash
claude --model sonnet

Read the model shown in the session header or model picker, then record the provider and working directory in the benchmark notes. Do not write a report that only says “Sonnet” when an alias, provider mapping, or later configuration could explain a different result.

Match the model experiment to the job

Use a small model experiment when the work has a clear acceptance check. A useful comparison is not three vague requests for “better code.” It is the same repository revision, same prompt, same permitted tools, and same test.

For a fictional API client whose pagination loop repeats the last page, compare two sessions this way:

  1. Ask each session to identify the page-token termination condition without editing.
  2. Ask for the smallest proposed change and the test that would demonstrate it.
  3. Review the diffs for unrelated formatting or unnecessary changes to the client's request handling.
  4. Run the focused test for a final page, an empty final page, and a repeated cursor; check that a distinct next cursor is not discarded.

The result may show that a faster model handles the bounded fix well, or that the more capable model is worth using for a larger, uncertain migration. It does not prove either model is generally best. Keep the human review, branch protection, and deployment decision unchanged.

Model choice does not replace permissions or context

CLAUDE.md, skills, hooks, MCP servers, credentials, and permission mode also influence an outcome. Put test commands, architecture facts, and known boundaries in project context. Use a hook for a deterministic guard and scope connectors and credentials to the task. Do not rely on “draft only” in a prompt to prevent a write.

A stronger model can still misunderstand the active code path. A smaller model can still make an unsafe tool call when credentials permit it. Plan mode, a targeted diff, and a relevant test make those failures easier to catch.

Compare model explanations against the same eesel observations

There is a useful support-adjacent comparison that does not change an eesel teammate. Suppose an owner wants an engineering explanation for why a scheduled daily digest was delayed. The owner first authorizes a read-only observation of the named teammate and provides the same approved time window to each coding session. The model’s job is to summarize the evidence, distinguish what is known from what needs investigation, and draft questions for the owner. It must not retry the job, change instructions, or claim it changed the teammate’s model.

With Node.js 18.17 or newer, eesel CLI returns JSON for the same workspace and teammate shown in the dashboard. Login authenticates; it is not a read-only command. After the owner selects the target, the observation commands are read-only:

Bash
npx @eesel/cli login
npx @eesel/cli whoami
npx @eesel/cli agents
DIGEST_REVIEW_AGENT="REPLACE_WITH_OWNER_APPROVED_AGENT"
npx @eesel/cli status --agent "$DIGEST_REVIEW_AGENT"
npx @eesel/cli automations --agent "$DIGEST_REVIEW_AGENT"
npx @eesel/cli activity --agent "$DIGEST_REVIEW_AGENT"
npx @eesel/cli billing --agent "$DIGEST_REVIEW_AGENT"

The CLI documentation also documents EESEL_API_URL and EESEL_API_TOKEN for an authorized unattended runner; they take precedence over stored login credentials. Use whoami as a stop-check before collecting the snapshot, and set EESEL_AGENT_ID only when the owner has intentionally pinned that target.

After whoami confirms the expected workspace, save one frozen, redacted snapshot of the owner-approved command output. Give each Claude Code session that identical snapshot and the same prompt: “Explain the evidence for the delayed digest, list uncertainty, and propose the next owner question. Do not infer a run occurred when activity does not show it.” Missing activity is not proof that no run happened; it is a reason to check the relevant automation owner or system record. Compare whether the explanation cites a timestamp or automation state correctly, separates missing evidence from a failed event, and avoids invented causes. This is an analytical comparison, not a chat test and not proof of the real root cause.

eesel dashboard showing a support teammate setup checklist, response channels, and chat panel
eesel dashboard showing a support teammate setup checklist, response channels, and chat panel

The image illustrates the workspace that eesel CLI can inspect; it does not show the fictional delayed-digest comparison.

These eesel setup and observation commands do not consume billed chats. The Claude Code sessions analyzing their output still use the billing or subscription limits of your chosen provider.

Choose a coding model with an eesel CLI evidence review

Choose Claude Code models with a task and evidence in mind. Then use eesel CLI to provide the same owner-approved observations to each comparison, while leaving the support teammate configuration alone. Try eesel to evaluate a controlled, observable helpdesk workflow.

Frequently asked questions

Which Claude Code model is the default?

It depends on the runtime, account, and provider configuration. Check the current model in the session rather than assuming Sonnet is universal.

Does --model permanently change my Claude Code default?

No. The --model option selects a model for that launched session. Use /model to choose and save a default for future sessions where that setting applies.

What are Claude Code model aliases?

Aliases are convenient names such as opus, sonnet, and haiku. Their resolved model can change, so use an exact model ID when reproducibility matters.

Can I choose any model with every provider?

No. Available models and aliases vary by Claude subscription, Console, cloud provider, gateway, and configured runtime. Check the provider’s supported model list.

When should I compare two models?

Compare them when the task is important enough to justify the extra work: use the same bounded prompt, source context, and acceptance checks, then review the differences rather than trusting a score alone.

Does a stronger model remove the need for code review?

No. A model can propose or test a change, but a person still owns the diff, evidence, merge, deployment, and customer-facing implications.

Does choosing a Claude Code model change the eesel teammate?

No. It changes the model used by the coding session, not the selected eesel teammate. That session can use eesel CLI to inspect authorized workspace evidence and explain it. Configuration changes are a separate action requiring appropriate access and review.

Share this article

Kenneth Pangan

Article by

Kenneth Pangan

Writer and marketer for over ten years, Kenneth Pangan splits his time between history, politics, and art with plenty of interruptions from his dogs demanding attention.

Related Posts

All posts →
Illustration of a presenter pointing to a flip chart
Guides

Amazon Bedrock Claude Code: setup, model access, and limits

How to configure Claude Code through Amazon Bedrock, choose a current inference profile, manage IAM access, and validate the setup.

Kenneth PanganKenneth PanganSep 30, 2025
Serval AI pricing in 2026: How the pilot model works
Guides

Serval AI pricing in 2026: How the pilot model works

Serval doesn't publish per-seat or per-ticket pricing. Here's how the pilot model actually works, sourced from Serval's own pricing page, plus how it compares to public per-interaction pricing.

Alicia Kirana UtomoAlicia Kirana UtomoMay 2, 2026
Claude Code lettering beside an illustrated person holding a gear.
Guides

Claude AI Mac apps: what Claude Desktop and Claude Code can do (2026)

A practical guide to Claude Desktop on Mac, Quick Entry, Cowork, Claude Code permissions, and a safe eesel support handoff.

Stevia PutriStevia PutriJan 9, 2026
Illustration of a person using a phone beside Claude Code lettering and raised question-mark signs.
Guides

7 Claude Code best practices for reliable, reviewable work

Seven practical Claude Code habits for scoped changes, clear context, permission review, and meaningful tests, plus a safe handoff when a code finding changes support guidance.

Kenneth PanganKenneth PanganSep 8, 2025
Black-and-white illustration of a person using a laptop, with code on a screen
Guides

A developer's Claude Code CLI reference (2026 guide)

A practical guide to installing Claude Code, using project instructions and hooks, connecting MCP tools, and reviewing work before it changes a codebase.

Rama Adi NugrahaRama Adi NugrahaJun 5, 2026
Claude Code lettering beside a person and a gear illustration
Guides

Claude Code for Desktop: local, cloud, and permission choices

Use Claude Code for Desktop across local, cloud, and SSH sessions. Learn what each environment can access, how permissions differ, and how eesel CLI fits a scoped support review.

Kurnia Kharisma Agung SamiadjieKurnia Kharisma Agung SamiadjieJan 9, 2026
Illustration of a person using a long-handled net beside three small round characters
Guides

Claude Code JetBrains integration: setup, context, and review

Set up Claude Code in JetBrains, understand selection sharing, diagnostics, remote development, and safe review, then compare an approved source snippet with an eesel teammate.

Kenneth PanganKenneth PanganSep 9, 2025
Black-and-white illustration of a person holding two telephone receivers, surrounded by speech bubbles, arrows, and a dollar symbol.
Guides

Claude Code Opus: a developer guide to deep reasoning and review

Learn where Claude Code with Opus 5 helps on deep repository work, how provider and permission boundaries shape it, and how to keep its evidence reviewable.

Kenneth PanganKenneth PanganSep 9, 2025
A person holding a gear beside the words Claude Code on a peach background
Guides

Claude Code plugins: build and share reusable workflows in 2026

Learn what Claude Code plugins contain, when to use one instead of a project skill, how to test it locally, and how to connect a reviewed eesel CLI workflow.

Stevia PutriStevia PutriJan 9, 2026

Ready to hire your AI teammate?

Set up in minutes. No credit card required.

Get started free