Per la documentazione di riferimento sui hook, vedi Riferimento sui hook.
- Notifiche: Personalizza il modo in cui ricevi notifiche quando Claude Code è in attesa del tuo input o permesso per eseguire qualcosa.
- Formattazione automatica: Esegui
prettiersui file .ts,gofmtsui file .go, ecc. dopo ogni modifica di file. - Registrazione: Traccia e conta tutti i comandi eseguiti per conformità o debug.
- Feedback: Fornisci feedback automatico quando Claude Code produce codice che non segue le convenzioni della tua codebase.
- Autorizzazioni personalizzate: Blocca le modifiche ai file di produzione o alle directory sensibili.
Devi considerare le implicazioni di sicurezza dei hook mentre li aggiungi, perché i hook si eseguono automaticamente durante il ciclo dell’agente con le credenziali dell’ambiente corrente.
Ad esempio, il codice dei hook dannosi può esfiltare i tuoi dati. Rivedi sempre l’implementazione dei tuoi hook prima di registrarli.Per le migliori pratiche di sicurezza complete, vedi Considerazioni sulla sicurezza nella documentazione di riferimento dei hook.
Panoramica degli eventi hook
Claude Code fornisce diversi eventi hook che si eseguono in diversi punti del flusso di lavoro:- PreToolUse: Si esegue prima delle chiamate di strumento (può bloccarle)
- PostToolUse: Si esegue dopo il completamento delle chiamate di strumento
- UserPromptSubmit: Si esegue quando l’utente invia un prompt, prima che Claude lo elabori
- Notification: Si esegue quando Claude Code invia notifiche
- Stop: Si esegue quando Claude Code finisce di rispondere
- SubagentStop: Si esegue quando i compiti del subagente si completano
- PreCompact: Si esegue prima che Claude Code stia per eseguire un’operazione compatta
- SessionStart: Si esegue quando Claude Code avvia una nuova sessione o riprende una sessione esistente
- SessionEnd: Si esegue quando la sessione di Claude Code termina
Guida rapida
In questa guida rapida, aggiungerai un hook che registra i comandi shell che Claude Code esegue.Prerequisiti
Installajq per l’elaborazione JSON nella riga di comando.
Passaggio 1: Apri la configurazione dei hook
Esegui il comando slash/hooks e seleziona
l’evento hook PreToolUse.
I hook PreToolUse si eseguono prima delle chiamate di strumento e possono bloccarle fornendo
a Claude feedback su cosa fare diversamente.
Passaggio 2: Aggiungi un matcher
Seleziona+ Add new matcher… per eseguire il tuo hook solo sulle chiamate di strumento Bash.
Digita Bash per il matcher.
Puoi usare
* per abbinare tutti gli strumenti.Passaggio 3: Aggiungi l’hook
Seleziona+ Add new hook… e inserisci questo comando:
Passaggio 4: Salva la tua configurazione
Per la posizione di archiviazione, selezionaUser settings poiché stai registrando nella tua home
directory. Questo hook si applicherà quindi a tutti i progetti, non solo al tuo
progetto corrente.
Quindi premi Esc finché non torni al REPL. Il tuo hook è ora registrato!
Passaggio 5: Verifica il tuo hook
Esegui/hooks di nuovo o controlla ~/.claude/settings.json per vedere la tua configurazione:
Passaggio 6: Testa il tuo hook
Chiedi a Claude di eseguire un comando semplice comels e controlla il tuo file di log:
Altri esempi
Per un’implementazione di esempio completa, vedi l’esempio di validatore di comandi bash nella nostra codebase pubblica.
Hook di formattazione del codice
Formatta automaticamente i file TypeScript dopo la modifica:Hook di formattazione Markdown
Correggi automaticamente i tag di lingua mancanti e i problemi di formattazione nei file markdown:.claude/hooks/markdown_formatter.py con questo contenuto:
- Rileva i linguaggi di programmazione nei blocchi di codice senza etichetta
- Aggiunge tag di lingua appropriati per l’evidenziazione della sintassi
- Corregge le righe vuote eccessive preservando il contenuto del codice
- Elabora solo i file markdown (
.md,.mdx)
Hook di notifica personalizzato
Ricevi notifiche desktop quando Claude ha bisogno di input:Hook di protezione dei file
Blocca le modifiche ai file sensibili:Scopri di più
- Per la documentazione di riferimento sui hook, vedi Riferimento sui hook.
- Per le migliori pratiche di sicurezza complete e le linee guida sulla sicurezza, vedi Considerazioni sulla sicurezza nella documentazione di riferimento dei hook.
- Per i passaggi di risoluzione dei problemi e le tecniche di debug, vedi Debug nella documentazione di riferimento dei hook.