Claude Code models: how to choose, switch, and govern them

Compare Claude Code models for daily coding, complex reasoning, long sessions, and simple tasks.

Scribble diagram showing a Claude Code model selection workflow: task, model, effort, run, review, and standardize.

Select a Claude Code model with evidence

Define the task, select a model and effort, run a representative job, review it, and standardize from evidence.

  1. Task
  2. Model
  3. Effort
  4. Run
  5. Review
  6. Standardize

Better Design

On this page

Direct answer

The term Claude Code models refers to the Claude model families and versions that power a Claude Code session. Start with default or sonnet for ordinary coding. Test opus for difficult reasoning, haiku for simple scoped work, and best or fable for the hardest long-running work when your account permits them.

Claude Code models quick guide

default
clears an override and uses the recommendation for your account or organization.
best
uses Fable 5 when available, otherwise the latest Opus model.
fable
intended for the hardest and longest-running tasks.
sonnet
the latest Sonnet model for daily coding work.
opus
the latest Opus model for complex reasoning.
haiku
a fast, efficient option for simple tasks.
sonnet[1m] or opus[1m]
extended-context aliases for supported long sessions.
opusplan
Opus while planning, then Sonnet during execution.

Alias targets differ by provider and update over time. The current official table should be the source of truth. Use a full model name only when reproducibility or provider deployment requires a pinned version.

Start from the task. Set a model and effort, run one representative job, measure the result, review the changes, and standardize from evidence.

Check the live Claude Code model-configuration page for aliases, provider mappings, effort, context, fallback, and restrictions.

Start with default or Sonnet

The default option follows the recommended model for the account type unless an organization default applies. Sonnet is the documented choice for daily coding tasks. Both reduce the need to maintain a version number in personal settings.

  • Routine feature implementation with clear acceptance criteria.
  • Bug fixes with a bounded cause and test path.
  • Repository exploration that does not need the deepest reasoning tier.
  • Refactoring with established patterns and verification.
  • Interactive work where latency and cost matter.

Use Opus for difficult reasoning

Anthropic positions Opus for complex reasoning and architectural decisions. It may fit ambiguous debugging, risky migrations, cross-system design, or a plan with many dependencies. Higher capability does not remove the need for evidence, approval, and tests.

Do not switch every task to Opus by default. Compare it with Sonnet on the same brief and repository state. Count accepted outcomes, review corrections, elapsed time, token cost, and defects found after the session.

Is Fable suitable for work larger than one sitting?

Current Claude Code documentation describes Fable 5 as the most capable option for long autonomous sessions and difficult investigation. It is not the default. Account access, Claude Code version, zero-data-retention settings, and safety routing can affect availability.

A suitable evaluation task might be a root-cause investigation, outage analysis, or large architecture decision with clear success criteria. Give the desired outcome, boundaries, approvals, and evidence required at completion.

Reserve Haiku for simple, scoped tasks

Haiku is the fast and efficient family alias. Suitable trials include classification, concise summaries, mechanical checks, and small subagent jobs. Test it before assigning tasks where subtle reasoning or broad repository context matters.

What does opusplan do?

The opusplan setting uses the Opus alias during Plan Mode and the Sonnet alias during execution. This separates complex planning from routine implementation without requiring a manual switch at the mode boundary.

The aliases still resolve through the active provider and organization policy. Verify the actual models with the model picker or status information. Treat the plan as a proposal and review the resulting changes.

How do you switch Claude Code models?

Run /model inside a session to open the picker or select a model by name. Start a new session with claude --model followed by an alias or full model name. The model setting can provide a saved default.

Current session
run /model and choose an available entry.
One launch
pass --model with an alias or recognized model name.
Saved configuration
set model in the appropriate settings scope.
Automation
pass a deliberate model through the supported CLI or SDK option.
Current selection
inspect /status or a configured status line.

The official CLI reference documents the --model flag and interactive session commands.

