Claude Code offre une variété de paramètres pour configurer son comportement selon vos besoins. Vous pouvez configurer Claude Code en exécutant la commande /config lorsque vous utilisez le REPL interactif.

Fichiers de paramètres

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

  • Paramètres utilisateur sont définis dans ~/.claude/settings.json et s’appliquent à tous les projets.
  • Paramètres de 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 de projet locaux. Claude Code configurera git pour ignorer .claude/settings.local.json lorsqu’il est créé.
  • Pour les déploiements d’entreprise de Claude Code, nous prenons également en charge les paramètres de politique gérée par l’entreprise. Ceux-ci ont priorité sur les paramètres utilisateur et de projet. Les administrateurs système peuvent déployer des politiques vers /Library/Application Support/ClaudeCode/policies.json sur macOS et /etc/claude-code/policies.json sur Linux et Windows via WSL.
Exemple de 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"
  }
}

Paramètres disponibles

settings.json prend en charge plusieurs options :

CléDescriptionExemple
apiKeyHelperScript personnalisé pour générer une clé API Anthropic/bin/generate_temp_api_key.sh
cleanupPeriodDaysDurée de conservation locale des transcriptions de chat (par défaut : 30 jours)20
envVariables d’environnement qui seront appliquées à chaque session{"FOO": "bar"}
includeCoAuthoredByIndique s’il faut inclure la mention co-authored-by Claude dans les commits git et les pull requests (par défaut : true)false
permissionsLes clés allow et deny sont une liste de règles de permission{"allow": [ "Bash(npm run lint)" ]}

Priorité des paramètres

Les paramètres sont appliqués par ordre de priorité :

  1. Politiques d’entreprise
  2. Arguments de ligne de commande
  3. Paramètres de projet locaux
  4. Paramètres de projet partagés
  5. Paramètres utilisateur

Permissions

Vous pouvez consulter et gérer les permissions d’outils de Claude Code avec /permissions. 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 priorité sur les règles Allow.

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

Une règle qui est simplement le nom de l’outil correspond à toute utilisation de cet outil. Par exemple, ajouter Bash à la liste des règles d’autorisation permettrait à Claude Code d’utiliser l’outil Bash sans nécessiter l’approbation de l’utilisateur. Consultez la liste des outils disponibles pour Claude.

Règles de permission spécifiques aux outils

Certains outils utilisent le spécificateur optionnel pour des contrôles de permission plus précis. Par exemple, une règle d’autorisation avec Bash(git diff:*) autoriserait les commandes Bash qui commencent par git diff. Les outils suivants prennent en charge les règles de permission avec des spécificateurs :

Bash

  • Bash(npm run build) Correspond exactement à la commande Bash npm run build
  • Bash(npm run test:*) Correspond aux commandes Bash commençant par npm run test.

