Brzi sažetak: Claude Code kuke su skriptovi za automatizaciju koji se izvršavaju u određenim fazama životnog ciklusa tokom sesija kodiranja sa AI, omogućavajući programerima da pokreću prilagođene komande, validiraju akcije, formatiraju kod, šalju obaveštenja i primenjuju pravila projekta. Ove kuke se integrišu sa Claude-ovim radnim tokom putem događaja kao što su SessionStart, PreToolUse i PostToolUse, podržavajući obrasce izvršavanja zasnovane na komandama, HTTP-u i upitima sa podesivim vremenskim ograničenjima i ponašanjem kodova izlaska.
Claude Code-ov sistem kuka transformiše AI asistenta za kodiranje iz korisnog alata u potpuno automatizovano razvojno okruženje. Većina programera ne shvata stepen kontrole dostupne kroz kuke.
Evo stvari – kuke nisu samo za pokretanje skriptova nakon uređivanja datoteka. Pružaju tačke presecanja kroz ceo proces donošenja odluka Claude-a. Pre nego što izvrši komandu. Nakon što poziv alata ne uspe. Kada mu zatreba dozvola. Čak i pre obrade korisničkih upita.
Ovaj vodič pokriva sve što zvanična dokumentacija pruža, plus praktične obrasce koje diskusije zajednice otkrivaju da zapravo rade u proizvodnim okruženjima.
Šta Claude Code kuke zapravo rade
Prema zvaničnoj Claude Code dokumentaciji, kuke su korisnički definisane shell komande, HTTP endpoint-i ili prompt injekcije koje se izvršavaju u određenim tačkama Claude Code životnog ciklusa. One primaju strukturirani JSON unos preko stdin-a i kontrolišu radni tok kroz kodove izlaska ili HTTP odgovore.
Automatizacija ide dublje nego što većina vodiča sugeriše. Kuke mogu potpuno blokirati izvršavanje alata, ubaciti dodatni kontekst u Claude-ovo rezonovanje, pokrenuti spoljne servise i primeniti pravila validacije koje Claude mora da poštuje.
Postoje tri osnovna tipa kuka:
- Kuke za komande: Shell skriptovi koji komuniciraju putem stdout-a, stderr-a i kodova izlaska
- HTTP kuke: Udaljeni endpoint-i koji primaju POST zahteve i vraćaju JSON odgovore
- Prompt kuke: Dinamička uputstva ubacena u Claude-ov kontekst na specifičnim događajima
Svaki tip služi različitim obrascima automatizacije. Kuke za komande obrađuju lokalnu validaciju i formatiranje. HTTP kuke se integrišu sa spoljnim servisima i bazama podataka. Prompt kuke menjaju Claude-ovo ponašanje bez spoljnih procesa.
Životni ciklus kuka i sistem događaja
Zvanična dokumentacija definiše više događaja kuka (SessionStart, UserPromptSubmit, PreToolUse, PermissionRequest, PostToolUse, PostToolUseFailure, Notification i drugi) koji se aktiviraju tokom Claude Code toka izvršavanja. Razumevanje kada se svaki aktivira određuje kakva automatizacija postaje moguća.

| Događaj | Kada se aktivira | Može da blokira |
|---|---|---|
| SessionStart | Kada sesija počne ili se nastavi | Ne |
| UserPromptSubmit | Kada pošaljete upit, pre nego što ga Claude obradi | Da |
| PreToolUse | Pre nego što se alat izvrši | Da |
| PermissionRequest | Kada se pojavi dijalog za dozvolu | Da |
| PostToolUse | Nakon što se alat uspešno izvrši | Ne |
| PostToolUseFailure | Nakon što se alat ne uspešno izvrši | Ne |
| Notification | Kada Claude Code pošalje obaveštenje | Ne |
| SubmitMessage | Kada Claude pošalje poruku korisniku | Ne |
| ContextCompaction | Kada se prozor konteksta približi limitima | Ne |
Sposobnost blokiranja je najvažnija. PreToolUse kuke mogu sprečiti opasne operacije pre nego što se one izvrše. Kod izlaza 1 blokira akciju. Kod izlaza 0 dozvoljava je. Kod izlaza 2 tera Claude-a da ponovo razmotri.
Ali čekajte. PostToolUse kuke ne mogu poništiti akcije jer se alat već izvršio. Ovo ograničenje oblikuje kako se logika validacije struktuira. Kritičke provere pripadaju PreToolUse-u. Čišćenje i formatiranje pripadaju PostToolUse-u.

