Skip to main content

Model Selection

Claude automatically selects the appropriate model based on task complexity.

Model Overview

ModelSpeedCostBest For
HaikuFastestLowestSimple tasks
SonnetFastBalancedDaily development
OpusSlowerHighestComplex reasoning

Automatic Selection

Opus (Complex Tasks)

Claude switches to Opus for:

  • Designing new system architecture
  • Complex database schema design
  • Difficult debugging (multi-file, unclear cause)
  • Major refactoring decisions
  • Performance optimization strategies
  • Security-sensitive implementations
  • Evaluating multiple approaches

Example:

You: Help me redesign the workout session data model
Claude: [Uses Opus for deep architectural reasoning]

Sonnet (Daily Work)

Claude uses Sonnet for:

  • Feature implementation
  • Standard debugging
  • Code reviews
  • Writing tests
  • Documentation
  • Most agent tasks

Example:

You: Add a rest timer to the workout page
Claude: [Uses Sonnet for efficient implementation]

Haiku (Quick Tasks)

Claude uses Haiku for:

  • Quick questions about syntax
  • Simple file lookups
  • Formatting tasks
  • Basic explanations

Example:

You: What's the syntax for a Drizzle join?
Claude: [Uses Haiku for quick response]

Manual Override

Force a specific model when needed:

You: Use opus - help me debug this authentication issue
You: Use haiku - what's the path to the workout page?

Project Default

The default model is set in .claude/settings.json:

{
"model": "sonnet"
}

Override locally in .claude/settings.local.json (gitignored).