Trumpas apibendrinimas: Claude Code kablys (hooks) yra automatizavimo scenarijai, kurie vykdomi specifiniais gyvavimo ciklo taškais AI kodavimo sesijų metu, leidžiantys kūrėjams vykdyti pasirinktinius komandas, tikrinti veiksmus, formatuoti kodą, siųsti pranešimus ir taikyti projektų taisykles. Šie kablys integruojasi su Claude darbo eiga per tokius įvykius kaip „SessionStart“, „PreToolUse“ ir „PostToolUse“, palaikydami komandų, HTTP ir raginimų pagrindu vykdomus modelius su konfigūruojamais laiko limitais ir išeigos kodo elgsena.
Claude Code kablys sistema paverčia AI kodavimo padėjėją iš naudingos priemonės į visiškai automatizuotą kūrimo aplinką. Dauguma kūrėjų nesuvokia, kokia kontrolė įmanoma per kablys.
Štai esmė – kablys ne tik leidžia vykdyti scenarijus po failų pakeitimų. Jie suteikia tarpinio taško visame Claude sprendimų priėmimo procese. Prieš vykdoma komanda. Po įrankio iškvietimo klaidos. Kai reikia leidimo. Net prieš apdorojant vartotojo raginimus.
Šiame vadove apžvelgiama viskas, ką pateikia oficiali dokumentacija, taip pat praktiniai modeliai, kuriuos bendruomenės diskusijos atskleidžia kaip veikiančius gamybos aplinkose.
Ką iš tikrųjų daro Claude Code kablys
Pagal oficialią Claude Code dokumentaciją, kablys yra vartotojo apibrėžtos komandinės eilutės komandos, HTTP galiniai taškai arba raginimų įterpimai, kurie vykdomi specifiniais Claude Code gyvavimo ciklo taškais. Jie gauna struktūrizuotą JSON įvestį per stdin ir valdo darbo eigą per išeigos kodus arba HTTP atsakymus.
Automatizavimas yra gilesnis nei dauguma vadovų siūlo. Kablys gali visiškai blokuoti įrankio vykdymą, įterpti papildomą kontekstą į Claude samprotavimą, paleisti išorinius paslaugas ir taikyti patvirtinimo taisykles, kurių Claude turi laikytis.
Yra trys pagrindiniai kablys tipai:
- Komandiniai kablys: Komandinės eilutės scenarijai, kurie bendrauja per stdout, stderr ir išeigos kodus
- HTTP kablys: Nuotoliniai galiniai taškai, kurie gauna POST užklausas ir grąžina JSON atsakymus
- Ragintuvų kablys: Dinamiškos instrukcijos, įterpiamos į Claude kontekstą specifiniais įvykiais
Kiekvienas tipas aptarnauja skirtingus automatizavimo modelius. Komandiniai kablys tvarko vietinį patvirtinimą ir formatavimą. HTTP kablys integruojasi su išorinėmis paslaugomis ir duomenų bazėmis. Ragintuvų kablys keičia Claude elgseną be išorinių procesų.
Kablys gyvavimo ciklas ir įvykių sistema
Oficiali dokumentacija apibrėžia kelis kablys įvykius (SessionStart, UserPromptSubmit, PreToolUse, PermissionRequest, PostToolUse, PostToolUseFailure, Notification ir kt.), kurie suveikia Claude Code vykdymo eigoje. Supratimas, kada kiekvienas suveikia, lemia, kokia automatizacija tampa įmanoma.

| Įvykis | Kada suveikia | Gali blokuoti |
|---|---|---|
| SessionStart | Kai prasideda arba atnaujinama sesija | Ne |
| UserPromptSubmit | Kai pateikiate raginimą, prieš Claude jį apdorojant | Taip |
| PreToolUse | Prieš įrankio iškvietimą | Taip |
| PermissionRequest | Kai pasirodo leidimo dialogas | Taip |
| PostToolUse | Po sėkmingo įrankio iškvietimo | Ne |
| PostToolUseFailure | Po įrankio iškvietimo klaidos | Ne |
| Notification | Kai Claude Code siunčia pranešimą | Ne |
| SubmitMessage | Kai Claude pateikia žinutę vartotojui | Ne |
| ContextCompaction | Kai konteksto langas artėja prie ribų | Ne |
Blokavimo galimybė yra svarbiausia. PreToolUse kablys gali užkirsti kelią pavojingoms operacijoms prieš jų įvykdymą. Išeigos kodas 1 blokuoja veiksmą. Išeigos kodas 0 leidžia jį. Išeigos kodas 2 verčia Claude persvarstyti.
Bet palaukite. PostToolUse kablys negali atšaukti veiksmų, nes įrankis jau buvo įvykdytas. Šis apribojimas lemia, kaip struktūrizuojama patvirtinimo logika. Kritiniai patikrinimai priklauso PreToolUse. Valymas ir formatavimas priklauso PostToolUse.

