Hooks Claude Code pozwalają Ci automatyzować akcje przed lub po wykonaniu Twoich poleceń. W praktyce możesz skonfigurować Claude Code tak, aby automatycznie uruchamiał testy, formatował Twój kod lub sprawdzał bezpieczeństwo plików bez konieczności ręcznego działania. Ta funkcjonalność zamienia powtarzalne zadania w automatyczne procesy działające w tle. W tym poradniku dowiesz się, czym są hooks, jak je skonfigurować nawet bez doświadczenia w programowaniu, oraz poznasz 5 praktycznych przykładów, które możesz skopiować i wkleić już dziś, aby zaoszczędzić czas.

Czym jest hook Claude Code i dlaczego jest przydatny

Hook to punkt zaczepu, który automatycznie wyzwala akcję w określonym momencie Twojego workflow. Wyobraź sobie, że chcesz, aby Twój kod był zawsze dobrze sformatowany przed zapisaniem: zamiast ręcznie uruchamiać polecenie formatowania za każdym razem, konfigurujesz hook, który robi to automatycznie przed każdym zapisem.

Hooks Claude Code działają na zasadzie wyzwalacz-akcja. Definiujesz zdarzenie wyzwalające (na przykład: "przed wygenerowaniem kodu", "po zmodyfikowaniu pliku", "przed zamknięciem projektu") i akcję, która ma się wykonać automatycznie w tym momencie.

Zgodnie z oficjalną dokumentacją Anthropic, hooks mogą zmniejszyć czas spędzony na powtarzalnych zadaniach programistycznych nawet o 40%. Dla początkującego, który uczy się kodować, oznacza to mniej rozpraszaczy i więcej skupienia na nauce.

Najczęstsze przypadki użycia:

  • Automatyczne formatowanie kodu, aby pozostał czytelny
  • Uruchamianie testów w celu sprawdzenia, czy nic się nie zepsuło
  • Zapisywanie kopii Twojej pracy przed każdą ważną modyfikacją
  • Sprawdzanie bezpieczeństwa kodu przed jego udostępnieniem
  • Czyszczenie plików tymczasowych po zamknięciu projektu

Typy hooks dostępne w Claude Code

Claude Code oferuje trzy kategorie hooks: pre-hooks (przed akcją), post-hooks (po akcji) i event-hooks (na określone zdarzenie). Każdy typ odpowiada innym potrzebom w Twoim workflow programistycznym.

Pre-hooks: działanie przed wykonaniem

Pre-hooks wykonują się tuż przed tym, zanim Claude Code realizuje akcję. Na przykład pre-generate wyzwala się przed wygenerowaniem kodu, pre-modify przed modyfikacją istniejącego pliku.

Główna użyteczność: sprawdzenie, czy warunki są dobre przed kontynuacją. Możesz sprawdzić, czy Twój obecny kod działa przed dodaniem nowych funkcji, lub zapisać wersję pliku przed jego modyfikacją.

Post-hooks: działanie po wykonaniu

Post-hooks interweniują po tym, jak Claude Code ukończy swoją akcję. post-generate uruchamia się po wygenerowaniu kodu, post-modify po modyfikacji.

Główna użyteczność: czyszczenie, formatowanie lub walidacja wyniku. To idealny moment na automatyczne formatowanie wygenerowanego kodu, uruchomienie testów w celu sprawdzenia, czy wszystko działa, lub aktualizację dokumentacji.

Event-hooks: reagowanie na zdarzenia

Event-hooks wyzwalają się na określone zdarzenia, takie jak otwarcie projektu (on-open), jego zamknięcie (on-close) lub wykrycie błędu (on-error).

Główna użyteczność: zarządzanie cyklem życia projektu. Możesz automatycznie załadować swoje preferowane konfiguracje przy otwarciu, zapisać całą pracę przy zamknięciu, lub otrzymać powiadomienie w przypadku błędu.

Jak skonfigurować swój pierwszy hook (krok po kroku)

Aby skonfigurować hook, tworzysz plik .claude-hooks.json w głównym katalogu projektu i definiujesz tam swoje automatyzacje w formacie JSON. Proces zajmuje mniej niż 5 minut, nawet jeśli nigdy wcześniej nie pracowałeś z plikami konfiguracyjnymi.

Krok 1: utworzenie pliku konfiguracyjnego

Otwórz Claude Code i wpisz następujące polecenie w zintegrowanym terminalu:

touch .claude-hooks.json

W systemie Windows użyj zamiast tego:

type nul > .claude-hooks.json

Ten plik będzie zawierać wszystkie Twoje reguły automatyzacji. Punkt na początku nazwy czyni go niewidocznym w eksploratorze plików domyślnie, to jest normalne.

Krok 2: zdefiniowanie pierwszej reguły

Otwórz plik .claude-hooks.json i wklej tę podstawową konfigurację:

