1
Claude Code pripravi dejanje
Claude Code se na primer pripravlja, da bo z orodjem Edit pisal v datoteko
2
Zažene se hook PreToolUse
Izvede se vaš nastavljeni ukaz. Dejanje lahko potrdi, blokira ali spremeni
3
Dejanje se izvede
Če ga je hook potrdil (ali hooka PreToolUse ni), se klic orodja izvede običajno
4
Zažene se hook PostToolUse
Po dokončanju dejanja se izvede vaš ukaz po dejanju. Samodejno oblikovanje, preverjanje kode, obveščanje in podobno
Začnite s samodejnim oblikovanjem
Za večino ekip ima največji učinek hook PostToolUse, ki po vsakem urejanju datoteke zažene vaš oblikovalnik (Prettier, Black, gofmt in podobno). Tako izpis orodja Claude Code vedno ustreza slogu vaše kode, kar iz pregledov kode odpravi pripombe o oblikovanju. Dodajte ga v projektno datoteko
.claude/settings.json, da koristi celotni ekipi.Primer: samodejno oblikovanje datotek TypeScript po urejanju
V svojo datoteko .claude/settings.json dodajte hook PostToolUse, ki zažene Prettier, kadar koli Claude Code uredi datoteko:
{
"hooks": {
"PostToolUse": [{
"matcher": "Edit|Write",
"command": "npx prettier --write $CLAUDE_FILE_PATH"
}]
}
}Primer: blokiranje pisanja v ustvarjene datoteke
Hook PreToolUse, ki orodju Claude Code prepreči spreminjanje samodejno ustvarjenih datotek:
{
"hooks": {
"PreToolUse": [{
"matcher": "Edit|Write",
"command": "echo $CLAUDE_FILE_PATH | grep -q 'generated/' && exit 1 || exit 0"
}]
}
}| Vrsta hooka | Kdaj teče | Pogosta uporaba | |
|---|---|---|---|
| PreToolUse | PreToolUse | Pred izvedbo klica orodja | Blokiranje pisanja v zaščitene datoteke, preverjanje ukazov, zahteva po potrditvi |
| PostToolUse | PostToolUse | Po dokončanju klica orodja | Samodejno oblikovanje kode, preverjanje kode, posodabljanje datotek z zaklepi, beleženje sprememb |
| Notification | Notification | Ko Claude Code pošlje obvestilo | Namizna opozorila, sporočila Slack, zvočni učinki, e-poštna obvestila |
Spremenljivke okolja v hookih
Hooki dobijo kontekst prek spremenljivk okolja.
$CLAUDE_FILE_PATH vsebuje pot datoteke, ki se spreminja. $CLAUDE_TOOL_NAME vsebuje ime orodja, ki se kliče (Edit, Write, Bash in podobno). Vaši ukazi hookov jih lahko uporabijo za usmerjene odločitve, na primer za oblikovanje samo datotek TypeScript ali preverjanje samo ukazov Bash, ki ustrezajo določenim vzorcem.