Pregledajte AI alatke sa pogodnostima tokom podešavanja Claude Code-a
Ako radite sa Claude Code kukama, možda birate i druge AI alatke oko vašeg radnog toka. Get AI Perks prikuplja početne kredite i popuste na softver za AI i cloud alatke na jednom mestu. Platforma uključuje preko 200 ponuda, sa uslovima pogodnosti i uputstvima za preuzimanje za svaku od njih.
Tražite pogodnosti za Claude ili druge AI alatke?
Pogledajte Get AI Perks da biste:
- pregledali ponude za Claude i druge AI alatke
- uporedili uslove pogodnosti pre apliciranja
- pronašli početne popuste za ceo vaš set alatki
👉 Posetite Get AI Perks da biste istražili trenutne pogodnosti za AI softver.
Konfiguracija i struktura datoteka
Kuke se definišu u datoteci .claude/settings.json unutar projekta. Šema konfiguracije podržava globalne kuke i matcher-e specifične za alatke koji filtriraju kada se kuke izvršavaju.
Osnovna struktura kuke za komande:
| { “hooks”: [ { “event”: “PostToolUse”, “command”: “prettier –write”, “args”: [“${file}”] } ] } |
Promenljiva ${file} se proširuje na stvarnu putanju datoteke iz ulaza alatke. Prema zvaničnoj dokumentaciji, kuke podržavaju ova proširenja promenljivih u poljima command i args.
Hijerarhija lokacija kuka
Claude Code proverava više lokacija za definicije kuka, sa jasnim redosledom prioriteta:
- Nivo projekta: .claude/settings.json u trenutnom radnom prostoru
- Nivo korisnika: ~/.claude/settings.json za sve sesije
- Obezbeđeno od strane dodatka: Kuke upakovane sa instaliranim dodacima
Kuke na nivou projekta nadjačavaju korisničke kuke za isti događaj. Ovo omogućava pravila formatiranja specifična za projekat, istovremeno održavajući globalne rukovaoce obaveštenja.
Matcher obrasci za selektivno izvršavanje
Sistem matcher-a filtrira kuke za specifične alatke ili uslove. Bez matcher-a, kuke se aktiviraju za svako pojavljivanje njihovog događaja.
| { “hooks”: [ { “event”: “PreToolUse”, “matcher”: { “toolName”: “edit_file”, “pathPattern”: “src/**/*.ts” }, “command”: “./scripts/validate-typescript.sh” } ] } |
Polje pathPattern prihvata glob sintaksu. Polje toolName se podudara sa Claude-ovim ugrađenim alatkama kao što su edit_file, execute_command, read_file i create_directory.
Diskusije zajednice otkrivaju da kombinacije matcher-a rade po AND logici. Svi navedeni matcher-i moraju da se podudaraju da bi se kuka izvršila.
Kuke za komande: Integracija shell skriptova
Kuke za komande izvršavaju shell komande ili skriptove sa strukturiranim JSON unosom. One predstavljaju najčešći tip kuka za lokalnu automatizaciju.
Zvanična dokumentacija navodi da kuke za komande primaju JSON preko stdin-a sa ovom strukturom:
| { “event”: “PreToolUse”, “toolName”: “edit_file”, “toolInput”: { “path”: “src/app.ts”, “content”: “…” }, “sessionId”: “abc123”, “turnId”: “turn-456” }Skriptovi parsiraju ovaj unos da bi doneli odluke. Python validacioni kuka bi mogao izgledati ovako:#!/usr/bin/env python3 import sys import json input_data = json.load(sys.stdin) tool_input = input_data.get(‘toolInput’, {}) file_path = tool_input.get(‘path’, ”) if file_path.startswith(‘protected/’): print(“Cannot edit protected files”, file=sys.stderr) sys.exit(1) sys.exit(0) |
Kod izlaza 0 dozvoljava operaciju. Kod izlaza 1 je blokira i prikazuje stderr poruku Claude-u. Kod izlaza 2 pokreće specijalno ponašanje u zavisnosti od događaja.
Ponašanje koda izlaza 2
Prema zvaničnoj referentnoj dokumentaciji kuka, kod izlaza 2 ima značenje specifično za događaj (PreToolUse: blokira i traži ponovno razmatranje; UserPromptSubmit: pruža kontekst bez blokiranja; PermissionRequest: blokira dozvolu):
- PreToolUse: Blokira alat i tera Claude-a da ponovo razmotri sa stderr porukom kao kontekstom
- UserPromptSubmit: Pruža stderr izlaz kao dodatni kontekst bez blokiranja
- PermissionRequest: Blokira dodelu dozvole
Ovo stvara srednji put između tvrdog blokiranja i dozvoljavanja. Claude prima povratne informacije o tome zašto akcija može biti problematična i može prilagoditi svoj pristup.
Asinhrono kuke za komande
Zastavica async: true pokreće kuke u pozadini bez blokiranja Claude-ovog radnog toka. Ovo je važno za spore operacije kao što su obaveštenja o implementaciji ili prikupljanje metrika.
| { “event”: “PostToolUse”, “matcher”: { “toolName”: “execute_command” }, “command”: “./scripts/log-to-analytics.sh”, “async”: true, “timeout”: 30 } |
Kada se aktivira async kuka, Claude Code pokreće proces i nastavlja odmah. Polje timeout postavlja maksimalno vreme izvršavanja u sekundama. Ako nije navedeno, async kuke koriste podrazumevani timeout od 10 minuta.
Iskreno govoreći: async kuke ne mogu blokirati operacije jer se izvršavaju nakon što Claude nastavi. One rade za logovanje, obaveštenja i čišćenje – ne za validaciju.
HTTP kuke: Integracija spoljnih servisa
HTTP kuke šalju JSON payload-ove na udaljene endpoint-e i parsiraju odgovore za kontrolu odluka. One omogućavaju integraciju sa servisima za validaciju, bazama podataka i alatkama trećih strana.
Osnovna konfiguracija HTTP kuka:
| { “event”: “PreToolUse”, “url”: “api.example.com/validate”, “headers”: { “Authorization”: “Bearer ${API_TOKEN}” }, “timeout”: 5 } |
Struktura payload-a odgovara ulazu kuka za komande, ali stiže kao HTTP POST telo. Odgovor određuje sledeću Claude-ovu akciju.
Obrada HTTP odgovora
Prema zvaničnoj dokumentaciji, HTTP kuke tumače odgovore na osnovu statusnog koda i sadržaja tela:
| Statusni kod | Efekat | Izvor poruke |
|---|---|---|
| 200 | Dozvoli operaciju | Telo odgovora (opciono) |
| 400 | Blokiraj operaciju | Telo odgovora prikazano Claude-u |
| 500 | Greška kuke, dozvoli operaciju | Logovano, ali nije prikazano Claude-u |
| Ostalo | Dozvoli operaciju | Greška kuke ne blokira radni tok |
Telo odgovora može sadržati polje poruke koje Claude vidi kao kontekst. Ovo omogućava servisima za validaciju da objasne zašto je operacija blokirana.
Interpolaicja promenljivih okruženja
HTTP kuke podržavaju sintaksu ${VAR} u url, headers i drugim string poljima. Promenljive se proširuju iz okruženja u kojem Claude Code radi.
Prema zvaničnoj MCP dokumentaciji, proširenje promenljivih okruženja uključuje podrazumevanu rezervnu sintaksu: ${VAR:-default} se proširuje na VAR ako je postavljeno, inače koristi podrazumevanu vrednost.
Bezbednosno ograničenje: Prema GitHub issue #28044, HTTP kuke mogu pristupiti samo promenljivim okruženja eksplicitno navedenim u polju za konfiguraciju allowedEnvVars. Ovo sprečava slučajno izlaganje poverljivih podataka.
Prompt kuke: Ubacivanje konteksta
Prompt kuke ubacuju dinamička uputstva u Claude-ov kontekst na specifičnim događajima. One menjaju ponašanje bez spoljnih procesa ili API poziva.
| { “event”: “SessionStart”, “prompt”: “You are working on a TypeScript project. Always use strict null checks and prefer async/await over promises.” } |
Ubrizgani tekst postaje deo Claude-ovih sistemskih uputstava za tu sesiju. Prompt kuke takođe mogu koristiti šablonske promenljive koje se proširuju na osnovu podataka događaja.
Generisanje dinamičkih promptova
Prema zvaničnoj dokumentaciji, prompt kuke podržavaju polja komandi koje generišu dinamičke promptove:
| { “event”: “ContextCompaction”, “type”: “prompt”, “command”: “./scripts/generate-context-summary.sh” } |
Komanda prima standardni JSON unos preko stdin-a i izlazni tekst prompta šalje na stdout. Ovo omogućava generisanje uputstava svesnih konteksta na osnovu stanja projekta.
Kuke zasnovane na agentima
Kuke za agente specificiraju podagenta koji obrađuje događaj umesto direktne prompt injekcije. Podagent prima kontekst o događaju i može da izvrši višestepeno rezonovanje.
| { “event”: “PostToolUseFailure”, “agent”: “debugger”, “agentPrompt”: “A tool call failed. Analyze the error and suggest fixes.” } |
Navedeni podagent mora biti definisan u konfiguraciji projekta. Kuke za agente omogućavaju složenu logiku odluka koju jednostavna prompt injekcija ne može da pruži.
Praktični obrasci kuka
Diskusije zajednice i zvanični primeri otkrivaju specifične obrasce automatizacije koji pouzdano rade u proizvodnji.
Automatsko formatiranje koda nakon uređivanja
Najčešći obrazac automatski formatira kod nakon što Claude uređuje datoteke:
| { “event”: “PostToolUse”, “matcher”: { “toolName”: “edit_file”, “pathPattern”: “**/*.{js,ts,jsx,tsx}” }, “command”: “prettier”, “args”: [“–write”, “${toolInput.path}”] } |
Promenljiva ${toolInput.path} se proširuje na putanju uređene datoteke. PostToolUse osigurava da se formatiranje dešava nakon uspešnih uređivanja, ali ne blokira Claude-ov radni tok.
Blokiranje modifikacija zaštićenih datoteka
PreToolUse kuke primenjuju pravila zaštite datoteka:
| { “event”: “PreToolUse”, “matcher”: { “toolName”: “edit_file” }, “command”: “./scripts/check-protected.sh” } |
Skript proverava ciljnu putanju u odnosu na zaštićene obrasce i izlazi sa kodom 1 da bi blokirao zabranjena uređivanja.
Dobijajte obaveštenja kada Claudeu zatreba unos
Prema zvaničnom vodiču za radni tok, Notification kuke mogu pokrenuti desktop upozorenja ili slati poruke spoljnim servisima:
| { “event”: “Notification”, “command”: “osascript”, “args”: [“-e”, “display notification \”${message}\” with title \”Claude Code\””] } |
Ovo se aktivira kad god Claude Code pošalje obaveštenje, uključujući čekanje na unos korisnika ili nakon završetka zadatka.
Ponovno ubacivanje konteksta nakon sažimanja
ContextCompaction kuke vraćaju važan kontekst kada se razgovorni prozor popuni:
| { “event”: “ContextCompaction”, “type”: “prompt”, “command”: “cat .claude/critical-context.md” } |
Izlaz komande se ubacuje nazad u Claude-ov kontekst nakon što sažimanje ukloni starije poruke. Ovo sprečava gubitak kritičnih uputstava specifičnih za projekat.
Revizija promena konfiguracije
Pratite kada Claude menja konfiguracione datoteke:
| { “event”: “PostToolUse”, “matcher”: { “toolName”: “edit_file”, “pathPattern”: “**/{package.json,.env,*.config.*}” }, “command”: “git”, “args”: [“add”, “${toolInput.path}”], “async”: true } |
Asinhrono izvršavanje sprečava blokiranje Claude-a dok se git operacije završavaju. Ovo stvara revizijski zapis promena konfiguracije bez ručnog dodavanja.
JSON izlaz i kontrola odluka
Kuke za komande mogu da generišu strukturirani JSON kako bi pružile detaljne povratne informacije izvan jednostavnih kodova izlaza. Prema zvaničnoj referenci, JSON izlaz omogućava odgovore sa više polja koje Claude tumači za donošenje odluka.
| { “allowed”: false, “message”: “This file is protected by team policy”, “suggestion”: “Create a new file in src/features/ instead” } |
Polje allowed kontroliše da li se operacija nastavlja. Poruka se prikazuje Claude-u kao kontekst. Polje suggestion pruža alternativne pristupe.
Da bi kuke generisale JSON, moraju:
- Napisati validan JSON na stdout
- Izaći sa kodom 0 (za dozvoljeno) ili 1 (za blokirano)
- Uključiti najmanje polje boolean allowed
Claude Code parsira JSON i koristi ga za poboljšanje povratne petlje. Kodovi izlaza i dalje određuju primarnu odluku, ali JSON pruža bogatiji kontekst.
Referenca polja unosa kuka
Sve kuke primaju JSON objekat preko stdin-a sa zajedničkim poljima plus podacima specifičnim za događaj. Razumevanje kompletne šeme omogućava sofisticiraniju logiku kuka.