Understand model-setting precedence

A command-line flag or model environment override can supersede a saved setting for a launch. Managed settings and organization defaults can also shape the result. Organization allowlists or restrictions may hide, reject, or replace a requested model.

When the displayed model is unexpected, inspect the session status, launch arguments, relevant environment names, settings scopes, provider, account access, and organization policy. Do not print secret values while debugging configuration.

Review the current Claude Code settings reference for the model, availableModels, fallbackModel, and scope behavior.

Model and effort are separate choices

Effort controls how adaptive reasoning trades token spend against capability on supported models. The current guide lists low, medium, high, xhigh, max, and the session-only ultracode option. Availability and defaults depend on the model.

Low
short, scoped, latency-sensitive work that is not intelligence-sensitive.
Medium
cost-sensitive work that can trade some intelligence for lower usage.
High
the documented balance for most supported models.
Xhigh
deeper reasoning with higher token spend.
Max
demanding tasks where testing justifies possible extra reasoning and overthinking.
Ultracode
a session-only Claude Code workflow setting with xhigh per-message reasoning.

Change effort with /effort, the model picker, a launch flag, supported settings, or the documented environment control. An environment value has high precedence. Confirm the active level in the session header.

The same effort label does not represent the same underlying value across every model. Benchmark the complete model-and-effort pair. Higher effort can add time and tokens without improving a simple task.

Does the task need a 1M context option?

Extended context may help a long session that genuinely needs more material than the ordinary window. Extra material can also increase irrelevant context and review burden. Use explicit files, good session boundaries, and compaction instead of loading everything.

Support varies by account, model, Claude Code version, and provider. The [1m] suffix has provider-specific behavior, and some newer models have a native one-million-token window. Confirm the current picker and documentation before relying on it.

Control cost before changing the default

Model price is only one part of engineering cost. Measure input, output, thinking, tool use, repeated context, review time, rejected edits, and defects. Clear unrelated sessions and keep MCP or other tool overhead relevant to the task.

Anthropic's Claude Code cost guide recommends Sonnet for most work, Opus for complex reasoning, and Haiku for simple subagent tasks.

Pin a model version for reproducibility

Aliases are useful when the team wants Anthropic's current recommendation. Pin a full model identifier when a tested workflow, regulated process, provider rollout, or reproducible automation requires controlled change.

  • Record the provider and exact model identifier.
  • Test the replacement against a stable evaluation set.
  • Document pricing, context, effort, and tool assumptions.
  • Plan deprecation warnings and an upgrade owner.
  • Verify provider access before organization rollout.
  • Keep a fallback and rollback path where supported.

Third-party providers use their own identifiers and may expose different versions. The official guide advises pinning model versions for Bedrock, Google Cloud, Microsoft Foundry, and Claude Platform on AWS before broad rollout.

What can cause a model to change during work?

Configured fallback chains can respond to overload or unavailability. Safety routing can also move supported requests to another model or refuse them. Organization restrictions and provider availability may replace an initial selection.

Read the session notice before comparing results. A fallback means the original and final models may differ. Record that event in benchmarks and investigate policy or provider behavior before treating it as a quality change.

Run a useful Claude Code model benchmark

  1. Choose three representative tasks with fixed repository states.
  2. Write acceptance criteria and forbidden changes before each run.
  3. Keep tools, context, permissions, and prompts consistent across candidates.
  4. Record model, effort, provider, version, fallbacks, time, and usage.
  5. Review correctness, scope, tests, maintainability, and security blind spots.
  6. Repeat enough runs to avoid choosing from one lucky result.
  7. Adopt the smallest capable option and schedule a future review.

Use Better Design's AI guardrails to define model approval, change control, review, and escalation rules.

In summary

Use default or Sonnet for ordinary Claude Code work, then test stronger or faster families against a real need. Pair the model with an intentional effort level. Pin versions only when reproducibility outweighs automatic alias updates.

Frequently asked questions