Claude Code offre une variété de paramètres pour configurer son comportement selon vos besoins. Vous pouvez configurer Claude Code en exécutant claude config dans votre terminal, ou la commande /config lors de l’utilisation du REPL interactif.

Hiérarchie de configuration

Le nouveau fichier settings.json est notre mécanisme officiel pour configurer Claude Code à travers des paramètres hiérarchiques.

Les paramètres utilisateur sont définis dans ~/.claude/settings.json et s’appliquent à tous les projets.

Les paramètres du projet sont enregistrés dans votre répertoire de projet sous .claude/settings.json pour les paramètres partagés, et .claude/settings.local.json pour les paramètres locaux du projet. Claude Code configurera git pour ignorer .claude/settings.local.json lors de sa création.

Pour les déploiements d’entreprise de Claude Code, nous prenons également en charge les paramètres de politique gérés par l’entreprise. Ceux-ci ont la priorité sur les paramètres utilisateur et projet. Les administrateurs système peuvent déployer des politiques dans /Library/Application Support/ClaudeCode/policies.json sur macOS et /etc/claude-code/policies.json sur Linux et Windows via WSL.

Example settings.json
{
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test:*)",
      "Read(~/.zshrc)"
    ],
    "deny": [
      "Bash(curl:*)"
    ]
  },
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp"
  }
}

Priorité des paramètres

Les paramètres sont appliqués par ordre de priorité, les sources ultérieures remplaçant les sources précédentes :

  • Paramètres utilisateur
  • Paramètres de projet partagés
  • Paramètres de projet locaux
  • Arguments de ligne de commande
  • Politiques d’entreprise

Options de configuration

Claude Code prend en charge la configuration globale et au niveau du projet.

Pour gérer vos configurations, utilisez les commandes suivantes :

  • Lister les paramètres : claude config list
  • Voir un paramètre : claude config get <clé>
  • Modifier un paramètre : claude config set <clé> <valeur>
  • Ajouter à un paramètre (pour les listes) : claude config add <clé> <valeur>
  • Supprimer d’un paramètre (pour les listes) : claude config remove <clé> <valeur>

Par défaut, config modifie votre configuration de projet. Pour gérer votre configuration globale, utilisez le drapeau --global (ou -g).

Configuration globale

Pour définir une configuration globale, utilisez claude config set -g <clé> <valeur> :

CléValeurDescription
autoUpdaterStatusdisabled ou enabledActiver ou désactiver la mise à jour automatique (par défaut : enabled)
envJSON (ex. '{"FOO": "bar"}')Variables d’environnement qui seront appliquées à chaque session
preferredNotifChanneliterm2, iterm2_with_bell, terminal_bell, ou notifications_disabledOù vous souhaitez recevoir les notifications (par défaut : iterm2)
themedark, light, light-daltonized, ou dark-daltonizedThème de couleur
verbosetrue ou falseAfficher ou non les sorties bash et commandes complètes (par défaut : false)

Configuration du projet

Gérez la configuration du projet avec claude config set <clé> <valeur> (sans le drapeau -g) :

CléValeurDescription
allowedToolstableau d’outilsQuels outils peuvent s’exécuter sans approbation manuelle
ignorePatternstableau de motifs globQuels fichiers/répertoires sont ignorés lors de l’utilisation des outils

Par exemple :

# Permettre à npm test de s'exécuter sans approbation
claude config add allowedTools "Bash(npm test)"

# Permettre à npm test et à toutes ses sous-commandes de s'exécuter sans approbation
claude config add allowedTools "Bash(npm test:*)"

# Indiquer à Claude d'ignorer node_modules
claude config add ignorePatterns node_modules
claude config add ignorePatterns "node_modules/**"

Permissions

Vous pouvez gérer les permissions des outils de Claude Code avec /allowed-tools. Cette interface liste toutes les règles de permission et le fichier settings.json dont elles proviennent.

  • Les règles Allow permettront à Claude Code d’utiliser l’outil spécifié sans approbation manuelle supplémentaire.
  • Les règles Deny empêcheront Claude Code d’utiliser l’outil spécifié. Les règles Deny ont la priorité sur les règles Allow.

Les règles de permission utilisent le format : Tool(spécificateur-optionnel).

