[BUG] When starting Claude Code, it does not honor model setting in ~/.claude/settings.json

Resolved 💬 3 comments Opened Jan 19, 2026 by tddpirate Closed Jan 23, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Bug Report: Model setting in ~/.claude/settings.json not being respected

Expected Behavior:
When "model": "opus" is set in ~/.claude/settings.json, Claude Code should use Claude Opus 4.5 (model ID: claude-opus-4-5-20251101).

Actual Behavior:
Claude Code is using Sonnet 4.5 (model ID: claude-sonnet-4-5-20250929) instead, ignoring the configured model preference.

Configuration:
Settings file location: ~/.claude/settings.json

{
  "statusLine": {
    "type": "command",
    "command": "/bin/bash /home/node/.claude/statusline.sh"
  },
  "enabledPlugins": {
    "feature-dev@claude-code-plugins": true,
    "frontend-design@claude-plugins-official": true,
    "plugin-dev@claude-plugins-official": true
  },
  "alwaysThinkingEnabled": true,
  "model": "opus"
}

Evidence:
When asked about the current model, Claude reports:

  • Current model: Sonnet 4.5
  • Model ID: claude-sonnet-4-5-20250929
  • Expected model: Opus 4.5 (claude-opus-4-5-20251101)

Environment:

  • Platform: Linux running inside a Docker container, uname -a output is:

Linux c57776e067c1 6.1.0-42-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.159-1 (2025-12-30) x86_64 Linux

  • Claude Code version: 2.1.12

Impact:
Users cannot control which model they use for their sessions at startup time despite having a configuration option for it.

What Should Happen?

Claude should start using the model selected in ~/.claude/settings.json model setting.

Error Messages/Logs

Steps to Reproduce

  1. Start claude code as usual: $ claude

It starts with the Sonnet model.

  1. Select model using the /model opus command.

The ~/.claude/settings.json file is modified to specify the opus model.

  1. Exit clause code using /exit
  2. Restart claude code: $ claude

It starts with the Sonnet model.

Claude Model

None

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.12

Platform

Anthropic API

Operating System

Ubuntu/Debian Linux

Terminal/Shell

Other

Additional Information

~/.claude/settings.json:
{
"statusLine": {
"type": "command",
"command": "/bin/bash /home/node/.claude/statusline.sh"
},
"enabledPlugins": {
"feature-dev@claude-code-plugins": true,
"frontend-design@claude-plugins-official": true,
"plugin-dev@claude-plugins-official": true
},
"alwaysThinkingEnabled": true,
"model": "opus"
}

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