Naršykite AI įrankių privilegijas nustatydami Claude Code
Jei dirbate su Claude Code kablys, galbūt taip pat pasirenkate kitus AI įrankius savo darbo eigai. „Get AI Perks“ renka pradinius kreditus ir programinės įrangos nuolaidas AI ir debesų įrankiams vienoje vietoje. Platformoje yra daugiau nei 200 pasiūlymų, su privilegijų sąlygomis ir paraiškų teikimo nurodymais kiekvienam iš jų.
Ieškote Claude ar kitų AI įrankių privilegijų?
Patikrinkite „Get AI Perks“, kad galėtumėte:
- naršyti Claude ir kitų AI įrankių pasiūlymus
- palyginti privilegijų sąlygas prieš teikiant paraišką
- rasti pradinių nuolaidų jūsų įrankių visetoje
👉 Apsilankykite „Get AI Perks“, kad susipažintumėte su dabartinėmis AI programinės įrangos privilegijomis.
Konfigūracija ir failų struktūra
Kablys apibrėžiami .claude/settings.json faile projekte. Konfigūracijos schema palaiko globalius kablys ir įrankiui specifinius atitikmenis, kurie filtruoja, kada kablys vykdomi.
Pagrindinė komandinio kablys struktūra:
| { “hooks”: [ { “event”: “PostToolUse”, “command”: “prettier –write”, “args”: [“${file}”] } ] } |
${file} kintamasis išplečiamas iki faktinio failo kelio iš įrankio įvesties. Pagal oficialią dokumentaciją, kablys palaiko šiuos kintamųjų išplėtimus komandos ir argumentų laukuose.
Kablys vietos hierarchija
Claude Code tikrina kelias kablys apibrėžimo vietas su aiškia pirmumo tvarka:
- Projekto lygis: .claude/settings.json esamame darbalaukyje
- Vartotojo lygis: ~/.claude/settings.json visoms sesijoms
- Įskiepių pateiktas: kablys, supakuoti su įdiegtomis įskiepiomis
Projekto kablys pakeičia vartotojo kablys tiems patiems įvykiams. Tai leidžia specifines projektui formatavimo taisykles, išlaikant globalius pranešimų tvarkytojus.
Atitikmenų modeliai selektyviam vykdymui
Atitikmenų sistema filtruoja kablys iki specifinių įrankių ar sąlygų. Be atitikmenų, kablys suveikia kiekvieną kartą, kai įvyksta jų įvykis.
| { “hooks”: [ { “event”: “PreToolUse”, “matcher”: { “toolName”: “edit_file”, “pathPattern”: “src/**/*.ts” }, “command”: “./scripts/validate-typescript.sh” } ] } |
pathPattern laukas priima glob sintaksę. toolName laukas atitinka Claude integruotus įrankius, tokius kaip edit_file, execute_command, read_file ir create_directory.
Bendruomenės diskusijos rodo, kad atitikmenų deriniai veikia su AND logika. Visi nurodyti atitikmenys turi sutapti, kad kablys būtų įvykdytas.
Komandiniai kablys: Komandinės eilutės scenarijų integracija
Komandiniai kablys vykdo komandinės eilutės komandas ar scenarijus su struktūrizuota JSON įvestimi. Jie yra dažniausias kablys tipas vietiniam automatizavimui.
Oficiali dokumentacija nurodo, kad komandiniai kablys gauna JSON per stdin su šia struktūra:
| { “event”: “PreToolUse”, “toolName”: “edit_file”, “toolInput”: { “path”: “src/app.ts”, “content”: “…” }, “sessionId”: “abc123”, “turnId”: “turn-456” }Scenarijai analizuoja šią įvestį, kad priimtų sprendimus. Python patvirtinimo kablys galėtų atrodyti taip:#!/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(“Negalima redaguoti saugomų failų”, file=sys.stderr) sys.exit(1) sys.exit(0) |
Išeigos kodas 0 leidžia operaciją. Išeigos kodas 1 blokuoja ją ir rodo stderr žinutę Claude. Išeigos kodas 2 sukelia specialią elgseną, priklausomai nuo įvykio.
Išeigos kodo 2 elgsena
Pagal oficialią kablys nuorodos dokumentaciją, išeigos kodas 2 turi įvykiui specifinę reikšmę (PreToolUse: blokuoja ir prašo persvarstyti; UserPromptSubmit: suteikia kontekstą be blokavimo; PermissionRequest: blokuoja leidimą):
- PreToolUse: Blokuoja įrankį ir prašo Claude persvarstyti su stderr žinute kaip kontekstu
- UserPromptSubmit: Pateikia stderr išvestį kaip papildomą kontekstą be blokavimo
- PermissionRequest: Blokuoja leidimo suteikimą
Tai sukuria vidurinį kelią tarp griežto blokavimo ir leidimo. Claude gauna atsiliepimą, kodėl veiksmas gali būti problemiškas, ir gali pritaikyti savo požiūrį.
Asinchroniniai komandiniai kablys
async: true žyma vykdo kablys fone, neblokuodama Claude darbo eigos. Tai svarbu lėtoms operacijoms, tokioms kaip diegimo pranešimai ar metrikos rinkimas.
| { “event”: “PostToolUse”, “matcher”: { “toolName”: “execute_command” }, “command”: “./scripts/log-to-analytics.sh”, “async”: true, “timeout”: 30 } |
Kai suveikia asinchroninis kablys, Claude Code pradeda procesą ir tęsia iš karto. Timeout laukas nustato maksimalų vykdymo laiką sekundėmis. Jei nenurodyta, asinchroniniai kablys naudoja 10 minučių numatytąjį laiko limitą.
Tiesą sakant: asinchroniniai kablys negali blokuoti operacijų, nes jie veikia po to, kai Claude tęsia. Jie veikia su žurnalavimu, pranešimais ir valymu – ne su patvirtinimu.
HTTP kablys: Išorinių paslaugų integracija
HTTP kablys siunčia JSON krovinius į nuotolinius galinius taškus ir analizuoja atsakymus sprendimų kontrolei. Jie leidžia integruotis su patvirtinimo paslaugomis, duomenų bazėmis ir trečiųjų šalių įrankiais.
Pagrindinė HTTP kablys konfigūracija:
| { “event”: “PreToolUse”, “url”: “api.example.com/validate”, “headers”: { “Authorization”: “Bearer ${API_TOKEN}” }, “timeout”: 5 } |
Krovimo struktūra atitinka komandinio kablys įvestį, bet atkeliauja kaip HTTP POST kūnas. Atsakymas nulemia kitą Claude veiksmą.
HTTP atsakymo apdorojimas
Pagal oficialią dokumentaciją, HTTP kablys interpretuoja atsakymus pagal būsenos kodą ir kūno turinį:
| Būsenos kodas | Poveikis | Pranešimo šaltinis |
|---|---|---|
| 200 | Leisti operaciją | Atsakymo kūnas (pasirinktinai) |
| 400 | Blokuoti operaciją | Claude pateikiamas atsakymo kūnas |
| 500 | Kablys klaida, leisti operaciją | Žurnaluojama, bet nerodoma Claude |
| Kiti | Leisti operaciją | Kablys klaida neblokuoja darbo eigos |
Atsakymo kūne gali būti laukas `message`, kurį Claude mato kaip kontekstą. Tai leidžia patvirtinimo paslaugoms paaiškinti, kodėl operacija buvo blokuota.
Aplinkos kintamųjų interpoliavimas
HTTP kablys palaiko ${VAR} sintaksę url, headers ir kituose tekstiniuose laukuose. Kintamieji išplečiami iš aplinkos, kurioje veikia Claude Code.
Pagal oficialią MCP dokumentaciją, aplinkos kintamųjų išplėtimas apima numatytąjį atsarginį sintaksę: ${VAR:-default} išplečiama į VAR, jei nustatyta, kitaip naudojama numatytoji reikšmė.
Saugumo apribojimas: pagal „GitHub“ problemą #28044, HTTP kablys gali pasiekti tik aplinkos kintamuosius, aiškiai nurodytus `allowedEnvVars` konfigūracijos lauke. Tai neleidžia netyčia atskleisti kredencialų.
Ragintuvų kablys: Konteksto įterpimas
Ragintuvų kablys įterpia dinaminius nurodymus į Claude kontekstą specifiniais įvykiais. Jie keičia elgseną be išorinių procesų ar API iškvietimų.
| { “event”: “SessionStart”, “prompt”: “Jūs dirbate su TypeScript projektu. Visada naudokite griežtus null patikrinimus ir pirmenybę teikite async/await vietoj promises.” } |
Įterptas tekstas tampa dalimi Claude sistemos instrukcijų tai sesijai. Ragintuvų kablys taip pat gali naudoti šablonų kintamuosius, kurie išplečiami pagal įvykio duomenis.
Dinaminis ragintuvų generavimas
Pagal oficialią dokumentaciją, ragintuvų kablys palaiko komandų laukus, kurie generuoja dinaminius raginimus:
| { “event”: “ContextCompaction”, “type”: “prompt”, “command”: “./scripts/generate-context-summary.sh” } |
Komanda gauna standartinę JSON įvestį per stdin ir išveda raginimo tekstą į stdout. Tai leidžia generuoti kontekstui jautrius nurodymus pagal projektų būseną.
Agentų pagrindu veikiantys kablys
Agentų kablys nurodo subagentą, kuris tvarko įvykį, vietoj tiesioginio ragintuvų įterpimo. Subagentas gauna kontekstą apie įvykį ir gali atlikti daugiafazį samprotavimą.
| { “event”: “PostToolUseFailure”, “agent”: “debugger”, “agentPrompt”: “Įvyko įrankio iškvietimo klaida. Analizuokite klaidą ir pasiūlykite pataisymus.” } |
Nurodytas subagentas turi būti apibrėžtas projekto konfigūracijoje. Agentų kablys leidžia sudėtingą sprendimų logiką, kurios negali suteikti paprastas ragintuvų įterpimas.
Praktiniai kablys modeliai
Bendruomenės diskusijos ir oficialūs pavyzdžiai atskleidžia specifinius automatizavimo modelius, kurie patikimai veikia gamybos aplinkoje.
Automatinis kodo formatavimas po pakeitimų
Dažniausias modelis automatiškai formatuoja kodą po to, kai Claude pakeičia failus:
| { “event”: “PostToolUse”, “matcher”: { “toolName”: “edit_file”, “pathPattern”: “**/*.{js,ts,jsx,tsx}” }, “command”: “prettier”, “args”: [“–write”, “${toolInput.path}”] } |
${toolInput.path} kintamasis išplečiamas iki redaguojamo failo kelio. PostToolUse užtikrina, kad formatavimas įvyktų po sėkmingų pakeitimų, bet neblokuoja Claude darbo eigos.
Saugomų failų modifikacijų blokavimas
PreToolUse kablys taiko failų apsaugos taisykles:
| { “event”: “PreToolUse”, “matcher”: { “toolName”: “edit_file” }, “command”: “./scripts/check-protected.sh” } |
Scenarijus tikrina tikslinį kelią pagal saugomus modelius ir išeina su kodu 1, kad blokuotų draudžiamus pakeitimus.
Gaukite pranešimą, kai Claude reikia įvesties
Pagal oficialų darbo eigos vadovą, Notification kablys gali sukelti stalinius perspėjimus arba siųsti žinutes išorinėms paslaugoms:
| { “event”: “Notification”, “command”: “osascript”, “args”: [“-e”, “display notification \”${message}\” with title \”Claude Code\””] } |
Tai suveikia kaskart, kai Claude Code siunčia pranešimą, įskaitant laukimą vartotojo įvesties arba po užduoties atlikimo.
Atnaujinti kontekstą po sutankinimo
ContextCompaction kablys atkuria svarbų kontekstą, kai užsipildo pokalbio langas:
| { “event”: “ContextCompaction”, “type”: “prompt”, “command”: “cat .claude/critical-context.md” } |
Komandos išvestis įterpiama atgal į Claude kontekstą po to, kai sutankinimas pašalina senesnes žinutes. Tai neleidžia prarasti kritinių projektui specifinių nurodymų.
Audituoti konfigūracijos pakeitimus
Stebėkite, kada Claude pakeičia konfigūracijos failus:
| { “event”: “PostToolUse”, “matcher”: { “toolName”: “edit_file”, “pathPattern”: “**/{package.json,.env,*.config.*}” }, “command”: “git”, “args”: [“add”, “${toolInput.path}”], “async”: true } |
Asinchroninis vykdymas neblokuoja Claude, kol baigsis git operacijos. Tai sukuria auditavimo taką konfigūracijos pakeitimams be rankinio pateikimo.
JSON išvestis ir sprendimų kontrolė
Komandiniai kablys gali išvesti struktūrizuotą JSON, kad pateiktų išsamią grįžtamąją informaciją, viršijančią paprastus išeigos kodus. Pagal oficialią nuorodą, JSON išvestis leidžia gauti kelių laukų atsakymus, kuriuos Claude interpretuoja sprendimų priėmimui.
| { “allowed”: false, “message”: “Šis failas yra saugomas komandos politikos”, “suggestion”: “Sukurkite naują failą src/features/ vietoje” } |
`allowed` laukas kontroliuoja, ar operacija tęsiasi. `message` rodomas Claude kaip kontekstas. `suggestion` laukas siūlo alternatyvius metodus.
Kad kablys išvestų JSON, jie turi:
- Rašyti tinkamą JSON į stdout
- Išeiti su kodu 0 (leista) arba 1 (blokuota)
- Įtraukti bent `allowed` boolean lauką
Claude Code analizuoja JSON ir naudoja jį grįžtamojo ryšio kilpai pagerinti. Išeigos kodai vis dar lemia pagrindinį sprendimą, tačiau JSON suteikia turtingesnį kontekstą.
Kablys įvesties laukų nuoroda
Visi kablys gauna JSON objektą per stdin su bendrais laukais ir specifiniais įvykių duomenimis. Supratimas apie visą schemą leidžia sudėtingesnę kablys logiką.

