Claude Code — Protocoles & méthodes avancées
Claude Code est le CLI officiel d'Anthropic. Il dépasse le simple chat : il lit le code, exécute des commandes, gère Git, et peut opérer de manière autonome via un écosystème de protocoles extensibles.
CLAUDE.md — Fichier d'instructions persistant
Fichier Markdown lu automatiquement à chaque session. Sert à donner du contexte permanent à Claude.
| Emplacement | Portée |
|---|---|
~/.claude/CLAUDE.md |
Global (tous les projets) |
./CLAUDE.md |
Projet courant |
./src/CLAUDE.md |
Sous-dossier spécifique |
# Mon projet
## Stack
- Backend : Python / FastAPI
- Frontend : React + TypeScript
## Conventions
- Tests obligatoires pour chaque nouvelle fonction
- Ne jamais commiter sur main directement
Les fichiers CLAUDE.md imbriqués sont tous chargés : global → racine projet → sous-dossiers.
Commandes slash intégrées
Disponibles dans la session interactive en tapant /.
Navigation & session
| Commande | Description |
|---|---|
/help |
Affiche l'aide |
/clear |
Efface l'historique de conversation |
/compact |
Compresse l'historique avec un résumé |
/exit ou /quit |
Quitte Claude Code |
/status |
Statut du compte et du système |
/cost |
Affiche la consommation de tokens |
Configuration
| Commande | Description |
|---|---|
/config |
Voir et modifier les paramètres |
/model |
Changer de modèle IA |
/fast |
Activer/désactiver le mode rapide (Opus 4.6) |
/vim |
Activer/désactiver le mode Vim |
/memory |
Éditer les fichiers mémoire |
/permissions |
Gérer les permissions des outils |
Projet & outils
| Commande | Description |
|---|---|
/init |
Initialise un fichier CLAUDE.md dans le projet |
/mcp |
Gérer les serveurs MCP |
/doctor |
Diagnostiquer l'installation Claude Code |
/review |
Demander une revue de code |
/pr_comments |
Voir les commentaires d'une PR GitHub |
/terminal-setup |
Configurer l'intégration terminal |
/release-notes |
Voir les notes de version |
Raccourci pratique en session
! git status # Exécute une commande shell directement dans la session
Flags CLI — Mode non-interactif
Utile pour l'automatisation, les scripts CI/CD et les pipelines.
# Mode one-shot (réponse puis fermeture)
claude -p "Explique la fonction auth() dans auth.py"
# Limiter les outils autorisés
claude -p "Corrige le bug dans auth.py" --allowedTools "Read,Edit,Bash"
# Sortie en JSON (pour parsing programmatique)
claude -p "Liste les fonctions principales" --output-format json
# Spécifier un modèle
claude -p "Analyse ce code" --model claude-opus-4-6
# Interdire certains outils
claude --disallowedTools "Bash,Write"
# Exemple batch sur plusieurs fichiers
for file in $(cat files.txt); do
claude -p "Migre $file de React vers Vue. Réponds OK ou FAIL." \
--allowedTools "Edit,Bash(git commit *)"
done
MCP — Model Context Protocol
Protocole standard d'Anthropic pour connecter des outils et services externes à Claude. Un serveur MCP expose des outils, des ressources et des prompts que Claude peut utiliser.
Configuration
// ~/.claude/mcp.json (global) ou .mcp.json (projet)
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "ghp_xxxx"
}
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/chemin/autorisé"]
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"POSTGRES_URL": "postgresql://user:pass@localhost/db"
}
}
}
}
Commandes de gestion
claude mcp list # Lister les serveurs configurés
claude mcp add monserveur -- npx -y @org/mon-serveur-mcp
claude mcp remove monserveur # Supprimer un serveur
claude mcp get monserveur # Détails d'un serveur
Permissions MCP dans settings.json
{
"enableAllProjectMcpServers": true,
"enabledMcpjsonServers": ["github", "memory"],
"disabledMcpjsonServers": ["filesystem"]
}
Types de transport
| Type | Usage |
|---|---|
stdio |
Processus local (le plus courant) |
sse |
Server-Sent Events (serveur HTTP distant) |
Skills — Instructions métier réutilisables
Les skills sont des fichiers Markdown qui encapsulent un processus ou une méthode de travail. Claude les suit comme une procédure.
Structure d'un skill
---
name: mon-skill
description: Décrit quand ce skill doit être utilisé
---
## Instructions
1. Lire les fichiers concernés avant toute modification
2. Écrire les tests avant le code (TDD)
3. Vérifier que les tests passent avant de conclure
Emplacement
~/.claude/skills/ ← Skills globaux
.claude/skills/ ← Skills du projet
~/.claude/plugins/<nom>/skills/ ← Skills d'un plugin
Invocation
Les skills s'invoquent via la commande /nom-du-skill ou en mentionnant leur nom dans la conversation. Claude Code charge automatiquement les skills disponibles au démarrage de session.
Plugins — Bundles extensibles
Un plugin regroupe skills, commandes, hooks et serveurs MCP dans un package réutilisable et distribuable.
Structure d'un plugin
mon-plugin/
├── plugin.json ← Manifeste
├── commands/ ← Commandes slash personnalisées
├── skills/ ← Skills inclus
├── agents/ ← Agents spécialisés
├── hooks/ ← Hooks lifecycle
│ └── hooks.json
└── servers/ ← Serveurs MCP embarqués
└── .mcp.json
Manifeste plugin.json
{
"name": "mon-plugin",
"version": "1.0.0",
"description": "Description du plugin",
"commands": ["./commands/"],
"agents": ["./agents/"],
"hooks": "./hooks/hooks.json",
"mcpServers": "./.mcp.json"
}
Utiliser ${CLAUDE_PLUGIN_ROOT} pour les chemins portables
{
"mcpServers": {
"mon-serveur": {
"command": "${CLAUDE_PLUGIN_ROOT}/servers/mon-serveur",
"args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"]
}
}
}
Commandes de gestion
claude plugin install github:org/mon-plugin
claude plugin list
claude plugin remove mon-plugin
Hooks — Automatisation lifecycle
Les hooks exécutent des scripts ou des prompts automatiquement en réponse à des événements Claude Code.
Événements disponibles
| Événement | Déclenchement |
|---|---|
SessionStart |
Au démarrage d'une session |
UserPromptSubmit |
Avant chaque message utilisateur |
PreToolUse |
Avant l'exécution d'un outil |
PostToolUse |
Après l'exécution d'un outil |
Stop |
Quand Claude termine sa réponse |
Configuration dans settings.json
{
"hooks": {
"PreToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "bash ~/.claude/hooks/scan-secrets.sh",
"timeout": 30
}
]
},
{
"matcher": "Bash",
"hooks": [
{
"type": "prompt",
"prompt": "Cette commande bash est-elle sûre pour la production ? Vérifie les opérations destructives. Réponds 'approve' ou 'deny' avec une explication.",
"timeout": 15
}
]
}
],
"SessionStart": [
{
"matcher": ".*",
"hooks": [
{
"type": "command",
"command": "bash ~/.claude/hooks/check-env.sh",
"timeout": 20
}
]
}
],
"Stop": [
{
"matcher": ".*",
"hooks": [
{
"type": "command",
"command": "bash ~/.claude/hooks/notify.sh",
"timeout": 30
}
]
}
]
}
}
Types de hooks
| Type | Description |
|---|---|
command |
Exécute un script shell. Si exit code ≠ 0, bloque l'action. |
prompt |
Soumet un prompt à Claude pour approbation dynamique. |
Loops — Boucles agentiques
Les loops permettent de faire tourner Claude en continu sur une tâche répétitive ou en vagues d'agents parallèles.
Loop périodique (skill /loop)
Exécute une commande ou un prompt à intervalle régulier.
/loop 5m /review # Relance /review toutes les 5 minutes
/loop 10m "vérifie les logs d'erreur et résume"
Loop autonomous avec agents parallèles
Pattern pour générer des itérations multiples en parallèle via des sous-agents :
PHASE 1 : Lire la spécification source
PHASE 2 : Détecter le numéro de la dernière itération dans output_dir/
PHASE 3 : Planifier N directions créatives différentes
PHASE 4 : Déployer N sous-agents en parallèle (Task tool), chacun avec :
- La spec complète
- Son numéro d'itération unique
- Sa direction créative assignée
PHASE 5 (mode infini) : Relancer en vagues de 3-5 jusqu'à saturation du contexte
Loop CI/CD avec continuous-claude
# Boucle avec revue de code à chaque itération
continuous-claude \
--prompt "Ajoute la feature d'authentification" \
--max-runs 10 \
--review-prompt "Lance npm test && npm run lint, corrige les échecs"
# Agents parallèles sur worktrees séparés
continuous-claude --prompt "Ajoute des tests" --max-runs 5 --worktree tests-worker &
continuous-claude --prompt "Refactore le code" --max-runs 5 --worktree refactor-worker &
wait
Méthodes avancées
Agent Teams (expérimental)
Permet plusieurs fenêtres de contexte indépendantes en parallèle.
# Dans ~/.claude/settings.json ou variable d'environnement
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
Sous-agents avec outils et MCP spécifiques
# .claude/agents/browser-tester.md
---
name: browser-tester
description: Teste les features dans un vrai navigateur via Playwright
mcpServers:
- playwright:
type: stdio
command: npx
args: ["-y", "@playwright/mcp@latest"]
---
Teste l'interface en conditions réelles avec Playwright.
Désactiver des sous-agents spécifiques
{
"permissions": {
"deny": ["Agent(Explore)", "Agent(mon-agent-dangereux)"]
}
}
claude --disallowedTools "Agent(Explore)"
Git Worktrees pour l'isolation
Permet de travailler sur plusieurs branches simultanément sans conflits.
# Créer un worktree isolé
git worktree add ../feature-auth feature/auth
# Claude Code opère dans son propre worktree
cd ../feature-auth && claude
Raccourcis clavier personnalisés
// ~/.claude/keybindings.json
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+e": "chat:externalEditor",
"ctrl+s": null
}
}
]
}
Commandes slash personnalisées
Créer un fichier .md dans ~/.claude/commands/ ou .claude/commands/ pour définir une commande slash.
<!-- ~/.claude/commands/deploy.md -->
Vérifie que tous les tests passent avec `npm test`, puis crée un commit
de déploiement et pousse sur la branche `release`.
/deploy # Invoque la commande custom
Les arguments sont accessibles via $ARGUMENTS dans le fichier de commande.
Résumé des emplacements clés
| Fichier / Dossier | Rôle |
|---|---|
~/.claude/CLAUDE.md |
Instructions globales persistantes |
~/.claude/settings.json |
Configuration globale (hooks, permissions, MCP) |
~/.claude/mcp.json |
Serveurs MCP globaux |
~/.claude/commands/ |
Commandes slash globales |
~/.claude/skills/ |
Skills globaux |
~/.claude/keybindings.json |
Raccourcis clavier |
.claude/CLAUDE.md |
Instructions du projet |
.mcp.json |
Serveurs MCP du projet |
.claude/commands/ |
Commandes slash du projet |
.claude/agents/ |
Sous-agents du projet |