Par exemple, ajouter WebFetch à la liste des règles allow permettrait toute utilisation de l’outil de récupération web sans nécessiter d’approbation utilisateur. Consultez la liste des outils disponibles pour Claude (utilisez le nom entre parenthèses lorsqu’il est fourni.)

Certains outils utilisent le spécificateur optionnel pour un contrôle plus précis des permissions. Par exemple, une règle allow avec WebFetch(domain:example.com) autoriserait les récupérations vers example.com mais pas vers d’autres URLs.

Les règles Bash peuvent être des correspondances exactes comme Bash(npm run build), ou des correspondances de préfixe lorsqu’elles se terminent par :* comme Bash(npm run test:*)

Les règles Read() et Edit() suivent la spécification gitignore. Les motifs sont résolus par rapport au répertoire contenant .claude/settings.json. Pour référencer un chemin absolu, utilisez //. Pour un chemin relatif à votre répertoire personnel, utilisez ~/. Par exemple Read(//tmp/build_cache) ou Edit(~/.zshrc). Claude fera également de son mieux pour appliquer les règles Read et Edit aux autres outils liés aux fichiers comme Grep, Glob et LS.

Les noms d’outils MCP suivent le format : mcp__server_name__tool_name où :

  • server_name est le nom du serveur MCP tel que configuré dans Claude Code
  • tool_name est l’outil spécifique fourni par ce serveur

Plus d’exemples :

