Configuration avancée

Configuration avancée

Fichiers de configuration

Claude Code utilise plusieurs niveaux de configuration, du plus global au plus spécifique.

Hiérarchie des fichiers CLAUDE.md

~/.claude/CLAUDE.md              ← Configuration globale (tous les projets)
~/projet/CLAUDE.md               ← Configuration du projet (racine)
~/projet/src/CLAUDE.md           ← Configuration d'un sous-dossier
~/projet/.claude/settings.json   ← Paramètres techniques du projet
~/.claude/settings.json          ← Paramètres techniques globaux

Les fichiers CLAUDE.md sont cumulatifs : Claude lit tous les niveaux et les combine. Le fichier le plus spécifique a la priorité en cas de conflit.

settings.json — Paramètres techniques

Le fichier settings.json configure le comportement technique de Claude Code :

{
  "permissions": {
    "allow": [
      "Read",
      "Glob",
      "Grep",
      "Bash(npm run test)",
      "Bash(npm run build)"
    ],
    "deny": [
      "Bash(rm -rf *)",
      "Bash(git push --force)"
    ]
  }
}

Permissions détaillées

Vous pouvez contrôler finement les permissions :

Permission Description
Read Lecture de fichiers
Edit Modification de fichiers
Write Création de fichiers
Bash(commande) Exécution d'une commande spécifique
Bash Toutes les commandes bash
Glob Recherche de fichiers
Grep Recherche dans le contenu

Hooks — Automatisation des actions

Les hooks permettent d'exécuter automatiquement des commandes en réponse aux actions de Claude Code.

Configuration des hooks

Dans settings.json :

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Edit",
        "hooks": [
          {
            "type": "command",
            "command": "echo 'Un fichier va être modifié'"
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Write",
        "hooks": [
          {
            "type": "command",
            "command": "npx prettier --write $CLAUDE_FILE_PATH"
          }
        ]
      }
    ]
  }
}

Types de hooks disponibles

Événement Déclencheur
PreToolUse Avant l'utilisation d'un outil
PostToolUse Après l'utilisation d'un outil
Notification Quand Claude envoie une notification
Stop Quand Claude termine une réponse

Exemple pratique : Formater après chaque modification

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "npx prettier --write $CLAUDE_FILE_PATH"
          }
        ]
      }
    ]
  }
}

Ainsi, chaque fichier modifié ou créé par Claude est automatiquement formaté avec Prettier.

Serveurs MCP (Model Context Protocol)

Les serveurs MCP étendent les capacités de Claude Code en lui donnant accès à des outils externes.

Qu'est-ce que MCP ?

Le Model Context Protocol est un standard ouvert qui permet à Claude de communiquer avec des services externes : bases de données, API, outils de monitoring, etc.

Configuration d'un serveur MCP

Dans settings.json :

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "DATABASE_URL": "postgresql://user:pass@localhost:5432/mydb"
      }
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "ghp_xxxxxxxxxxxx"
      }
    }
  }
}

Serveurs MCP populaires

Serveur Utilisation
server-postgres Requêter une base PostgreSQL
server-github Interagir avec GitHub (issues, PRs)
server-filesystem Accès étendu au système de fichiers
server-slack Envoyer/lire des messages Slack
server-brave-search Recherche web via Brave

Variables d'environnement

Variables utiles

# Clé API Anthropic (si pas d'authentification OAuth)
export ANTHROPIC_API_KEY="sk-ant-..."

# Modèle par défaut
export CLAUDE_MODEL="claude-sonnet-4-6"

# Répertoire de configuration
export CLAUDE_CONFIG_DIR="~/.claude"

Commandes CLI avancées

Drapeaux utiles

# Mode silencieux (pas d'interface interactive)
claude -p "ta question" --output-format json

# Limiter les outils disponibles
claude --allowedTools "Read,Grep,Glob"

# Utiliser un modèle spécifique
claude --model claude-opus-4-6

# Reprendre la dernière conversation
claude --continue

# Afficher les conversations récentes
claude --resume

# Mode verbeux pour le débugage
claude --verbose

Exemples d'automatisation

# Script de revue de code automatique
git diff --staged | claude -p "Fais une revue de ce diff. 
Signale les bugs potentiels, les problèmes de sécurité 
et les violations de bonnes pratiques."

# Génération de documentation
claude -p "Génère un fichier CHANGELOG.md basé sur les 
commits depuis le dernier tag" --output-format text > CHANGELOG.md

# Analyse de sécurité
claude -p "Analyse les dépendances dans package.json 
et signale celles avec des vulnérabilités connues"

Bonnes pratiques de configuration

1. Commencer simple

Ne surchargez pas votre CLAUDE.md. Commencez avec les bases :

# CLAUDE.md

## Commandes
- `npm run dev` : développement
- `npm run test` : tests
- `npm run build` : build

## Règles
- TypeScript strict
- Tests obligatoires

2. Ajouter au fur et à mesure

Quand Claude fait une erreur récurrente, ajoutez une règle dans CLAUDE.md plutôt que de répéter l'instruction à chaque session.

3. Utiliser la mémoire automatique

Claude Code peut aussi sauvegarder des informations automatiquement grâce à son système de mémoire. Si vous lui dites « retiens que... », il créera un fichier mémoire dans ~/.claude/projects/ qui sera rechargé automatiquement dans les futures sessions.

4. Séparer les préoccupations

  • CLAUDE.md : conventions et contexte métier
  • settings.json : permissions et configuration technique
  • Hooks : automatisation des workflows
  • MCP : intégrations externes