Source: https://aiprimetech.io/fr/claude-code/hooks/ [Accueil](/fr/) › [Claude Code](/fr/claude-code/) › Hooks [Vue d’ensemble](/fr/claude-code/)[Installation](/fr/claude-code/install/)[référence de la CLI](/fr/claude-code/cli/)[Tarifs et limites](/fr/claude-code/pricing/)[Agent SDK](/fr/claude-code/sdk/)[Compétences et plugins](/fr/claude-code/skills/)[GitHub](/fr/claude-code/github/)[Web, bureau et IDE](/fr/claude-code/web-and-desktop/)[Modèles](/fr/claude-code/models/)[Erreurs](/fr/claude-code/errors/)[Open source ?](/fr/claude-code/open-source/)[Tutoriel](/fr/claude-code/tutorial/)[Pour les étudiants](/fr/claude-code/for-students/)[Automatisation de l’assurance qualité](/fr/claude-code/qa-automation/)[Comparaison avec Cursor](/fr/claude-code/vs-cursor/)[Comparaison avec Codex et OpenCode](/fr/claude-code/vs-codex/)[Sous-agents](/fr/claude-code/subagents/)[Hooks](/fr/claude-code/hooks/)[MCP](/fr/claude-code/mcp/)[Écosystème](/fr/claude-code/ecosystem/)[VS Code](/fr/claude-code/vscode/)[OpenRouter](/fr/claude-code/openrouter/)[Limites de débit](/fr/claude-code/rate-limits/)[Guide en chinois](/claude-code/zh/) Dernière mise à jour : 11 octobre 2026 # Hooks de Claude Code : un contrôle déterministe des actions de l’agent Les hooks sont des commandes shell que Claude Code exécute à des moments précis de sa boucle — avant un appel d’outil, après un appel, lorsque vous soumettez un prompt ou lorsqu’il termine. Contrairement aux instructions dans CLAUDE.md, que le modèle peut suivre ou non, un hook s’exécute toujours. Ils permettent de faire respecter les règles. ## TLDR - Configurés dans .claude/settings.json (projet) ou ~/.claude/settings.json (utilisateur), ou avec /hooks. - Événements : PreToolUse, PostToolUse, UserPromptSubmit, Notification, Stop, SubagentStop, PreCompact, SessionStart. - Le hook reçoit JSON sur stdin (nom de l’outil, entrée, session) ; le code de sortie 0 autorise l’exécution, le code de sortie 2 la bloque et transmet stderr à Claude. - Utilisations courantes : formater après chaque modification, bloquer les commandes dangereuses, exiger des tests avant l’arrêt, envoyer des notifications de bureau. ## Anatomie d’un hook ``` { "hooks": { "PostToolUse": [ { "matcher": "Edit|Write", "hooks": [ { "type": "command", "command": "npx prettier --write \"$(jq -r .tool_input.file_path)\"" } ] } ] } } ``` Trois parties : l’événement, un filtre de correspondance (une expression régulière sur le nom de l’outil pour les événements d’outil ; omettez-le pour tout sélectionner), et une ou plusieurs commandes. La commande reçoit sur stdin un objet JSON décrivant l’événement — pour les événements d’outil, il comprend tool_name et tool_input, ce qui permet à l’exemple ci-dessus de trouver le fichier qui vient d’être modifié. Placez-le dans .claude/settings.json pour le partager avec le dépôt, ~/.claude/settings.json pour votre usage personnel, ou exécutez /hooks et laissez Claude Code l’écrire. ## Les événements - PreToolUse — avant l’exécution d’un outil. Le seul événement qui peut bloquer : le code de sortie 2 annule l’appel et Claude lit votre sortie stderr pour en connaître la raison. - PostToolUse — après la réussite d’un outil. Formatage, linting et vérification des types sur le fichier modifié. - UserPromptSubmit — lorsque vous envoyez un prompt ; peut injecter du contexte ou rejeter le prompt. - Stop / SubagentStop — lorsque l’agent (ou un sous-agent) est sur le point de terminer. Le code de sortie 2 signifie ici « pas encore terminé » — l’usage classique consiste à refuser l’arrêt tant que les tests échouent. - PreCompact — avant /compact ; enregistrez tout ce dont vous avez besoin dans la transcription complète. - SessionStart — lorsqu’une session commence ou reprend ; charger l’environnement, afficher des rappels. - Notification — lorsque Claude Code sollicite votre attention (demande d’autorisation, inactivité) ; reliez-le à une notification de bureau ou Slack. ## Bloquer les commandes dangereuses ``` #!/usr/bin/env bash # .claude/hooks/guard.sh -- PreToolUse, matcher: Bash cmd=$(jq -r '.tool_input.command') if echo "$cmd" | grep -Eq 'rm -rf|git push --force|DROP TABLE|--no-verify'; then echo "blocked by guard.sh: $cmd" >&2 exit 2 fi exit 0 ``` Le code de sortie 2 constitue le contrat : l’appel d’outil n’a pas lieu, et tout ce que le hook a écrit sur stderr devient l’explication que Claude voit, afin qu’il puisse choisir une autre approche au lieu de réessayer la même chose. Tout autre code de sortie non nul est consigné, mais ne bloque pas l’exécution. ## « Ne pas s’arrêter tant que les tests ne réussissent pas » ``` #!/usr/bin/env bash # Stop hook: refuse to finish while the suite is red if ! npm test --silent >/tmp/claude-test.log 2>&1; then echo "Tests are failing; fix them before finishing:" >&2 tail -n 40 /tmp/claude-test.log >&2 exit 2 fi ``` Associez-le à une limite de --max-turns dans les exécutions sans interface afin qu’un échec réellement impossible à corriger ne provoque pas une boucle infinie. ## Hooks, CLAUDE.md et autorisations CLAUDE.md contient des conseils que le modèle lit ; /permissions est une liste de ce qu’il peut faire sans demander ; les hooks sont du code qui s’exécute dans tous les cas. Utilisez CLAUDE.md pour le style et le contexte, les autorisations pour définir ce qui est permis ou nécessite une demande, et les hooks pour tout ce qui doit être garanti à chaque fois — formatage, détection de secrets, contrôles de tests, journaux d’audit. Ils se combinent : une autorisation permet l’exécution de Bash(git *) , tandis qu’un hook PreToolUse bloque toujours git push --force. ## Les hooks et la passerelle Les hooks s’exécutent localement et ne font jamais appel à l’API ; rien ne change donc lorsque Claude Code pointe vers ANTHROPIC_BASE_URL=https://aiprimetech.io. Une combinaison utile : un hook Stop qui affiche /costdes données d’utilisation dans ce style à partir de vos propres journaux, afin qu’une équipe utilisant des crédits facturés à l’usage voie le coût de chaque session à sa clôture. ## Essayez gratuitement pour commencer Les nouveaux comptes reçoivent 5 $ de crédit API offert avec le code CLAUDECODE — de quoi passer une soirée à utiliser Claude Code avec Sonnet — puis des crédits valant 7.69231× leur valeur nominale. ``` export ANTHROPIC_BASE_URL=https://aiprimetech.io export ANTHROPIC_API_KEY=your_key ``` [Créer un compte avec le code CLAUDECODE](/register?promo=CLAUDECODE) ## Questions fréquentes Que sont les hooks de Claude Code ? Des commandes shell que Claude Code exécute automatiquement lors d’événements de sa boucle — avant ou après les appels d’outils, à l’envoi d’un prompt, à l’arrêt. Ils sont déterministes, contrairement aux instructions dans CLAUDE.md.Comment bloquer une commande avec un hook ? Un hook PreToolUse avec le filtre Bash qui examine tool_input.command depuis stdin et se termine avec le code 2 ; le texte de stderr est présenté à Claude comme raison.Où placer les hooks ? Dans .claude/settings.json au sein du projet (partagé) ou dans ~/.claude/settings.json (personnel), sous la clé hooks ; /hooks permet de les modifier de manière interactive. ## Utilisez Claude Code sur la passerelle Les mêmes modèles, deux variables d’environnement, des crédits valant 7.69231× leur valeur nominale — ou une offre illimitée à tarif forfaitaire. Nouveaux comptes : 5 $ de crédit API offert avec le code CLAUDECODE.[Obtenir une clé API](/register?promo=CLAUDECODE) [Voir les offres illimitées](/fr/plans/) AI Prime Tech est une passerelle API indépendante et n’est ni affiliée à Anthropic, ni approuvée ou parrainée par Anthropic. « Claude » et « Claude Code » sont des marques commerciales d’Anthropic. Les fonctionnalités de Claude Code décrites ici correspondent à la documentation publique d’Anthropic au moment de la rédaction et évoluent fréquemment ; les prix et les listes de modèles de cette page proviennent des paramètres en temps réel de cette passerelle. ## Autres guides Claude Code [Claude Code : le guide complet](/fr/claude-code/)[Comment installer Claude Code](/fr/claude-code/install/)[Documentation de la CLI Claude Code : commandes et options](/fr/claude-code/cli/)[Les tarifs et limites de Claude Code expliqués](/fr/claude-code/pricing/)[Le SDK Claude Code, désormais Claude Agent SDK](/fr/claude-code/sdk/)[Compétences et plugins Claude Code](/fr/claude-code/skills/)[Claude Code dans GitHub : l’App, l’Action et @claude](/fr/claude-code/github/)[Claude Code dispose-t-il d’une interface web ? Le web, le bureau et l’IDE expliqués](/fr/claude-code/web-and-desktop/)[Quel modèle Claude Code utilise et comment en changer](/fr/claude-code/models/)[Les erreurs de Claude Code et comment les résoudre](/fr/claude-code/errors/)[Claude Code est-il open source ?](/fr/claude-code/open-source/)[Tutoriel Claude Code : votre première vraie session](/fr/claude-code/tutorial/)[Claude pour les étudiants : Claude Code, l’API et ce que le statut étudiant vous apporte réellement](/fr/claude-code/for-students/)[Comment utiliser Claude Code pour automatiser l’assurance qualité](/fr/claude-code/qa-automation/)[Claude Code ou Cursor : lequel choisir, quand — et comment utiliser les deux](/fr/claude-code/vs-cursor/)[Claude Code vs Codex vs OpenCode : comparaison des agents de terminal](/fr/claude-code/vs-codex/)[Sous-agents de Claude Code : fonctionnement, définition et équipes d’agents](/fr/claude-code/subagents/)[MCP dans Claude Code : connexion de serveurs, portées, MCP distant et exemples concrets](/fr/claude-code/mcp/)[L’écosystème Claude Code : routeurs, frameworks, plugins et listes qui les recensent](/fr/claude-code/ecosystem/)[Claude Code dans VS Code : l’extension, l’utilisation via le terminal et les erreurs](/fr/claude-code/vscode/)[Comment utiliser OpenRouter dans Claude Code (et quand s’en passer)](/fr/claude-code/openrouter/)[Erreur de limite de débit de Claude : ce que signifie « API error: rate limit reached » et comment la résoudre](/fr/claude-code/rate-limits/)[Comment utiliser Claude Code : de l’installation à l’utilisation quotidienne](/claude-code/zh/)