3.1 — The five configuration scopes
Claude Code doesn't read a single config file. It merges up to five layers, each with a different priority level. Understanding this hierarchy lets you predict exactly which setting will be active in any situation.
Priority hierarchy (highest to lowest)
| Priority | Scope | File / Source | Shared? |
|---|---|---|---|
| 1 | Managed | managed-settings.json or managed-settings.d/ |
Enterprise (MDM) |
| 2 | CLI | Flags --model, --permission-mode, etc. |
Session only |
| 3 | Local | .claude/settings.local.json (project root) |
No (gitignored) |
| 4 | Project | .claude/settings.json (project root) |
Yes (git-tracked) |
| 5 | User | ~/.claude/settings.json | No (global personal)