Aller au contenu principal
Référence technique

settings.json : Référence complète de la configuration

Toutes les options du fichier settings.json de Claude Code : 3 niveaux de configuration, permissions, MCP, modèles, outils et exemples complets.

Les 3 niveaux de configuration

Claude Code fusionne les fichiers de configuration dans cet ordre de précédence (du plus prioritaire au moins prioritaire) :

NiveauFichierPortée
1. Projet local.claude/settings.local.jsonCe projet uniquement (non commité, gitignored)
2. Projet.claude/settings.jsonCe projet (commitable, partageable avec l'équipe)
3. Utilisateur~/.claude/settings.jsonTous les projets de l'utilisateur

Précédence

Les options définies au niveau projet surchargent celles du niveau utilisateur. Le fichier local (.local.json) surcharge les deux autres. C'est le mécanisme qui permet de partager une configuration de base via Git tout en autorisant des surcharges personnelles.


Structure complète annotée

{
// Modèle par défaut pour toutes les sessions
"model": "claude-sonnet-4-5",
// Activation de l'Extended Thinking
"alwaysThinkingEnabled": false,
// Compactage automatique du contexte
"autoCompact": true,
// Fournisseur d'API (anthropic par défaut)
"apiProvider": "anthropic",
// URL d'API personnalisée (proxies, bedrock, vertex)
"customApiUrl": "https://api.anthropic.com",
// Permissions globales par outil
"permissions": {
"allow": ["Bash(git:*)", "Read"],
"deny": ["Bash(rm -rf:*)"]
},
// Liste des outils autorisés
"allowedTools": ["Read", "Write", "Bash", "Glob", "Grep"],
// Liste des outils désactivés
"disabledTools": [],
// Variables d'environnement injectées dans chaque session
"env": {
"NODE_ENV": "development",
"MY_VAR": "valeur"
},
// Configuration des serveurs MCP
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "~/projets"],
"env": {}
}
}
}

Option : model

Le modèle Claude à utiliser par défaut pour toutes les sessions.

ValeurDescription
claude-haiku-4-5Rapide et économique, 90% des capacités de Sonnet
claude-sonnet-4-5Meilleur équilibre qualité/coût (recommandé)
claude-opus-4-5Raisonnement le plus profond, plus lent
{
"model": "claude-sonnet-4-5"
}

Peut être surchargé en session avec /model ou --model en CLI.


Option : alwaysThinkingEnabled

Active l'Extended Thinking par défaut. Claude réserve des tokens pour son raisonnement interne avant de répondre.

