Mes 5 hooks Claude Code qui changent tout au quotidien
Les hooks Claude Code exécutent des commandes shell au démarrage de session, à l'écriture de fichiers et aux appels d'outils. Voici les 5 que j'utilise chaque jour.
La plupart des gens découvrent Claude Code pour l'IA. Ils passent à côté des hooks.
Les hooks sont des commandes shell qui s'exécutent automatiquement quand quelque chose se passe dans ta session Claude Code : une session démarre, un outil s'exécute, Claude s'arrête. Tu les définis dans .claude/settings.json. Ils tournent silencieusement en arrière-plan.
Voici les 5 que j'utilise chaque jour.
À quoi ressemblent les hooks
{
"hooks": {
"UserPromptSubmit": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "echo 'Aujourd'hui : $(date)'" }
]
}
]
}
}Les événements disponibles : SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop.
Hook 1 — Injection automatique de la date
Événement : UserPromptSubmit
echo "Contexte : aujourd'hui c'est le $(date '+%A %d %B %Y')."Claude n'a pas de conscience du temps réel. Chaque prompt reçoit automatiquement la date du jour. Utile pour tout ce qui est sensible au temps : changelogs, deadlines, logique de planification.
Hook 2 — Notification push quand Claude s'arrête
Événement : Stop
osascript -e 'display notification "Claude a terminé" with title "Claude Code"'Les longues tâches (refactos, exécution de tests, analyses) peuvent prendre 2 à 5 minutes. Sans notification, soit je fixe l'écran, soit je rate le résultat. Ce hook se déclenche dès que Claude finit une tâche, qu'elle ait réussi ou atteint une limite.
Sur macOS tu as une notification native. Sur Linux, remplace par notify-send.
Hook 3 — Safety check avant l'exécution Bash
Événement : PreToolUse (Bash)
command=$(echo "$CLAUDE_TOOL_INPUT" | jq -r '.command')
if echo "$command" | grep -qE '(rm -rf|drop table|DELETE FROM|reset --hard)'; then
echo "BLOQUÉ : commande destructive détectée. Confirme manuellement." >&2
exit 1
fiCe hook intercepte chaque appel à l'outil Bash et bloque les patterns que j'ai marqués comme dangereux. Un exit code 1 stoppe l'exécution et remonte l'erreur dans le contexte de Claude. Adapte la regex à ce qui te préoccupe.
Hook 4 — Auto-lint après chaque écriture de fichier
Événement : PostToolUse (Write/Edit)
file=$(echo "$CLAUDE_TOOL_INPUT" | jq -r '.file_path')
ext="${file##*.}"
if [[ "$ext" == "ts" || "$ext" == "tsx" ]]; then
npx eslint --fix "$file" --quiet 2>/dev/null || true
fiChaque fichier TypeScript que Claude écrit est immédiatement linté. Plus de 10 erreurs ESLint à découvrir après un gros refacto. Le || true évite de bloquer si le fichier a des erreurs non corrigeables — Claude les voit au prochain appel d'outil.
Hook 5 — Chargement du briefing projet au démarrage
Événement : SessionStart
cat .claude/briefing.md 2>/dev/null && echo "---"
git log --oneline -5 2>/dev/nullMon .claude/briefing.md contient : l'objectif du sprint en cours, le travail en cours, les blocages connus. Combiné aux 5 derniers commits, Claude démarre chaque session avec l'état réel du projet — pas seulement ce qui est dans CLAUDE.md.
Je mets à jour le fichier de briefing quand les priorités changent. Ça prend 30 secondes.
Où les mettre
Les hooks globaux vont dans ~/.claude/settings.json (s'appliquent à tous les projets). Les hooks projet vont dans .claude/settings.json à la racine du repo (commité, partagé avec l'équipe).
Pour les hooks qui référencent des chemins ou outils spécifiques au projet, utilise le fichier projet.
L'effet cumulatif
Aucun de ces hooks n'est spectaculaire pris individuellement. Ensemble, ils suppriment les petites frictions qui cassent le flow : noter la date manuellement, vérifier si Claude a fini, attraper les commandes destructives trop tard, corriger le lint en second passage, ré-expliquer le contexte.
C'est là que passe le temps. Les hooks sont comment tu le récupères.
Le Claude Code Skills Starter Kit inclut des hooks prêts à l'emploi pour le formatage automatique, la détection de secrets et le blocage des commandes destructives — à déposer dans ~/.claude/.
Reçois le prochain article par mail
Des astuces concrètes pour construire avec l'IA. Un email par article.
Articles liés
- Claude Code Agents — How They Work and When to Use ThemClaude Code Agents (subagents) let you spawn isolated work threads from the main session. Full guide: what they are, when to use them, how to write a custom one, and the patterns that actually ship.
- Claude Code MCP — How to Connect Servers and Add Tools to ClaudeClaude Code MCP (Model Context Protocol) lets you plug external tools and data into Claude. Full guide: how to add an MCP server, list available ones, and the patterns that work.
- Claude Code Skills — What They Are and How to Build Your OwnClaude Code Skills are reusable, slash-invoked workflows that turn repetitive tasks into one-command actions. Full guide: what skills are, how to write them, and the patterns that ship.