Zajednička polja unosa
Svaka kuka prima ova osnovna polja:
- event: Naziv događaja kuke (npr. “PreToolUse”)
- sessionId: Jedinstveni identifikator trenutne Claude sesije
- turnId: Identifikator trenutnog okreta razgovora
- timestamp: ISO 8601 vremenska oznaka kada se događaj aktivirao
Polja za događaje alata
PreToolUse, PostToolUse i PostToolUseFailure događaji uključuju:
- toolName: Naziv alata koji se poziva (edit_file, execute_command, itd.)
- toolInput: Objekat koji sadrži ulazne parametre alata
- toolResponse: Izlazni podaci alata (samo PostToolUse)
- error: Detalji greške uključujući poruku i kod (samo PostToolUseFailure)
Struktura toolInput varira u zavisnosti od alata. Za edit_file sadrži putanju i sadržaj. Za execute_command sadrži komandu i argumente.
Polja događaja dozvole
PermissionRequest događaji uključuju:
- permissionType: Tip tražene dozvole (file_write, command_execute, itd.)
- requestedAction: Specifična akcija koja zahteva dozvolu
- resourcePath: Putanja datoteke ili identifikator resursa na koji se utiče
MCP alatne kuke
Prema zvaničnoj referenci kuka, kuke se mogu podudarati sa alatkama Model Context Protocol (MCP) koristeći polje matcher-a mcpTool. Ovo omogućava izvršavanje kuka kada Claude koristi spoljne alatke koje obezbeđuju MCP serveri.
| { “event”: “PreToolUse”, “matcher”: { “mcpTool”: “database/query” }, “command”: “./scripts/validate-sql.sh” } |
Vrednost mcpTool podudara se sa imenom alata u formatu server-name/tool-name. Ovo omogućava logiku validacije za SQL upite, API pozive ili druge spoljne operacije.
Zahtevi za funkcije na GitHub-u ukazuju na rastuće interesovanje za dublju MCP integraciju, uključujući kuke koje mogu da pregledaju obaveštenja MCP servera i reaguju na spoljne događaje.
Bezbednosna razmatranja
Kuke se izvršavaju sa istim dozvolama kao i sam Claude Code. Ovo stvara bezbednosne implikacije za okruženja sa više korisnika i deljene konfiguracije.
Sandbox za izvršavanje komandi
Prema GitHub issue #28044, HTTP kuke prolaze kroz sandbox proxy koji ograničava mrežni pristup i filtrira promenljive okruženja. Kuke za komande nemaju takva ograničenja – izvršavaju se sa punim shell pristupom.
Dokumentacija preporučuje ove prakse:
- Nikada ne skladištite akreditive u komandama kuka
- Koristite promenljive okruženja za osetljive podatke
- Validirajte sav unos iz ${…} proširenja
- Implementirajte vremenska ograničenja za spoljne servise
- Koristite async kuke za nekritične operacije da biste sprečili blokiranje na greškama
Izolacija izvršavanja kuka
Kuke na korisničkom nivou u ~/.claude/settings.json primenjuju se na sve projekte. Ovo stvara rizike kada se radi između različitih granica poverenja. Kuke na nivou projekta nadjačavaju korisničke kuke, ali ih ne mogu potpuno onemogućiti.
Meni /hooks u Claude Code prikazuje sve aktivne kuke za trenutnu sesiju. Pregledanje ove liste pre rada na osetljivim projektima pomaže u identifikaciji potencijalnih bezbednosnih problema.
Otklanjanje grešaka i rešavanje problema
Greške kuka se ne prikazuju uvek jasno u Claude-ovom razgovoru. Zvanična dokumentacija pruža nekoliko pristupa za otklanjanje grešaka.
Logovi izvršavanja kuka
Claude Code loguje izvršavanje kuka u izlaz za debagovanje sesije. Prema vodiču za rešavanje problema, omogućavanje debagovanja logovanja otkriva:
- Koji su se matcher-i podudarali za svaki događaj
- JSON unos poslat svakoj kuki
- Stdout i stderr izlaz iz procesa kuka
- Kodovi izlaza i vreme izvršavanja
- HTTP kodovi odgovora i tela za HTTP kuke
Omogućite debagovanje logovanja postavljanjem CLAUDE_DEBUG=1 u okruženje pre pokretanja Claude Code-a.
Samostalno testiranje kuka
Kuke za komande se mogu testirati izvan Claude Code-a ručnim konstruisanjem JSON unosa:
| echo ‘{“event”:”PreToolUse”,”toolName”:”edit_file”,”toolInput”:{“path”:”test.txt”}}’ | ./scripts/my-hook.sh |
Ovo validira logiku kuke bez pokretanja stvarnih Claude operacija. Kod izlaza i stdout/stderr izlaz bi trebalo da odgovaraju očekivanom ponašanju.
Česte greške kuka
Diskusije zajednice identifikuju ove česte probleme:
- Greške vremenskog ograničenja: Podrazumevani 10-minutni timeout prekratak za spore operacije – povećajte sa poljem timeout
- Greške proširenja puta: Promenljive kao što je ${file} nedefinisane za događaje koji ne uključuju kontekst datoteke
- Greške dozvole: Skriptovima kuka nedostaju dozvole za izvršavanje – pokrenite chmod +x script.sh
- Greške parsiranja JSON-a: Neispravan JSON izlaz iz kuka – validirajte sa jq pre vraćanja
- Nedostupnost promenljivih okruženja: Promenljive nisu propagirane u proces kuke – proverite okruženje Claude Code-a
Implikacije performansi kuka
Sinhrono kuke blokiraju Claude-ov radni tok do završetka. Podrazumevani timeout od 10 minuta sprečava beskonačno zamrzavanje, ali čak i kratka kašnjenja se sabiraju kroz više operacija.
Praktičari izveštavaju da jednostavne kuke za validaciju imaju neznatan uticaj na performanse. Kuke za formatiranje datoteka izazivaju primetan, ali prihvatljiv uticaj na performanse. Pozivi spoljnih API-ja mogu stvoriti trenje u radnom toku. Teške računarske operacije imaju koristi od asinhronog izvršavanja.
Grupisanje kuka
Više kuka se može podudarati sa istim događajem. Prema referentnoj dokumentaciji, kuke se izvršavaju sekvencijalno po redosledu definisanja. Ako bilo koja kuka blokira operaciju, preostale kuke se ne izvršavaju.
Ovo je važno za performanse. Pet sinhronih kuka od po 200 ms dodaje jednu sekundu po događaju. Kombinovanje povezanih validacija u jednu kuku smanjuje režiju.
Napredni obrasci
Osim osnovne automatizacije, kuke omogućavaju sofisticiranu prilagodbu radnog toka.
Lančane kuke sa stanjem
Kuke mogu održavati stanje između izvršavanja koristeći datoteke ili baze podataka. PostToolUse kuka može da snimi uspešne operacije koje PreToolUse kuka kasnije validira:
| #!/bin/bash # Record successful edits echo “${toolInput.path}” >> .claude/edit-history.txt |
Prateća PreToolUse kuka bi mogla da proveri ovu istoriju kako bi sprečila suvišne operacije ili primenila ograničenja redosleda.
Aktivacija kuka na osnovu uslova
Promenljive okruženja kontrolišu ponašanje kuka u runtime-u. Postavljanje CLAUDE_SKIP_HOOKS=1 onemogućava kuke za hitne situacije.
Same kuke mogu proveravati zastavice okruženja:
| #!/bin/bash if [ “$STRICT_MODE” = “1” ]; then # Apply strict validation exit 1 fi exit 0 |
Ovo omogućava ponašanje u razvojnom režimu naspram proizvodnom režimu bez promena konfiguracije.
Višestepena validacija
PreToolUse kuke mogu implementirati višeslojnu validaciju gde kod izlaza 2 omogućava Claude-u da nastavi sa upozorenjima:
- Tvrde greške (kod 1): Blokiraj opasne operacije
- Blaga upozorenja (kod 2): Upozori Claude-a da ponovo razmotri
- Prođi sa kontekstom (kod 0 + JSON): Pruži dodatne informacije
Ovo stvara spektar validacije suptilniji od binarnog dozvoli/odbij.
Integracija sa CI/CD
Prema zvaničnoj dokumentaciji o integraciji platforme, Claude Code se pokreće u CI/CD okruženjima za automatsku reviziju koda i trijažu problema. Kuke proširuju ovu automatizaciju.
GitHub Actions radni tokovi mogu definisati kuke koje primenjuju timske politike tokom automatskih sesija:
| – name: Run Claude Code with strict hooks env: STRICT_MODE: 1 run: | claude “Review this PR and suggest improvements” |
Zastavica STRICT_MODE aktivira uslovnu logiku validacije u skriptovima kuka. Ovo osigurava da automatske sesije prate rigoroznija pravila od interaktivnog razvoja.
Generisanje revizijskog zapisa
PostToolUse kuke u CI okruženjima kreiraju detaljne revizijske logove svih Claude operacija:
| { “event”: “PostToolUse”, “command”: “./scripts/log-to-database.sh”, “async”: true } |
Logovanje u pozadini ne utiče na performanse, ali pruža potpunu istoriju operacija za usklađenost i otklanjanje grešaka.
Meni /hooks
Claude Code pruža `/hooks` komandu koja prikazuje sve aktivne kuke za trenutnu sesiju. Prema zvaničnoj dokumentaciji, ovaj meni prikazuje:
- Tip događaja kuke
- Matcher obrasci
- Komanda ili URL endpoint
- Da li se kuka izvršava asinhrono
- Izvor konfiguracije (projekat, korisnik ili dodatak)
Izbor kuke prikazuje njenu potpunu konfiguraciju i omogućava privremeno onemogućavanje za trenutnu sesiju.
Onemogućavanje ili uklanjanje kuka
Kuke se mogu onemogućiti bez uklanjanja konfiguracije dodavanjem “enabled”: false u definiciji kuke. Ovo čuva konfiguraciju, a sprečava izvršavanje.
Da biste trajno uklonili kuku, izbrišite njen unos iz odgovarajuće datoteke settings.json. Promene stupaju na snagu pri sledećem ponovnom pokretanju sesije ili kada se pokrene `/reload`.
Kuke u veštinama i agentima
Prema zvaničnoj dokumentaciji, kuke definisane unutar konfiguracija veština ili podagenata primenjuju se samo kada se ta veština ili agent izvršava. Ovo omogućava specijalizovanu automatizaciju za specifične radne tokove.
Podagent za debagovanje može uključivati kuke koje loguju sve pozive alata:
| { “name”: “debugger”, “hooks”: [ { “event”: “PostToolUse”, “command”: “./scripts/log-debug.sh”, “async”: true } ] } |
Ove kuke se aktiviraju samo tokom sesija debugger agenta, ne tokom normalnog Claude Code rada.
Reference skriptova po putanji
Komande kuka podržavaju i relativne i apsolutne putanje. Relativne putanje se rešavaju iz korena projekta gde se Claude Code pokreće.
Najbolje prakse iz diskusija zajednice:
- Skladištite skriptove kuka u direktorijumu .claude/hooks/
- Koristite deskriptivna imena: validate-typescript.sh umesto hook1.sh
- Učinite skriptove izvršnim: chmod +x .claude/hooks/*.sh
- Uključite shebang liniju: #!/usr/bin/env bash ili #!/usr/bin/env python3
- Dodajte rukovanje greškama sa set -e u bash skriptovima
Buduće mogućnosti kuka
Zahtevi za funkcije na GitHub-u otkrivaju planirana i tražena poboljšanja kuka:
- Inline skript kuke: Definišite logiku kuke direktno u settings.json bez eksternih datoteka
- MCP alatna integracija: Pozovite MCP server alatke iz kuka umesto shell komandi
- Saradnja više agenata: Kuke koje koordiniraju između Claude instanci na različitim mašinama
- Poboljšano tipiziranje: TypeScript tip definicije za ulazne/izlazne šeme kuka
Prema GitHub issue #4274, zahtev za integrisane tipove kuka (MCP alatka, inline skript, API poziv) ima za cilj pojednostavljenje konfiguracije i poboljšanje iskustva programera.
Često postavljana pitanja
Mogu li kuke sprečiti Claude da izvršava opasne komande?
Da. PreToolUse kuke mogu blokirati izvršavanje bilo kog alata izlaskom sa kodom 1. Ovo uključuje uređivanje datoteka, izvršavanje komandi i MCP alatke pozive. Kuka prima potpuni unos alata i može da validira prema bilo kom kriterijumu pre nego što dozvoli operaciju.
Kako da otklonim grešku u kuki koja ne radi?
Omogućite debagovanje logovanja sa CLAUDE_DEBUG=1 pre pokretanja Claude Code-a. Proverite logove sesije za detalje izvršavanja kuka uključujući koje kuke su se podudarile, poslati JSON unos, stdout/stderr izlaz i kodove izlaza. Testirajte kuke nezavisno tako što ćete propustiti uzorak JSON-a kroz skript kuke.
Da li kuke rade sa svim Claude Code platformama?
Kuke rade u CLI, desktop aplikaciji i VS Code ekstenziji. Prema zvaničnoj dokumentaciji, kuke se izvršavaju gde god Claude Code radi sa pristupom fajl sistemu. Pregledač-bazirani Claude i mobilne aplikacije ne podržavaju kuke zbog ograničenja sandboxing-a.
Mogu li kuke menjati Claude-ove odgovore ili ponašanje?
Prompt kuke ubacuju uputstva koja utiču na Claude-ovo ponašanje. Agent kuke delegiraju obradu događaja specijalizovanim podagentima. Međutim, kuke ne mogu direktno da izmene Claude-ov generisani tekst ili proces rezonovanja – one rade tako što pružaju kontekst i blokiraju operacije.
Koja je razlika između async i sync kuka?
Sinhrono kuke blokiraju Claude-ov radni tok do završetka ili isteka vremena. Asinhrono kuke rade u pozadini bez blokiranja. Sync kuke mogu sprečiti operacije putem kodova izlaza. Async kuke ne mogu blokirati jer Claude nastavlja pre nego što se kuka završi. Koristite async za logovanje i obaveštenja, sync za validaciju.
Kako da delim kuke sa timom?
Potvrdite datoteku .claude/settings.json u kontrolu verzija. Kuke na nivou projekta se primenjuju na sve članove tima koji kloniraju repozitorijum. Za politike na nivou organizacije, timovi mogu održavati deljenu datoteku postavki na korisničkom nivou koju članovi kopiraju u ~/.claude/settings.json.
Mogu li HTTP kuke da pozivaju interne API-je iza vatrozida?
Da, ako Claude Code radi u okruženju sa mrežnim pristupom tim API-jima. HTTP kuke prave standardne POST zahteve sa mašine koja pokreće Claude Code. Korporativni vatrozidi i VPN-ovi se primenjuju normalno. Sandbox proxy pomenut u dokumentaciji kontroliše izlaganje promenljivih okruženja, a ne mrežni routing.
Da li kuke povećavaju korišćenje tokena Claude Code-a?
Prompt kuke ubacuju tekst u Claude-ov kontekst, što troši tokene. Kuke za komande i HTTP ne utiču direktno na korišćenje tokena, ali njihov izlaz (poruke o greškama, predlozi) postaje deo konteksta razgovora. Kod izlaza 2 sa objašnjavajućim porukama dodaje više konteksta nego kod izlaza 1 sa jednostavnim blokiranjem.
Zaključak
Claude Code kuke transformišu AI asistenta iz moćnog alata u potpuno automatizovanu razvojnu platformu. Sistem događaja pruža tačke presecanja tokom celog Claude-ovog radnog toka – od inicijalizacije sesije do sažimanja konteksta.
Kuke za komande obrađuju lokalnu validaciju i formatiranje. HTTP kuke integrišu spoljne servise i baze podataka. Prompt kuke menjaju ponašanje putem ubacivanja konteksta. Zajedno, one omogućavaju obrasce automatizacije koji primenjuju timske politike, održavaju kvalitet koda i integrišu se sa postojećom razvojnom infrastrukturom.
Sistem matcher-a filtrira kuke za specifične alatke i obrasce datoteka. Kodovi izlaza i JSON izlaz kontrolišu tok odluka. Asinhrono izvršavanje sprečava blokiranje na sporim operacijama. Kompletna šema konfiguracije podržava sve, od jednostavnog automatskog formatiranja do složene višestepene validacije.
Počnite sa jednostavnim PostToolUse kukama za formatiranje koda. Dodajte PreToolUse validaciju kako se politike razvijaju. Eksperimentišite sa prompt kukama za modifikaciju ponašanja. Gradite HTTP integracije za primenu na celom timu.
Pogledajte zvaničnu Claude Code dokumentaciju za kompletnu referencu kuka i ažuriranu šemu konfiguracije kako novi kapaciteti budu objavljivani.