{
"alwaysThinkingEnabled": true
}
  • Défaut : false
  • Toggle en session : Alt+T (Windows/Linux) ou Option+T (macOS)
  • Budget : contrôlé par MAX_THINKING_TOKENS (variable d'environnement)

Option : autoCompact

Compacte automatiquement le contexte quand la fenêtre de tokens approche la limite. Claude génère un résumé des échanges précédents.

{
"autoCompact": true
}
  • Défaut : true
  • Manuel : commande /compact en session

Option : permissions

Contrôle fin des autorisations par outil. Deux listes : allow (autorisations explicites) et deny (interdictions).

Syntaxe des permissions

Outil(filtre)
ExempleSignification
"Read"Autorise toutes les lectures de fichiers
"Bash(git:*)"Autorise toutes les commandes git
"Bash(npm run:*)"Autorise tous les scripts npm
"Bash(rm -rf:*)"Autorise rm -rf (ou l'interdit si dans deny)
"Write(src/**)"Autorise l'écriture dans src/ uniquement
"WebFetch"Autorise les requêtes HTTP sortantes
{
"permissions": {
"allow": [
"Read",
"Bash(git:*)",
"Bash(npm run:*)",
"Bash(npm test:*)"
],
"deny": [
"Bash(rm -rf:*)",
"Bash(sudo:*)",
"WebFetch"
]
}
}

Ordre de priorité des permissions

Les règles deny ont priorité sur les règles allow. Si un outil est dans les deux listes, il sera interdit. Testez vos règles avec claude config list pour vérifier la configuration fusionnée.


Option : allowedTools

Liste blanche des outils que Claude Code peut utiliser. Si définie, seuls les outils listés sont disponibles.

Outils disponibles

OutilDescription
ReadLecture de fichiers
WriteÉcriture de fichiers
EditModification partielle de fichiers
MultiEditModifications multiples en une opération
BashExécution de commandes shell
GlobRecherche de fichiers par pattern
GrepRecherche de contenu dans les fichiers
LSListe de répertoires
WebFetchRequêtes HTTP
WebSearchRecherche web
TaskLancement de sous-agents (mode agentic)
TodoReadLecture de la liste de tâches
TodoWriteÉcriture de la liste de tâches
NotebookReadLecture de notebooks Jupyter
NotebookEditModification de notebooks Jupyter
{
"allowedTools": ["Read", "Bash", "Glob", "Grep"]
}

Option : disabledTools

Liste des outils explicitement désactivés (blacklist). Complément de allowedTools.

{
"disabledTools": ["WebFetch", "WebSearch"]
}

Option : env

Variables d'environnement injectées automatiquement dans toutes les sessions Claude Code et les sous-processus qu'elles lancent.

{
"env": {
"NODE_ENV": "development",
"DATABASE_URL": "postgresql://localhost/myapp",
"LOG_LEVEL": "debug"
}
}

Secrets dans env

Ne committez jamais de secrets (mots de passe, tokens API) dans .claude/settings.json versionné. Utilisez .claude/settings.local.json (gitignored) ou des variables d'environnement système pour les valeurs sensibles.


Option : apiProvider

Fournisseur d'API à utiliser. Utile pour les proxies d'entreprise ou les déploiements via Amazon Bedrock / Google Vertex.

ValeurDescription
"anthropic"API Anthropic directe (défaut)
"bedrock"Amazon Bedrock (nécessite AWS credentials)
"vertex"Google Vertex AI
{
"apiProvider": "anthropic",
"customApiUrl": "https://mon-proxy.entreprise.com/anthropic"
}

Option : customApiUrl

URL de base personnalisée pour les appels API. Utile pour les proxies d'entreprise, les gateways ou les déploiements auto-hébergés.

{
"customApiUrl": "https://api-proxy.mon-entreprise.com"
}

La clé API (ANTHROPIC_API_KEY) reste nécessaire même avec une URL personnalisée.


Option : mcpServers

Configuration des serveurs MCP. Chaque entrée est un serveur MCP nommé.

Structure d'un serveur MCP

{
"mcpServers": {
"<nom-du-mcp>": {
"command": "<exécutable>",
"args": ["<arg1>", "<arg2>"],
"env": {
"VAR": "valeur"
},
"transport": "stdio"
}
}
}
ChampTypeRequisDescription
commandstringOui (stdio)Commande pour démarrer le serveur
argsstring[]NonArguments passés à la commande
envobjectNonVariables d'environnement pour le processus MCP
transportstringNon"stdio" (défaut) ou "sse"
urlstringOui (SSE)URL du serveur SSE (si transport: "sse")

Exemples de configuration MCP

{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/home/user/projets",
"/tmp"
]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_votre_token"
}
},
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://localhost:5432/mydb"
]
},
"mon-api-sse": {
"transport": "sse",
"url": "https://mon-serveur.com/mcp"
}
}
}

Exemples de configurations complètes

Configuration développeur solo

// ~/.claude/settings.json
{
"model": "claude-sonnet-4-5",
"alwaysThinkingEnabled": false,
"autoCompact": true,
"permissions": {
"allow": ["Read", "Write", "Bash(git:*)", "Bash(npm:*)"],
"deny": ["Bash(sudo:*)"]
},
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "~/projets"]
}
}
}

Configuration équipe (commitée dans le repo)

// .claude/settings.json
{
"model": "claude-sonnet-4-5",
"allowedTools": ["Read", "Write", "Edit", "Bash", "Glob", "Grep"],
"permissions": {
"deny": ["Bash(rm -rf:*)", "Bash(sudo:*)", "WebFetch"]
},
"env": {
"NODE_ENV": "development"
},
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "./"]
}
}
}

Configuration sécurisée (lecture seule)

// Pour les audits ou environnements sensibles
{
"allowedTools": ["Read", "Glob", "Grep", "LS"],
"permissions": {
"deny": ["Write", "Edit", "Bash", "WebFetch", "WebSearch"]
}
}

Prochaines étapes