Skip to content

Model setting in settings.json is ignored on startup - defaults to Sonnet instead of configured Opus #13242

Description

@kazuph

This issue was written with Claude Code (Claude Opus 4.5)


Description

When "model": "opus" is configured in ~/.claude/settings.json, Claude Code ignores this setting on startup and defaults to Sonnet instead.

Additionally, even when changing the model to Opus via /status → Config menu, this setting does not persist. On the next startup, it reverts to the default (currently Sonnet), making it impossible to maintain Opus usage across sessions.

Steps to Reproduce

  1. Set "model": "opus" in ~/.claude/settings.json
  2. Start Claude Code
  3. Observe that the model is Sonnet, not Opus
  4. Alternatively: Use /status → Config to set Opus
  5. Restart Claude Code
  6. Observe that the model has reverted to Sonnet

Expected Behavior

Claude Code should start with the model specified in settings.json (Opus in this case) and persist model selection across sessions.

Actual Behavior

Claude Code starts with Sonnet regardless of the settings.json configuration or previous session settings.

Configuration

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "model": "opus",
  ...
}

Environment

  • OS: macOS (Darwin 24.6.0)
  • Claude Code: Latest version

Possibly Related Issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:corearea:modelautocloseIssue will be closed automaticallybugSomething isn't workinghas reproHas detailed reproduction stepsplatform:macosIssue specifically occurs on macOS

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions