Automatizza il Tuo Workflow di Sviluppo con gli Hooks di Claude Code
Gli Hooks ti permettono di eseguire comandi shell personalizzati quando Claude Code compie azioni specifiche. Auto-formattazione al salvataggio, blocco di modifiche pericolose o iniezione automatica di contesto.
Gli Hooks di Claude Code sono comandi shell che si eseguono automaticamente in risposta a eventi. Quando Claude Code modifica un file, esegue un comando o avvia una sessione, i tuoi hook si attivano. Questo ti permette di costruire guardrail, applicare standard e automatizzare configurazioni ripetitive senza intervento manuale.
Quali eventi hook sono disponibili?
| Evento | Quando si attiva | Caso d'uso comune |
|---|---|---|
| PreToolUse | Prima che Claude esegua uno strumento | Bloccare operazioni pericolose, validare input |
| PostToolUse | Dopo che Claude esegue uno strumento | Auto-formattare file modificati, eseguire linter |
| Notification | Quando Claude invia una notifica | Registrare su file, inviare a Slack |
| SessionStart | Quando inizia una nuova sessione | Iniettare contesto, verificare l'ambiente |
| ConfigChange | Quando cambiano le impostazioni | Validare la configurazione |
Come si crea un hook?
Usa il menu interattivo o modifica settings.json direttamente:
# Configurazione interattiva degli hook
claude /hooks
# Oppure modifica settings.json direttamente
# Progetto: .claude/settings.json
# Globale: ~/.claude/settings.jsonEcco un settings.json con gli hook configurati:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"command": "npx prettier --write "$CLAUDE_FILE_PATH"",
"description": "Auto-formatta i file modificati con Prettier"
}
],
"PreToolUse": [
{
"matcher": "Edit|Write",
"command": "echo $CLAUDE_FILE_PATH | grep -q \.env && echo 'BLOCCATO: Non puoi modificare file .env' && exit 1 || exit 0",
"description": "Blocca le modifiche ai file .env"
}
],
"SessionStart": [
{
"command": "cat .claude/context-injection.md",
"description": "Inietta contesto aggiuntivo all'avvio della sessione"
}
]
}
}Quali sono gli hook piu' utili?
1. Auto-formattazione alla modifica
Esegui Prettier, Black o gofmt ogni volta che Claude Code modifica un file:
// Hook PostToolUse
{
"matcher": "Edit|Write",
"command": "npx prettier --write \"$CLAUDE_FILE_PATH\""
}2. Blocco modifiche a file sensibili
Impedisci a Claude Code di modificare file di ambiente, segreti o configurazioni critiche:
// Hook PreToolUse
{
"matcher": "Edit|Write",
"command": "echo $CLAUDE_FILE_PATH | grep -qE \"\.env|\.secret|credentials\" && exit 1 || exit 0"
}3. Re-iniezione del contesto dopo la compattazione
Quando Claude Code compatta la sua finestra di contesto, dettagli importanti possono andare persi. Un hook puo' re-iniettare informazioni critiche:
// Hook PostToolUse per la compattazione
{
"matcher": "Compact",
"command": "cat .claude/critical-context.md"
}Inizia con l'hook di auto-formattazione. E' l'hook con il valore piu' alto e il rischio piu' basso. Una volta che ti senti a tuo agio, aggiungi la protezione dei file e l'iniezione del contesto.