Kacper Sieradziński

Claude Code4 min czytania

Hooki w Claude Code: trzy bezpieczniki, które ustawiam w każdym projekcie

Hook to zwykły skrypt, który odpala się przed akcją agenta i może ją zablokować. Pokazuję trzy bezpieczniki: blokadę rm -rf, ochronę pliku .env i kluczy API oraz powiadomienie na telefon, gdy agent czeka na decyzję.

Prompt w rodzaju „nigdy nie usuwaj plików” to prośba. Agent może ją pominąć, źle zrozumieć albo o niej zapomnieć w długiej sesji. Hook to blokada: zwykły skrypt, który uruchamia się przed akcją agenta i może ją zatrzymać, zanim cokolwiek się stanie.

Jak działa hook

Claude Code przed użyciem narzędzia (zapis pliku, komenda w terminalu) wysyła do skryptu opis tej akcji jako JSON. Skrypt czyta go i decyduje:

  • kod wyjścia 0 oznacza, że akcja przechodzi,
  • kod wyjścia 2 blokuje akcję, a komunikat ze stderr trafia do agenta, który dowiaduje się, dlaczego nie wolno.

Hooki wpisuje się w settings.json w sekcji hooks, osobno dla każdego narzędzia (matcher).

Bezpiecznik 1: blokada rm -rf

Najprostszy i najbardziej opłacalny. Skrypt sprawdza komendę, którą agent chce wykonać w terminalu, i odrzuca ją, jeśli zawiera rm -rf. Agent dostaje komunikat i szuka innej drogi, na przykład usuwa konkretny plik.

Bezpiecznik 2: ochrona .env i kluczy API

Drugi skrypt pilnuje zapisów do plików. Blokuje:

  • każdą zmianę w .claude/settings* i w pliku .env, bo agent nie powinien sam poszerzać sobie uprawnień ani grzebać w sekrecie,
  • zapis treści, która wygląda jak klucz API (wzorzec sk-… albo api_key =).

Sekrety mają zostać poza repozytorium. Ten hook to zabezpieczenie na dzień, w którym zapomnisz o tej zasadzie.

Bezpiecznik 3: powiadomienie, gdy agent czeka

Ten niczego nie blokuje. Hook na zdarzenie Notification wysyła wiadomość na telefon (przez ntfy), kiedy agent zatrzymał się i czeka na Twoją decyzję. Dzięki temu nie siedzisz przy terminalu, a długie zadanie nie stoi godzinami na pytaniu o zgodę.

Czego hooki nie załatwiają

Hook widzi tylko to, na co napiszesz regułę. Proste dopasowanie tekstu da się obejść, na przykład inną komendą usuwającą pliki, a wzorzec na klucz API nie złapie każdego sekretu. Traktuj hooki jako jedną warstwę ochrony. Do ważnych projektów dołóż kopie, git i ograniczone uprawnienia. Cudzych hooków nie podpinaj w ciemno: działają z Twoimi uprawnieniami, więc najpierw przeczytaj każdy skrypt.

Gotowe pliki

Wszystkie trzy skrypty i konfigurację settings.json znajdziesz na stronie Hooki w Claude Code: 3 bezpieczniki do skopiowania. Jest tam też instalacja w projekcie i rozdziały odcinka na YouTube.