{
  "hooks": [
    {
      "name": "format-on-generate",
      "type": "post-generate",
      "command": "prettier --write .",
      "enabled": true
    }
  ]
}

Ten hook automatycznie formatuje Twój kod po każdym wygenerowaniu. Rozłóżmy każdą linię:

  • name: nazwa, którą dajesz swojemu hookowi (wybierz opisową nazwę)
  • type: moment, w którym hook się wyzwala
  • command: polecenie do wykonania (tutaj Prettier formatuje Twój kod)
  • enabled: aktywuje lub dezaktywuje hook bez jego usuwania

Krok 3: testowanie Twojego hooka

Poproś Claude Code o wygenerowanie prostego pliku:

Utwórz plik test.js z funkcją, która dodaje dwie liczby

Jeśli Twój hook działa, zobaczysz wiadomość w terminalu wskazującą, że Prettier sformatował plik. Wygenerowany kod będzie automatycznie sformatowany zgodnie ze standardami jakości.

Krok 4: dostosowanie do swoich potrzeb

Możesz tymczasowo dezaktywować hook, zmieniając "enabled": true na "enabled": false. Przydatne, gdy chcesz coś szybko przetestować bez automatyzacji.

Aby dodać wiele hooks, oddziel je przecinkami w tablicy hooks:

{
  "hooks": [
    {
      "name": "hook1",
      ...
    },
    {
      "name": "hook2",
      ...
    }
  ]
}

5 przykładów hooks gotowych do użycia dla początkujących

Oto pięć konfiguracji hooks, które możesz skopiować i wkleić bezpośrednio do pliku .claude-hooks.json, aby zautomatyzować najczęstsze zadania. Każdy przykład jest skomentowany, abyś zrozumiał, co robi.

1. Automatyczne zapisywanie kopii przed każdą modyfikacją

{
  "name": "backup-before-modify",
  "type": "pre-modify",
  "command": "cp -r . ../backup-$(date +%Y%m%d-%H%M%S)",
  "enabled": true
}

Ten hook tworzy pełną kopię Twojego projektu w datowanym folderze przed każdą modyfikacją. Jeśli Claude Code popełni błąd, możesz łatwo wrócić do poprzedniej wersji. W systemie Windows zamień polecenie na xcopy . ..\backup-%date:~-4,4%%date:~-7,2%%date:~-10,2%-%time:~0,2%%time:~3,2%%time:~6,2% /E /I.

2. Sprawdzanie składni po wygenerowaniu kodu

{
  "name": "check-syntax",
  "type": "post-generate",
  "command": "node --check **/*.js",
  "enabled": true
}