Bendri įvesties laukai
Kiekvienas kablys gauna šiuos pagrindinius laukus:
- event: Kablys įvykio pavadinimas (pvz., „PreToolUse“)
- sessionId: Unikalus dabartinės Claude sesijos identifikatorius
- turnId: Dabartinio pokalbio posūkio identifikatorius
- timestamp: ISO 8601 laiko žyma, kada įvykis suveikė
Įrankių įvykio laukai
PreToolUse, PostToolUse ir PostToolUseFailure įvykiai apima:
- toolName: Kviečiamo įrankio pavadinimas (edit_file, execute_command ir kt.)
- toolInput: Objektas, kuriame yra įrankio įvesties parametrai
- toolResponse: Įrankio išvesties duomenys (tik PostToolUse)
- error: Klaidos detalės, įskaitant pranešimą ir kodą (tik PostToolUseFailure)
toolInput struktūra skiriasi priklausomai nuo įrankio. edit_file jis apima path ir content. execute_command jis apima command ir args.
Leidimo įvykio laukai
PermissionRequest įvykiai apima:
- permissionType: Prašomo leidimo tipas (file_write, command_execute ir kt.)
- requestedAction: Specifinis veiksmas, kuriam reikia leidimo
- resourcePath: Paveiktas failo kelias ar išteklių identifikatorius
MCP įrankių kablys
Pagal oficialią kablys nuorodą, kablys gali atitikti Model Context Protocol (MCP) įrankius naudojant `mcpTool` atitikmens lauką. Tai leidžia kablys vykdyti, kai Claude naudoja išorinius įrankius, kuriuos teikia MCP serveriai.
| { “event”: “PreToolUse”, “matcher”: { “mcpTool”: “database/query” }, “command”: “./scripts/validate-sql.sh” } |
`mcpTool` reikšmė atitinka įrankio pavadinimą formatu server-name/tool-name. Tai leidžia patvirtinimo logiką duomenų bazių užklausoms, API iškvietimams ar kitoms išorinėms operacijoms.
„GitHub“ funkcijų užklausos rodo didėjantį susidomėjimą gilesne MCP integracija, įskaitant kablys, kurie gali tikrinti MCP serverių pranešimus ir reaguoti į išorinius įvykius.
Saugumo svarstymai
Kablys vykdomi su tomis pačiomis teisėmis kaip ir pats Claude Code. Tai sukuria saugumo pasekmes kelių vartotojų aplinkoms ir bendrinamoms konfigūracijoms.
Komandos vykdymo smėlio dėžė
Pagal „GitHub“ problemą #28044, HTTP kablys eina per smėlio dėžės tarpinį serverį, kuris apriboja tinklo prieigą ir filtruoja aplinkos kintamuosius. Komandiniai kablys neturi tokių apribojimų – jie veikia su pilna komandinės eilutės prieiga.
Dokumentacija rekomenduoja šias praktikas:
- Niekada neišsaugokite kredencialų kablys komandose
- Naudokite aplinkos kintamuosius jautriems duomenims
- Patikrinkite visą įvestį iš ${...} išplėtimų
- Nustatykite laiko limitus išorinėms paslaugoms
- Naudokite asinchroninius kablys nekritinėms operacijoms, kad išvengtumėte blokavimo klaidos atveju
Kablys vykdymo izoliacija
Vartotojo lygio kablys faile ~/.claude/settings.json taikomi visiems projektams. Tai sukuria riziką dirbant skirtingose pasitikėjimo ribose. Projekto lygio kablys pakeičia vartotojo kablys, bet negali jų visiškai išjungti.
Claude Code meniu /hooks rodo visus aktyvius kablys dabartinei sesijai. Peržiūrėjus šį sąrašą prieš pradedant dirbti su jautriais projektais, padedama nustatyti galimas saugumo problemas.
Derinimas ir trikčių šalinimas
Kablys klaidos ne visada aiškiai pasireiškia Claude pokalbyje. Oficiali dokumentacija pateikia kelis derinimo metodus.
Kablys vykdymo žurnalai
Claude Code žurnaluoja kablys vykdymą į sesijos derinimo išvestį. Pagal trikčių šalinimo vadovą, įjungus derinimo žurnalavimą parodoma:
- Kurie kablys atitiko kiekvienam įvykiui
- JSON įvestis, siųsta kiekvienam kablys
- Stdout ir stderr išvestis iš kablys procesų
- Išeigos kodai ir vykdymo laikas
- HTTP atsakymų kodai ir kūnai HTTP kablys
Įjunkite derinimo žurnalavimą nustatydami CLAUDE_DEBUG=1 aplinkoje prieš paleisdami Claude Code.
Nepriklausomas kablys testavimas
Komandiniai kablys gali būti testuojami ne Claude Code, rankiniu būdu sudarant JSON įvestį:
| echo ‘{“event”:”PreToolUse”,”toolName”:”edit_file”,”toolInput”:{“path”:”test.txt”}}’ | ./scripts/my-hook.sh |
Tai patikrina kablys logiką, nepaleidžiant faktinių Claude operacijų. Išeigos kodas ir stdout/stderr išvestis turėtų atitikti numatomą elgseną.
Dažnos kablys klaidos
Bendruomenės diskusijos nustato šias dažnas problemas:
- Laiko limito klaidos: Numatytasis 10 minučių laiko limitas per trumpas lėtoms operacijoms – padidinkite su `timeout` lauku
- Kelio išplėtimo klaidos: Kintamieji kaip ${file} nenustatyti įvykiams, kurie neapima failo konteksto
- Leidimo klaidos: Kablys scenarijai neturi vykdymo teisių – paleiskite `chmod +x script.sh`
- JSON analizės klaidos: Netinkamos JSON išvestis iš kablys – patikrinkite su `jq` prieš grąžinant
- Aplinkos kintamųjų nepasiekiamumas: Kintamieji neperduodami kablys procesui – patikrinkite Claude Code aplinką
Kablys našumo pasekmės
Sinchroniniai kablys blokuoja Claude darbo eigą iki pabaigos. Numatytasis 10 minučių laiko limitas neleidžia neapibrėžtai užstrigti, tačiau net trumpi uždelsimai kaupiasi per kelias operacijas.
Praktikai praneša, kad paprasti patvirtinimo kablys turi nepastebimą našumo poveikį. Failų formatavimo kablys sukelia pastebimą, bet priimtiną našumo poveikį. Išorinių API iškvietimai gali sukelti trintį darbo eigoje. Sudėtingos skaičiavimo operacijos naudingos asinchroniniam vykdymui.
Kablys paketavimas
Keli kablys gali atitikti tą patį įvykį. Pagal nuorodos dokumentaciją, kablys vykdomi nuosekliai apibrėžimo tvarka. Jei bet kuris kablys blokuoja operaciją, likę kablys nevykdomi.
Tai svarbu našumui. Penki sinchroniniai kablys po 200ms kiekvienas prideda vieną sekundę per įvykį. Susiejus susijusius patvirtinimus į vieną kablys sumažėja antkainis.
Pažangūs modeliai
Be pagrindinio automatizavimo, kablys leidžia sudėtingai pritaikyti darbo eigą.
Būsenos kablys grandinės
Kablys gali palaikyti būseną tarp vykdymų naudodami failus arba duomenų bazes. PostToolUse kablys gali įrašyti sėkmingas operacijas, kurias PreToolUse kablys vėliau tikrins:
| #!/bin/bash # Įrašyti sėkmingus pakeitimus echo “${toolInput.path}” >> .claude/edit-history.txt |
Pagalbinis PreToolUse kablys galėtų tikrinti šią istoriją, kad būtų išvengta nereikalingų operacijų arba būtų taikomi tvarkos apribojimai.
Sąlyginis kablys aktyvinimas
Aplinkos kintamieji kontroliuoja kablys elgseną vykdymo metu. Nustačius CLAUDE_SKIP_HOOKS=1, kablys išjungiami nepaprastosios padėties atvejais.
Patys kablys gali tikrinti aplinkos žymes:
| #!/bin/bash if [ “$STRICT_MODE” = “1” ]; then # Taikyti griežtą patvirtinimą exit 1 fi exit 0 |
Tai leidžia kūrimo režimo prieš gamybos režimo elgseną be konfigūracijos pakeitimų.
Daugiafazis patvirtinimas
PreToolUse kablys gali įgyvendinti daugialypį patvirtinimą, kur išeigos kodas 2 leidžia Claude tęsti su įspėjimais:
- Griežtos klaidos (išeiga 1): Blokuoti pavojingas operacijas
- Švelnūs įspėjimai (išeiga 2): Įspėti Claude, kad persvarstytų
- Praeiti su kontekstu (išeiga 0 + JSON): Pateikti papildomos informacijos
Tai sukuria patvirtinimo spektrą, sudėtingesnį nei dvejetainis leidimas/neleidimas.
Integracija su CI/CD
Pagal oficialią platformos integracijos dokumentaciją, Claude Code veikia CI/CD aplinkose, kad automatiškai peržiūrėtų kodą ir triage problemas. Kablys plečia šį automatizavimą.
GitHub Actions darbo eigos gali apibrėžti kablys, kurie taiko komandos politikas automatizuotų sesijų metu:
| -- name: Run Claude Code with strict hooks env: STRICT_MODE: 1 run: | claude “Review this PR and suggest improvements” |
STRICT_MODE žyma aktyvuoja sąlyginę patvirtinimo logiką kablys scenarijuose. Tai užtikrina, kad automatizuotos sesijos laikytųsi griežtesnių taisyklių nei interaktyvus kūrimas.
Audito kelio generavimas
PostToolUse kablys CI aplinkose sukuria išsamias visų Claude operacijų auditavimo žurnalus:
| { “event”: “PostToolUse”, “command”: “./scripts/log-to-database.sh”, “async”: true } |
Fono žurnalavimas neturi įtakos našumui, bet suteikia visą operacijų istoriją atitikimui ir trikčių šalinimui.
Meniu /hooks
Claude Code suteikia /hooks komandą, kuri rodo visus aktyvius kablys dabartinei sesijai. Pagal oficialią dokumentaciją, šis meniu rodo:
- Kablys įvykio tipas
- Atitikmenų modeliai
- Komanda arba URL galinis taškas
- Ar kablys veikia asinchroniškai
- Konfigūracijos šaltinis (projektas, vartotojas ar įskiepis)
Pasirinkus kablys, rodoma jo visa konfigūracija ir leidžiama jį laikinai išjungti dabartinei sesijai.
Išjungti arba pašalinti kablys
Kablys gali būti išjungti neišimant konfigūracijos, pridedant „enabled“: false prie kablys apibrėžimo. Tai išsaugo konfigūraciją, bet neleidžia vykdyti.
Kad kablys būtų visam laikui pašalintas, ištrinkite jo įrašą iš atitinkamo settings.json failo. Pakeitimai įsigalioja kitą sesijos paleidimą arba vykdant /reload.
Kablys įgūdžiuose ir agentuose
Pagal oficialią dokumentaciją, įgūdžio ar subagento konfigūracijose apibrėžti kablys taikomi tik tuomet, kai tas įgūdis ar agentas vykdomas. Tai leidžia specializuotą automatizavimą specifinėms darbo eigoms.
Derinimo subagentas gali apimti kablys, kurie žurnaluoja visus įrankių iškvietimus:
| { “name”: “debugger”, “hooks”: [ { “event”: “PostToolUse”, “command”: “./scripts/log-debug.sh”, “async”: true } ] } |
Šie kablys suveikia tik derinimo agento sesijų metu, ne įprasto Claude Code veikimo metu.
Scenarijų nuoroda pagal kelią
Kablys komandos palaiko tiek santykinius, tiek absoliučius kelius. Santykiniai keliai sprendžiami nuo projekto šaknies, kur veikia Claude Code.
Bendruomenės diskusijų geriausios praktikos:
- Kablys scenarijus laikykite .claude/hooks/ kataloge
- Naudokite apibūdinamuosius pavadinimus: validate-typescript.sh vietoj hook1.sh
- Padarykite scenarijus vykdomus: chmod +x .claude/hooks/*.sh
- Įtraukite shebang eilutę: #!/usr/bin/env bash arba #!/usr/bin/env python3
- Įtraukite klaidų apdorojimą su `set -e` bash scenarijuose
Būsimos kablys galimybės
„GitHub“ funkcijų užklausos atskleidžia planuojamus ir prašomus kablys patobulinimus:
- Įterptųjų scenarijų kablys: Apibrėžkite kablys logiką tiesiogiai settings.json be išorinių failų
- MCP įrankių integracija: Iškvieskite MCP serverio įrankius iš kablys vietoj komandinės eilutės scenarijų
- Daugiaagentų bendradarbiavimas: Kablys, kurie koordinuoja tarp Claude instancijų skirtingose mašinose
- Patobulintas tipavimas: TypeScript tipų apibrėžimai kablys įvesties/išvesties schemoms
Pagal „GitHub“ problemą #4274, prašymas integruoti kablys tipus (MCP įrankis, įterptasis scenarijus, API iškvietimas) siekia supaprastinti konfigūraciją ir pagerinti kūrėjo patirtį.
Dažnai užduodami klausimai
Ar kablys gali užkirsti kelią Claude vykdyti pavojingas komandas?
Taip. PreToolUse kablys gali blokuoti bet kurį įrankio vykdymą išeinant su kodu 1. Tai apima failų pakeitimus, komandų vykdymą ir MCP įrankių iškvietimus. Kablys gauna visą įrankio įvestį ir gali tikrinti pagal bet kokius kriterijus prieš leidžiant operaciją.
Kaip derinti kablys, kuris neveikia?
Įjunkite derinimo žurnalavimą su CLAUDE_DEBUG=1 prieš paleisdami Claude Code. Patikrinkite sesijos žurnalus, kad gautumėte kablys vykdymo detales, įskaitant kuriuos kablys atitiko, siunčiamą JSON įvestį, stdout/stderr išvestį ir išeigos kodus. Testuokite kablys nepriklausomai, perduodami pavyzdžio JSON į kablys scenarijų.
Ar kablys veikia su visomis Claude Code platformomis?
Kablys veikia CLI, darbalaukio programoje ir VS Code plėtinyje. Pagal oficialią dokumentaciją, kablys vykdomi visur, kur Claude Code veikia su prieiga prie failų sistemos. Naršyklės pagrindu veikiantis Claude ir mobiliosios programėlės nepalaiko kablys dėl smėlio dėžės apribojimų.
Ar kablys gali keisti Claude atsakymus ar elgseną?
Ragintuvų kablys įterpia nurodymus, kurie įtakoja Claude elgseną. Agentų kablys deleguoja įvykių apdorojimą specializuotiems subagentams. Tačiau kablys negali tiesiogiai keisti Claude generuojamo teksto ar samprotavimo proceso – jie veikia teikdami kontekstą ir blokuodami operacijas.
Koks skirtumas tarp asinchroninių ir sinchroninių kablys?
Sinchroniniai kablys blokuoja Claude darbo eigą iki pabaigos arba laiko limito. Asinchroniniai kablys veikia fone neblokuodami. Sinchroniniai kablys gali užkirsti kelią operacijoms per išeigos kodus. Asinchroniniai kablys negali blokuoti, nes Claude tęsia prieš kablys pabaigą. Naudokite asinchroninius žurnalavimui ir pranešimams, sinchroninius – patvirtinimui.
Kaip pasidalinti kablys komandoje?
Įtraukite .claude/settings.json failą į versijų kontrolę. Projekto lygio kablys taikomi visiems komandos nariams, kurie klonuojasi saugyklą. Visos organizacijos politikos srityje komandos gali palaikyti bendrą vartotojo lygio nustatymų failą, kurį nariai nukopijuoja į ~/.claude/settings.json.
Ar HTTP kablys gali iškviesti vidinius API už ugniasienės?
Taip, jei Claude Code veikia aplinkoje, turinčioje tinklo prieigą prie tų API. HTTP kablys daro standartinius POST užklausas iš mašinos, kuri paleidžia Claude Code. Įmonės ugniasienės ir VPN taikomos normaliai. Dokumentacijoje minimas smėlio dėžės tarpinis serveris kontroliuoja aplinkos kintamųjų poveikį, o ne tinklo maršrutizavimą.
Ar kablys padidina Claude Code žetonų naudojimą?
Ragintuvų kablys įterpia tekstą į Claude kontekstą, o tai naudoja žetonus. Komandiniai ir HTTP kablys tiesiogiai neveikia žetonų naudojimo, tačiau jų išvestis (klaidos pranešimai, pasiūlymai) tampa pokalbio konteksto dalimi. Išeigos kodas 2 su paaiškinamaisiais pranešimais prideda daugiau konteksto nei išeigos kodas 1 su paprastu blokavimu.
Išvada
Claude Code kablys paverčia AI padėjėją iš galingo įrankio į visiškai automatizuotą kūrimo platformą. Įvykių sistema suteikia tarpinius taškus visoje Claude darbo eigoje – nuo sesijos inicijavimo iki konteksto sutankinimo.
Komandiniai kablys tvarko vietinį patvirtinimą ir formatavimą. HTTP kablys integruoja išorines paslaugas ir duomenų bazes. Ragintuvų kablys keičia elgseną per konteksto įterpimą. Kartu jie leidžia automatizavimo modelius, kurie taiko komandos politikas, palaiko kodo kokybę ir integruojasi su esama kūrimo infrastruktūra.
Atitikmenų sistema filtruoja kablys iki specifinių įrankių ir failų modelių. Išeigos kodai ir JSON išvestis valdo sprendimų srautą. Asinchroninis vykdymas neleidžia blokuoti lėtų operacijų. Visa konfigūracijos schema palaiko viską nuo paprasto automatinio formatavimo iki sudėtingo daugiafazio patvirtinimo.
Pradėkite nuo pagrindinių PostToolUse kablys kodo formatavimui. Pridėkite PreToolUse patvirtinimą, kai atsiranda politikos. Eksperimentuokite su ragintuvų kablys elgsenos keitimui. Kurkite HTTP integracijas, kad užtikrintumėte visos komandos vykdymą.
Peržiūrėkite oficialią Claude Code dokumentaciją, kad gautumėte visą kablys nuorodą ir atnaujintą konfigūracijos schemą, kai bus išleistos naujos funkcijos.

