settings.json model preference overridden by app UI without warning

Open 💬 0 comments Opened Jun 28, 2026 by joedeely

Summary

The model field in ~/.claude/settings.json is silently overridden by the Claude Code desktop app, causing sessions to run on a different model than the one configured.

Steps to reproduce

  1. Set "model": "claude-opus-4-8" in ~/.claude/settings.json
  2. Launch Claude Code desktop app
  3. Start a new session

Expected behavior

The session runs on claude-opus-4-8 as configured.

Actual behavior

The session runs on claude-sonnet-4-6. The system prompt identifies the model as Sonnet despite the settings file specifying Opus. No warning or indication is shown that the configured model has been overridden.

Why this matters

Users rely on settings.json as the canonical configuration for Claude Code behavior. Silent model overrides undermine that contract — users pay for and expect a specific model and get a different one without knowing it.

Environment

  • Platform: macOS (darwin 25.5.0)
  • Shell: zsh
  • Config: "model": "claude-opus-4-8" in ~/.claude/settings.json

View original on GitHub ↗