Model configuration
Learn about the Claude Code model configuration, including model aliases like
opusplan
Available models
For the model setting in Claude Code, you can configure either:
- A model alias
- A model name
- Anthropic API: A full model name
- Bedrock: an inference profile ARN
- Foundry: a deployment name
- Vertex: a version name
Model aliases
Model aliases provide a convenient way to select model settings without remembering exact version numbers:
| Model alias | Behavior |
|---|---|
default |
Recommended model setting, depending on your account type |
sonnet |
Uses the latest Sonnet model (currently Sonnet 4.5) for daily coding tasks |
opus |
Uses the latest Opus model (currently Opus 4.6) for complex reasoning tasks |
haiku |
Uses the fast and efficient Haiku model for simple tasks |
sonnet[1m] |
Uses Sonnet with a 1 million token context window for long sessions |
opusplan |
Special mode that uses opus during plan mode, then switches to sonnet for execution |
Aliases always point to the latest version. To pin to a specific version, use the full model name (for example, claude-opus-4-6) or set the corresponding environment variable like ANTHROPIC_DEFAULT_OPUS_MODEL.
Setting your model
You can configure your model in several ways, listed in order of priority:
- During session - Use
/model <alias|name>to switch models mid-session - At startup - Launch with
claude --model <alias|name> - Environment variable - Set
ANTHROPIC_MODEL=<alias|name> - Settings - Configure permanently in your settings file using the
modelfield.
Example usage:
# Start with Opus
claude --model opus
# Switch to Sonnet during session
/model sonnet
Example settings file:
{
"permissions": {
...
},
"model": "opus"
}
Restrict model selection
Enterprise administrators can use availableModels in managed or policy settings to restrict which models users can select.
When availableModels is set, users cannot switch to models not in the list via /model, --model flag, Config tool, or ANTHROPIC_MODEL environment variable.
{
"availableModels": ["sonnet", "haiku"]
}
Default model behavior
The Default option in the model picker is not affected by availableModels. It always remains available and represents the system's runtime default based on the user's subscription tier:
| User type | Default model |
|---|---|
| Max, Team, or Pro subscribers | Opus 4.6 |
| Pay-as-you-go (API) users | Sonnet 4.5 |
Even with availableModels: [], users can still use Claude Code with the Default model for their tier.
Control the model users run on
To fully control the model experience, use availableModels together with the model setting:
- availableModels: restricts what users can switch to
- model: sets the explicit model override, taking precedence over the Default
This example ensures all users run Sonnet 4.5 and can only choose between Sonnet and Haiku:
{
"model": "sonnet",
"availableModels": ["sonnet", "haiku"]
}
Merge behavior
When availableModels is set at multiple levels, such as user settings and project settings, arrays are merged and deduplicated. To enforce a strict allowlist, set availableModels in managed or policy settings which take highest priority.
Special model behavior
default model setting
The behavior of default depends on your account type:
- Max and Teams: defaults to Opus 4.6
- Pro: defaults to Opus 4.6 in Claude Code
- Enterprise: Opus 4.6 is available but not the default
Claude Code may automatically fall back to Sonnet if you hit a usage threshold with Opus.
opusplan model setting
The opusplan model alias provides an automated hybrid approach:
- In plan mode - Uses
opusfor complex reasoning and architecture decisions - In execution mode - Automatically switches to
sonnetfor code generation and implementation
This gives you the best of both worlds: Opus's superior reasoning for planning, and Sonnet's efficiency for execution.
Adjust effort level
Effort levels control Opus 4.6's adaptive reasoning, which dynamically allocates thinking based on task complexity. Lower effort is faster and cheaper for straightforward tasks, while higher effort provides deeper reasoning for complex problems.
Three levels are available: low, medium, and high (default).
Setting effort:
- In
/model: use left/right arrow keys to adjust the effort slider when selecting a model - Environment variable: set
CLAUDE_CODE_EFFORT_LEVEL=low|medium|high - Settings: set
effortLevelin your settings file
Effort is currently supported on Opus 4.6. The effort slider appears in /model when a supported model is selected.
Extended context with [1m]
The [1m] suffix enables a 1 million token context window for long sessions.
For Opus 4.6, the 1M context window is available for API and Claude Code pay-as-you-go users. Pro, Max, Teams, and Enterprise subscription users do not have access to Opus 4.6 1M context at launch.
You can use the [1m] suffix with model aliases or full model names:
# Use the sonnet[1m] alias
/model sonnet[1m]
# Or append [1m] to a full model name
/model claude-sonnet-4-5-20250929[1m]
Note: Extended context models have different pricing.
Checking your current model
You can see which model you're currently using in several ways:
- In status line (if configured)
- In
/status, which also displays your account information.
Environment variables
You can use the following environment variables, which must be full model names (or equivalent for your API provider), to control the model names that the aliases map to.
| Environment variable | Description |
|---|---|
ANTHROPIC_DEFAULT_OPUS_MODEL |
The model to use for opus, or for opusplan when Plan Mode is active. |
ANTHROPIC_DEFAULT_SONNET_MODEL |
The model to use for sonnet, or for opusplan when Plan Mode is not active. |
ANTHROPIC_DEFAULT_HAIKU_MODEL |
The model to use for haiku, or background functionality |
CLAUDE_CODE_SUBAGENT_MODEL |
The model to use for subagents |
Note: ANTHROPIC_SMALL_FAST_MODEL is deprecated in favor of
ANTHROPIC_DEFAULT_HAIKU_MODEL.
Prompt caching configuration
Claude Code automatically uses prompt caching to optimize performance and reduce costs. You can disable prompt caching globally or for specific model tiers:
| Environment variable | Description |
|---|---|
DISABLE_PROMPT_CACHING |
Set to 1 to disable prompt caching for all models (takes precedence over per-model settings) |
DISABLE_PROMPT_CACHING_HAIKU |
Set to 1 to disable prompt caching for Haiku models only |
DISABLE_PROMPT_CACHING_SONNET |
Set to 1 to disable prompt caching for Sonnet models only |
DISABLE_PROMPT_CACHING_OPUS |
Set to 1 to disable prompt caching for Opus models only |
These environment variables give you fine-grained control over prompt caching behavior. The global DISABLE_PROMPT_CACHING setting takes precedence over the model-specific settings, allowing you to quickly disable all caching when needed. The per-model settings are useful for selective control, such as when debugging specific models or working with cloud providers that may have different caching implementations.