Claude Code est conscient des opérateurs de shell (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

Read & Edit

Les règles Edit s’appliquent à tous les outils intégrés qui modifient des fichiers. Claude fera de son mieux pour appliquer les règles Read à tous les outils intégrés qui lisent des fichiers comme Grep, Glob et LS.

Les règles Read & Edit suivent toutes deux la spécification gitignore. Les modèles 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 ~/.

  • Edit(docs/**) Correspond aux modifications de fichiers dans le répertoire docs de votre projet
  • Read(~/.zshrc) Correspond aux lectures de votre fichier ~/.zshrc
  • Edit(//tmp/scratch.txt) Correspond aux modifications de /tmp/scratch.txt

WebFetch

  • WebFetch(domain:example.com) Correspond aux requêtes fetch vers example.com

MCP

  • mcp__puppeteer Correspond à tout outil fourni par le serveur puppeteer (nom configuré dans Claude Code)
  • mcp__puppeteer__puppeteer_navigate Correspond à l’outil puppeteer_navigate fourni par le serveur puppeteer

Options de permission pour la mise à jour automatique

Lorsque Claude Code détecte qu’il n’a pas suffisamment de permissions pour écrire dans votre répertoire npm 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 par l’utilisateur

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

# Créez un répertoire pour vos packages 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 un 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 packages globaux précédents dans le nouvel emplacement
# Consultez ~/npm-global-packages.txt et installez les packages que vous souhaitez conserver
# 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 packages 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 au lieu de corriger les permissions, vous pouvez définir la variable d’environnement DISABLE_AUTOUPDATER à 1

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 une 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+”

Conseil pour les utilisateurs d’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 le moment où Claude termine une tâche avec une configuration de notification appropriée :

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 d’iTerm 2
  2. Naviguez vers Profils → Terminal
  3. Activez “Silence bell” et Filter Alerts → “Send escape sequence-generated alerts”
  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 étendu ou de longues instructions :

  • Évitez le collage direct : Claude Code peut avoir du mal avec le contenu collé très long
  • Utilisez des flux de travail basés sur des fichiers : Écrivez du contenu dans un fichier et demandez à Claude de le lire
  • Soyez conscient des limitations de VS Code : Le terminal VS Code est particulièrement enclin à 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 comprend :

  • 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 :

Toutes les variables d’environnement peuvent également être configurées dans settings.json. C’est utile comme moyen de définir automatiquement des variables d’environnement pour chaque session, ou pour déployer un ensemble de variables d’environnement pour toute votre équipe ou organisation.

VariableObjectif
ANTHROPIC_API_KEYClé API, uniquement lors de l’utilisation du SDK Claude (pour une utilisation interactive, exécutez /login)
ANTHROPIC_AUTH_TOKENValeur personnalisée pour les en-têtes Authorization et Proxy-Authorization (la valeur que vous définissez ici sera préfixée par Bearer )
ANTHROPIC_CUSTOM_HEADERSEn-têtes personnalisés que vous souhaitez ajouter à la requête (au format Nom: Valeur)
ANTHROPIC_MODELNom du modèle personnalisé à utiliser (voir Configuration du modèle)
ANTHROPIC_SMALL_FAST_MODELNom du modèle de classe Haiku pour les tâches en arrière-plan
BASH_DEFAULT_TIMEOUT_MSDélai d’attente par défaut pour les commandes bash de longue durée
BASH_MAX_TIMEOUT_MSDélai d’attente maximum que le modèle peut définir pour les commandes bash de longue durée
BASH_MAX_OUTPUT_LENGTHNombre maximum de caractères dans les sorties bash avant qu’elles ne soient tronquées au milieu
CLAUDE_CODE_API_KEY_HELPER_TTL_MSIntervalle auquel les identifiants doivent être actualisés (lors de l’utilisation de apiKeyHelper)
CLAUDE_CODE_USE_BEDROCKUtiliser Bedrock (voir Bedrock & Vertex)
CLAUDE_CODE_USE_VERTEXUtiliser Vertex (voir Bedrock & Vertex)
CLAUDE_CODE_SKIP_VERTEX_AUTHIgnorer l’authentification Google pour Vertex (par ex. lors de l’utilisation d’un proxy)
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICÉquivalent à définir DISABLE_AUTOUPDATER, DISABLE_BUG_COMMAND, DISABLE_ERROR_REPORTING, et DISABLE_TELEMETRY
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 signalement 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 du code, des chemins de fichiers ou des 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
MAX_THINKING_TOKENSForcer un budget de réflexion pour le modèle
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

Options de configuration

Nous sommes en train de migrer la configuration globale vers settings.json.

claude config sera déprécié au profit de settings.json

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éDescriptionExemple
autoUpdaterStatusActiver ou désactiver la mise à jour automatique (par défaut : enabled)disabled
preferredNotifChannelOù vous souhaitez recevoir les notifications (par défaut : iterm2)iterm2, iterm2_with_bell, terminal_bell, ou notifications_disabled
themeThème de couleurdark, light, light-daltonized, ou dark-daltonized
verboseIndique s’il faut afficher les sorties bash et de commande complètes (par défaut : false)true