RègleDescription
Bash(npm run build)Correspond à la commande Bash exacte npm run build.
Bash(npm run test:*)Correspond aux commandes Bash commençant par npm run test. Voir la note ci-dessous sur la gestion des séparateurs de commandes.
Edit(~/.zshrc)Correspond au fichier ~/.zshrc.
Read(node_modules/**)Correspond à tout répertoire node_modules.
mcp__puppeteer__puppeteer_navigateCorrespond à l’outil puppeteer_navigate du serveur MCP puppeteer.
WebFetch(domain:example.com)Correspond aux requêtes fetch vers example.com

Claude Code est conscient des séparateurs de commandes (comme &&) donc une règle de correspondance de préfixe comme Bash(safe-cmd:*) ne lui donnera pas la permission d’exécuter la commande safe-cmd && other-cmd

Options de permission de mise à jour automatique

Lorsque Claude Code détecte qu’il n’a pas suffisamment de permissions pour écrire dans votre répertoire npm prefix global (requis pour les mises à jour automatiques), vous verrez un avertissement qui pointe vers cette page de documentation. Pour des solutions détaillées aux problèmes de mise à jour automatique, consultez le guide de dépannage.

Recommandé : Créer un nouveau préfixe npm accessible en écriture

# D'abord, sauvegardez une liste de vos paquets globaux existants pour une migration ultérieure
npm list -g --depth=0 > ~/npm-global-packages.txt

# Créez un répertoire pour vos paquets globaux
mkdir -p ~/.npm-global

# Configurez npm pour utiliser le nouveau chemin de répertoire
npm config set prefix ~/.npm-global

# Note : Remplacez ~/.bashrc par ~/.zshrc, ~/.profile, ou autre fichier approprié pour votre shell
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc

# Appliquez le nouveau paramètre PATH
source ~/.bashrc

# Maintenant réinstallez Claude Code dans le nouvel emplacement
npm install -g @anthropic-ai/claude-code

# Optionnel : Réinstallez vos paquets globaux précédents dans le nouvel emplacement
# Regardez ~/npm-global-packages.txt et installez les paquets que vous voulez garder
# npm install -g package1 package2 package3...

Pourquoi nous recommandons cette option :

  • Évite de modifier les permissions des répertoires système
  • Crée un emplacement propre et dédié pour vos paquets npm globaux
  • Suit les meilleures pratiques de sécurité

Comme Claude Code est en développement actif, nous recommandons de configurer les mises à jour automatiques en utilisant l’option recommandée ci-dessus.

Désactiver la mise à jour automatique

Si vous préférez désactiver la mise à jour automatique plutôt que de corriger les permissions, vous pouvez utiliser :

claude config set -g autoUpdaterStatus disabled

Optimisez votre configuration de terminal

Claude Code fonctionne mieux lorsque votre terminal est correctement configuré. Suivez ces directives pour optimiser votre expérience.

Shells pris en charge :

  • Bash
  • Zsh
  • Fish

Thèmes et apparence

Claude ne peut pas contrôler le thème de votre terminal. Cela est géré par votre application de terminal. Vous pouvez faire correspondre le thème de Claude Code à votre terminal pendant l’intégration ou à tout moment via la commande /config

Sauts de ligne

Vous avez plusieurs options pour entrer des sauts de ligne dans Claude Code :

  • Échappement rapide : Tapez \ suivi de Entrée pour créer une nouvelle ligne
  • Raccourci clavier : Appuyez sur Option+Entrée (Meta+Entrée) avec la configuration appropriée

Pour configurer Option+Entrée dans votre terminal :

Pour Mac Terminal.app :

  1. Ouvrez Paramètres → Profils → Clavier
  2. Cochez “Utiliser Option comme touche Meta”

Pour iTerm2 et le terminal VSCode :

  1. Ouvrez Paramètres → Profils → Touches
  2. Sous Général, définissez la touche Option gauche/droite sur “Esc+”

Astuce pour les utilisateurs iTerm2 et VSCode : Exécutez /terminal-setup dans Claude Code pour configurer automatiquement Shift+Entrée comme alternative plus intuitive.

Configuration des notifications

Ne manquez jamais quand Claude termine une tâche avec une configuration appropriée des notifications :

Notifications sonores du terminal

Activez les alertes sonores lorsque les tâches sont terminées :

claude config set --global preferredNotifChannel terminal_bell

Pour les utilisateurs macOS : N’oubliez pas d’activer les permissions de notification dans Paramètres système → Notifications → [Votre application de terminal].

Notifications système iTerm 2

Pour les alertes iTerm 2 lorsque les tâches sont terminées :

  1. Ouvrez les Préférences iTerm 2
  2. Naviguez vers Profils → Terminal
  3. Activez “Silence bell” et “Send notification when idle”
  4. Définissez votre délai de notification préféré

Notez que ces notifications sont spécifiques à iTerm 2 et ne sont pas disponibles dans le Terminal macOS par défaut.

Gestion des entrées volumineuses

Lorsque vous travaillez avec du code extensif ou de longues instructions :

  • Évitez le collage direct : Claude Code peut avoir du mal avec un contenu collé très long
  • Utilisez des flux de travail basés sur des fichiers : Écrivez le contenu dans un fichier et demandez à Claude de le lire
  • Soyez conscient des limitations de VS Code : Le terminal VS Code est particulièrement sujet à tronquer les collages longs

Mode Vim

Claude Code prend en charge un sous-ensemble de raccourcis Vim qui peuvent être activés avec /vim ou configurés via /config.

Le sous-ensemble pris en charge inclut :

  • Changement de mode : Esc (vers NORMAL), i/I, a/A, o/O (vers INSERT)
  • Navigation : h/j/k/l, w/e/b, 0/$/^, gg/G
  • Édition : x, dw/de/db/dd/D, cw/ce/cb/cc/C, . (répéter)

Variables d’environnement

Claude Code prend en charge les variables d’environnement suivantes pour contrôler son comportement :

VariableObjectif
DISABLE_AUTOUPDATERDéfinir à 1 pour désactiver la mise à jour automatique
DISABLE_BUG_COMMANDDéfinir à 1 pour désactiver la commande /bug
DISABLE_COST_WARNINGSDéfinir à 1 pour désactiver les messages d’avertissement de coût
DISABLE_ERROR_REPORTINGDéfinir à 1 pour désactiver le rapport d’erreurs Sentry
DISABLE_TELEMETRYDéfinir à 1 pour désactiver la télémétrie Statsig (notez que les événements Statsig n’incluent pas de données utilisateur comme le code, les chemins de fichiers ou les commandes bash)
HTTP_PROXYSpécifier le serveur proxy HTTP pour les connexions réseau
HTTPS_PROXYSpécifier le serveur proxy HTTPS pour les connexions réseau
MCP_TIMEOUTDélai d’attente en millisecondes pour le démarrage du serveur MCP
MCP_TOOL_TIMEOUTDélai d’attente en millisecondes pour l’exécution de l’outil MCP