Claude Code Hooks: Kompletni vodič (2026)

Author Avatar
Andrew
AI Perks Team
7,069
Claude Code Hooks: Kompletni vodič (2026)

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.

Claude Code hook events and their execution flow during a typical session
DogađajKada se aktiviraMože da blokira 
SessionStartKada sesija počne ili se nastaviNe
UserPromptSubmitKada pošaljete upit, pre nego što ga Claude obradiDa
PreToolUsePre nego što se alat izvršiDa
PermissionRequestKada se pojavi dijalog za dozvoluDa
PostToolUseNakon što se alat uspešno izvršiNe
PostToolUseFailureNakon što se alat ne uspešno izvršiNe
NotificationKada Claude Code pošalje obaveštenjeNe
SubmitMessageKada Claude pošalje poruku korisnikuNe
ContextCompactionKada se prozor konteksta približi limitimaNe

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:

  1. Nivo projekta: .claude/settings.json u trenutnom radnom prostoru
  2. Nivo korisnika: ~/.claude/settings.json za sve sesije
  3. 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 kodEfekatIzvor poruke 
200Dozvoli operacijuTelo odgovora (opciono)
400Blokiraj operacijuTelo odgovora prikazano Claude-u
500Greška kuke, dozvoli operacijuLogovano, ali nije prikazano Claude-u
OstaloDozvoli operacijuGreš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:

  1. Napisati validan JSON na stdout
  2. Izaći sa kodom 0 (za dozvoljeno) ili 1 (za blokirano)
  3. 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.

Hook input JSON schema showing common fields and event-specific extensions

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:

  1. Tvrde greške (kod 1): Blokiraj opasne operacije
  2. Blaga upozorenja (kod 2): Upozori Claude-a da ponovo razmotri
  3. 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.

AI Perks

AI Perks пружа приступ ексклузивним попустима, кредитима и понудама за AI алате, cloud услуге и API-је како би помогао стартапима и програмерима да уштеде новац.

AI Perks Cards

This content is for informational purposes only and may contain inaccuracies. Credit programs, amounts, and eligibility requirements change frequently. Always verify details directly with the provider.