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).