3.1 — Les cinq scopes de configuration
Claude Code ne lit pas un seul fichier de config. Il fusionne jusqu'à cinq couches, chacune avec un niveau de priorité différent. Comprendre cette hiérarchie te permet de prédire exactement quel réglage sera actif dans chaque situation.
Hiérarchie de priorité (du plus fort au plus faible)
| Priorité | Scope | Fichier / Source | Partagé ? |
|---|---|---|---|
| 1 | Managed | managed-settings.json ou managed-settings.d/ |
Entreprise (MDM) |
| 2 | CLI | Flags --model, --permission-mode, etc. |
Session uniquement |
| 3 | Local | .claude/settings.local.json (racine projet) |
Non (gitignored) |
| 4 | Project | .claude/settings.json (racine projet) |
Oui (git-tracked) |
| 5 | User | ~/.claude/settings.json |
Non (global perso) |
Règle de fusion
Les valeurs scalaires (chaînes, booléens) sont écrasées par le scope le plus prioritaire. Les arrays se fusionnent entre les scopes. Concrètement, si le scope Project définit permissions.allow: ["Edit(*.kt)"] et le scope User définit permissions.allow: ["Bash(git status)"], le résultat final contient les deux entrées.
# Vérifier le résultat final de la fusion à tout moment
/status
À retenir
• 5 scopes : Managed > CLI > Local > Project > User
• Les scalaires s'écrasent, les arrays fusionnent
• .claude/settings.json = équipe, .claude/settings.local.json = personnel
• /status pour inspecter la configuration effective