settings.local.json language preference is overridden by settings.json
Bug Report
Claude Code version: 2.1.185
Environment:
- Claude Code CLI
- Project with both
.claude/settings.jsonand.claude/settings.local.json
Expected behavior
settings.local.json is the developer's personal override file. Settings defined there should take precedence over settings.json (the shared/corporate project settings). This is a standard pattern in development tools — local overrides win.
Actual behavior
When settings.json contains "language": "english" and settings.local.json contains "language": "japan", Claude Code uses "english". The corporate/project-level setting silently overrides the developer's personal preference.
Why this is a bug
settings.json is committed to git and shared across the team. It should define defaults/baselines. settings.local.json is gitignored and personal — it exists precisely so individual developers can override shared settings. Ignoring it defeats its purpose entirely.
Steps to reproduce
- Set
"language": "english"in.claude/settings.json - Set
"language": "japan"in.claude/settings.local.json - Start a Claude Code session — Claude responds in English, ignoring the local override.
Expected priority order
settings.local.json > settings.json (project level) > global defaults
Currently it appears to be the opposite, at least for the language field.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