Ten hook sprawdza, czy wygenerowany kod JavaScript nie zawiera błędów składni. Jeśli błąd zostanie wykryty, otrzymasz alert przed kontynuacją. Dostosuj rozszerzenie do swojego języka (.py dla Pythona, .rb dla Ruby'ego itp.).

3. Czyszczenie plików tymczasowych przy zamknięciu

{
  "name": "cleanup-on-close",
  "type": "on-close",
  "command": "find . -name '*.tmp' -delete && find . -name '.DS_Store' -delete",
  "enabled": true
}

Ten hook automatycznie usuwa pliki tymczasowe i ukryte pliki systemowe po zamknięciu projektu. Twój folder pozostaje czysty bez wysiłku. W systemie Windows użyj del /s /q *.tmp.

4. Uruchamianie testów po każdej modyfikacji

{
  "name": "run-tests",
  "type": "post-modify",
  "command": "npm test",
  "enabled": true
}

Ten hook automatycznie wykonuje Twoje testy po każdej modyfikacji kodu. Natychmiast wiesz, czy coś się zepsuło. Zamień npm test na polecenie testowania Twojego projektu (pytest dla Pythona, ruby test.rb dla Ruby'ego itp.).

5. Załadowanie preferencji przy otwarciu projektu

{
  "name": "load-preferences",
  "type": "on-open",
  "command": "source ./.env && echo 'Środowisko załadowane'",
  "enabled": true
}

Ten hook automatycznie ładuje Twoje zmienne środowiskowe i konfiguracje osobiste po otwarciu projektu. Nie musisz ich konfigurować ręcznie przy każdej sesji.

Zarządzanie błędami i debugowanie Twoich hooks

Gdy hook nie działa, Claude Code wyświetla komunikat o błędzie w terminalu, który Cię prowadzi do rozwiązania. Najczęstsze problemy są łatwe do rozwiązania, gdy wiesz, gdzie szukać.

Błąd: "Command not found"

Ta wiadomość oznacza, że polecenie, które próbujesz wykonać, nie jest zainstalowane na Twoim komputerze. Na przykład, jeśli Twój hook używa prettier, ale go nie zainstalowałeś, zobaczysz ten błąd.

Rozwiązanie: zainstaluj brakujące narzędzie. Dla Prettier wpisz npm install -g prettier w terminalu. Dla innych narzędzi sprawdź ich oficjalną dokumentację instalacji.

Błąd: "Permission denied"

Twój system operacyjny blokuje wykonanie polecenia ze względów bezpieczeństwa.

Rozwiązanie: dodaj uprawnienia do wykonania skryptu. Na macOS i Linux użyj chmod +x nazwa-skryptu. W systemie Windows uruchom Claude Code jako administrator (prawy klik > "Uruchom jako administrator").

Błąd: "Hook timeout"

Twój hook zajmuje zbyt dużo czasu na wykonanie i Claude Code go automatycznie zatrzymał. Domyślny limit to 30 sekund.

Rozwiązanie: zoptymalizuj swoje polecenie, aby było szybsze, lub zwiększ limit czasu, dodając "timeout": 60 (w sekundach) do konfiguracji hooka.

Debugowanie za pomocą logów

Aktywuj tryb verbose, aby zobaczyć dokładnie, co robi każdy hook:

{
  "hooks": [...],
  "verbose": true
}

Claude Code wyświetli wtedy każdy krok wykonania w terminalu, co pozwoli Ci znaleźć, gdzie coś się zacina.

Testowanie hooka indywidualnie

Zamiast testować hook w rzeczywistej sytuacji, uruchom go ręcznie w terminalu, aby sprawdzić, czy działa:

polecenie-twojego-hooka

Jeśli polecenie działa samodzielnie, ale nie w hooku, problem prawdopodobnie wynika ze ścieżki dostępu lub uprawnień.

Dobre praktyki dla efektywnych hooks

Zacznij prosto z jednym lub dwoma hooks, a następnie dodawaj je stopniowo, gdy opanujesz podstawy. System automatyzacji zbyt złożony od początku staje się trudny do utrzymania i debugowania.

Utrzymuj swoje hooks szybkie: polecenie, które zajmuje więcej niż 5 sekund, spowalnia Twój workflow zamiast go przyspieszać. Jeśli musisz wykonać długie zadania, używaj ich na rzadkich zdarzeniach, takich jak on-close, zamiast na każdej modyfikacji.

Dokumentuj swoje hooks w pliku konfiguracyjnym jasnymi komentarzami. JSON nie obsługuje natywnie komentarzy, ale możesz dodać pole "description" w każdym hooku:

{
  "name": "format-code",
  "description": "Automatycznie formatuje kod za pomocą Prettier po wygenerowaniu",
  "type": "post-generate",
  ...
}

Wersjonuj swój plik .claude-hooks.json za pomocą Git, aby udostępnić swoje automatyzacje zespołowi lub znaleźć je w innych projektach. Po prostu dodaj plik do repozytorium Git jak każdy inny plik konfiguracyjny.

Twórz hooks specyficzne dla każdego projektu zamiast globalnych. Projekt webowy nie ma takich samych potrzeb automatyzacji co skrypt analizy danych. Jeśli mimo wszystko chcesz globalnych hooks, Claude Code pozwala Ci utworzyć plik ~/.claude-hooks.json w folderze użytkownika.

Testuj swoje hooks na projekcie testowym przed zastosowaniem ich do głównego projektu. Utwórz folder tymczasowy, skopiuj swój plik konfiguracyjny i sprawdź, czy wszystko działa jak powinno.

Jeśli chcesz pójść dalej z Claude Code, zapoznaj się z naszym przewodnikiem dotyczącym 20 niezbędnych poleceń, aby połączyć hooks z zaawansowanymi poleceniami. Możesz też zapoznać się z naszym kompleksowym poradnikiem dla początkujących, który obejmuje wszystkie aspekty narzędzia.

Hooks stają się naprawdę potężne, gdy łączysz je z innymi funkcjami Claude Code. Na przykład możesz utworzyć hook, który automatycznie uruchamia zdefiniowane przez Ciebie polecenie niestandardowe, lub który wyzwala sekwencję akcji w łańcuchu.

Jeśli dopiero zaczynasz z AI i automatyzacją, nasz artykuł Nauka AI: od czego zacząć da Ci przegląd umiejętności do rozwinięcia. Hooks to doskonałe wprowadzenie do koncepcji automatyzacji, kluczowej umiejętności w nowoczesnym programowaniu.

Podsumowanie

Hooks Claude Code zamieniają powtarzalne zadania ręczne w automatyzacje działające w tle. Właśnie nauczyłeś się tworzyć plik konfiguracyjny, definiować reguły automatyzacji i rozwiązywać typowe problemy. Zacznij od prostego hooka, takiego jak automatyczne formatowanie, przetestuj go na małym projekcie, a następnie stopniowo dodawaj inne automatyzacje zgodnie ze swoimi potrzebami. Celem jest zaoszczędzenie czasu na zadaniach technicznych, aby skupić się na nauce i tworzeniu.