Hooki w praktyce - przewodnik
Hooki konfiguruje się w bloku hooks pliku ustawień, a każdy typ zdarzenia jest kluczem wewnątrz tego samego obiektu. Służą do uruchamiania działań w reakcji na zdarzenia, na przykład powiadomienia albo użycie narzędzia. Komenda /hooks otwiera przeglądarkę hooków, w której można sprawdzić, czy nowy hook pojawił się na liście zdarzenia.
Zacznij od dodania konfiguracji do pliku ustawień; jeśli istnieje już klucz hooks, dodaj nowe zdarzenie obok istniejących, zamiast zastępować cały obiekt. Matcher pozwala ograniczyć wywołanie do określonych narzędzi; bez niego hook uruchamia się przy każdym wystąpieniu zdarzenia.
Przykładowo, matcher Edit|Write uruchamia formatter po użyciu narzędzia Edit lub Write, a nie po każdym wywołaniu narzędzia. Hook PermissionRequest może automatycznie zatwierdzać wybrane prośby o uprawnienia, jeśli zwróci decyzję allow; matcher może zawęzić działanie do konkretnego narzędzia. Matcher należy utrzymywać możliwie wąski, ponieważ pusty matcher lub .* może zatwierdzać wszystkie prośby o uprawnienia do narzędzi.
Wyniki pasujących hooków są łączone po zakończeniu ich działania, a decyzja deny nie zatrzymuje pozostałych hooków. Hooki PostToolUse nie mogą cofnąć wykonanej już akcji, więc nadają się do działań następczych, a nie do blokowania zakończonego wywołania. Hooki typu agent są eksperymentalne, a dla przepływów produkcyjnych zalecane są hooki typu command.
Notification./hooks
/hooks, aby sprawdzić jego obecność na liście Notification.{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
}
]
}
]
}
}Zastosowanie w praktyce
Użyj hooka Notification, gdy chcesz otrzymać powiadomienie na pulpicie, zamiast obserwować terminal, gdy Claude czeka na Twoje wejście. Hook PostToolUse z matcherem Edit|Write może uruchamiać formatter po edycji plików, bez uruchamiania go po każdym użyciu narzędzia. Hook PermissionRequest z matcherem ExitPlanMode może pomijać okno zatwierdzenia dla tego narzędzia, nie obejmując innych próśb o uprawnienia.
/hooks; przy ustawianiu automatycznych zatwierdzeń zawęź matcher do konkretnego narzędzia, bo pusty matcher może zatwierdzać także zapisy plików i polecenia powłoki.