Claude Code Hooks: Udhëzues i plotë (2026)

Author Avatar
Andrew
AI Perks Team
5,846
Claude Code Hooks: Udhëzues i plotë (2026)

Përmbledhje e Shpejtë: Krojet e Claude Code janë skripte automatizimi që ekzekutohen në pika specifike të ciklit të jetës gjatë sesioneve të kodimit AI, duke u mundësuar zhvilluesve të ekzekutojnë komanda të personalizuara, të vërtetojnë veprime, të formatuan kodin, të dërgojnë njoftime dhe të zbatojnë rregullat e projektit. Këto kroje integrohen me rrjedhën e punës së Claude përmes ngjarjeve si SessionStart, PreToolUse dhe PostToolUse, duke mbështetur modelet e ekzekutimit të bazuara në komanda, HTTP dhe kërkesa me kohëzgjatje të konfiguruara dhe sjellje të kodit të daljes.

Sistemi i krojeve të Claude Code e transformon asistentin e kodimit AI nga një mjet i dobishëm në një mjedis zhvillimi plotësisht të automatizuar. Shumica e zhvilluesve nuk e kuptojnë shkallën e kontrollit të disponueshëm përmes krojeve.

Ja çështja megjithatë—krojet nuk janë vetëm për ekzekutimin e skripteve pas modifikimeve të skedarëve. Ato ofrojnë pika ndërhyrjeje gjatë gjithë procesit të vendimmarrjes së Claude. Para se të ekzekutojë një komandë. Pas një thirrjeje dështoi. Kur i nevojitet leje. Madje edhe para përpunimit të kërkesave të përdoruesit.

Ky udhëzues mbulon gjithçka që ofron dokumentacioni zyrtar, plus modele praktike që diskutimet e komunitetit zbulojnë se funksionojnë në mjedise prodhimi.

Çfarë Bëjnë Krojet e Claude Code në Realitet

Sipas dokumentacionit zyrtar të Claude Code, krojet janë komanda shell të përcaktuara nga përdoruesi, funde HTTP ose injeksione kërkesash që ekzekutohen në pika specifike të ciklit të jetës së Claude Code. Ato marrin hyrje të strukturuara JSON përmes stdin dhe kontrollojnë rrjedhën e punës përmes kodeve të daljes ose përgjigjeve HTTP.

Automatizimi shkon më thellë nga sa sugjerojnë shumica e udhëzuesve. Krojet mund të bllokojnë plotësisht ekzekutimin e mjeteve, të injektojnë kontekst shtesë në arsyetimin e Claude, të aktivizojnë shërbime të jashtme dhe të zbatojnë rregulla validimi që Claude duhet t'i respektojë.

Ekzistojnë tre lloje kryesore kroje:

  • Kroje komandash: Skripte shell që komunikojnë përmes stdout, stderr dhe kodeve të daljes
  • Kroje HTTP: Funde të largëta që marrin kërkesa POST dhe kthejnë përgjigje JSON
  • Kroje kërkesash: Udhëzime dinamike të injektuara në kontekstin e Claude në ngjarje specifike

Çdo lloj shërben modele të ndryshme automatizimi. Krojet komandash menaxhojnë validimin dhe formatimin lokal. Krojet HTTP integrohen me shërbime dhe baza të dhënash të jashtme. Krojet kërkesash modifikojnë sjelljen e Claude pa procese të jashtme.

Cikli i Jetës së Kroit dhe Sistemi i Ngjarjeve

Dokumentacioni zyrtar përcakton ngjarje të shumta kroje (SessionStart, UserPromptSubmit, PreToolUse, PermissionRequest, PostToolUse, PostToolUseFailure, Notification, dhe të tjerë) që aktivizohen gjatë rrjedhës së ekzekutimit të Claude Code. Kuptimi se kur aktivizohet secila përcakton se çfarë automatizimi bëhet i mundur.

Ngjarjet e kroit të Claude Code dhe rrjedha e tyre e ekzekutimit gjatë një sesioni tipik
NgjarjeKur AktivizohetMund të Bllokojë 
SessionStartKur fillon ose rifillon një sesionJo
UserPromptSubmitKur paraqisni një kërkesë, para se Claude ta përpunojë atëPo
PreToolUsePara se të ekzekutohet një thirrje mjetiPo
PermissionRequestKur shfaqet një dialog lejejePo
PostToolUsePas suksesit të një thirrje mjetiJo
PostToolUseFailurePas dështimit të një thirrje mjetiJo
NotificationKur Claude Code dërgon një njoftimJo
SubmitMessageKur Claude i dërgon një mesazh përdoruesitJo
ContextCompactionKur afati i dritares së kontekstit afrohetJo

Kapciteti i bllokimit ka më shumë rëndësi. Krojet PreToolUse mund të parandalojnë operacione të rrezikshme para se ato të ekzekutohen. Kodi i daljes 1 bllokon veprimin. Kodi i daljes 0 e lejon atë. Kodi i daljes 2 bën që Claude të rishqyrtojë.

Por prisni. Krojet PostToolUse nuk mund të anulojnë veprime pasi mjeti tashmë është ekzekutuar. Ky kufizim formëson mënyrën se si strukturohet logjika e validimit. Kontrollet kritike i përkasin PreToolUse. Pastrimi dhe formatimi i përkasin PostToolUse.

Shfletoni Përfitimet e Mjeteve AI Ndërsa Konfiguroheni Claude Code

Nëse po punoni me krojet e Claude Code, mund të zgjidhni edhe mjete të tjera AI rreth rrjedhës suaj të punës. Get AI Perks mbledh kredi fillestare dhe zbritje softuerësh për mjete AI dhe cloud në një vend. Platforma përfshin mbi 200 oferta, me kushte përfitimesh dhe udhëzime pretendimi për secilën.

Kërkoni Përfitime Claude ose Mjetesh Të Tjera AI?

Kontrolloni Get AI Perks për:

  • shfletoni oferta për Claude dhe mjete të tjera AI
  • krahasoni kushtet e përfitimeve para se të aplikoni
  • gjetjen e zbritjeve fillestare në të gjithë stakun tuaj të mjeteve

👉 Vizitoni Get AI Perks për të eksploruar përfitimet aktuale të softuerëve AI.

Konfigurimi dhe Struktura e Skedarëve

Krojet definohen në skedarin .claude/settings.json brenda një projekti. Skema e konfigurimit mbështet kroje globale dhe kërkues specifikë për mjetet që filtron kur ekzekutohen krojet.

Struktura bazë e kroit komandash:

{
  “hooks”: [
    {
      “event”: “PostToolUse”,
      “command”: “prettier –write”,
      “args”: [“${file}”]
    }
  ]
}

Variabli ${file} zgjerohet në shtegun aktual të skedarit nga hyrja e mjetit. Sipas dokumentacionit zyrtar, krojet mbështesin këto zgjerime variablash në fushat komandë dhe args.

Hierarkia e Vendndodhjes së Kroit

Claude Code kontrollon vendndodhje të shumta për definicionet e krojeve, me një rend parësie të qartë:

  1. Niveli i projektit: .claude/settings.json në hapësirën aktuale të punës
  2. Niveli i përdoruesit: ~/.claude/settings.json për të gjitha sesionet
  3. Ofruar nga plugin-i: Kroje të paketuar me plugin-et e instaluar

Krojet e projektit tejkalojnë krojet e përdoruesit për të njëjtën ngjarje. Kjo lejon rregulla specifike të projektit për formatim ndërsa ruhen trajtimet globale të njoftimeve.

Modele Kërkuese për Ekzekutim Selektiv

Sistemi kërkues filtron krojet për mjete ose kushte specifike. Pa kërkues, krojet aktivizohen për çdo ndodhi të ngjarjes së tyre.

{
  “hooks”: [
    {
      “event”: “PreToolUse”,
      “matcher”: {
        “toolName”: “edit_file”,
        “pathPattern”: “src/**/*.ts”
      },
      “command”: “./scripts/validate-typescript.sh”
    }
  ]
}

Fusha pathPattern pranon sintaksën glob. Fusha toolName përputhet me mjetet e integruara të Claude si edit_file, execute_command, read_file dhe create_directory.

Diskutimet e komunitetit zbulojnë se kombinimet e kërkuesve funksionojnë me logjikë DHE. Të gjithë kërkuesit e specifikuar duhet të përputhen që kroi të ekzekutohet.

Kroje Komandash: Integrimi i Skripteve Shell

Krojet komandash ekzekutojnë komanda shell ose skripte me hyrje të strukturuar JSON. Ato përfaqësojnë llojin më të zakonshëm të kroit për automatizimin lokal.

Dokumentacioni zyrtar specifikon se krojet komandash marrin JSON përmes stdin me këtë strukturë:

{
  “event”: “PreToolUse”,
  “toolName”: “edit_file”,
  “toolInput”: {
    “path”: “src/app.ts”,
    “content”: “…”
  },
  “sessionId”: “abc123”,
  “turnId”: “turn-456”
}Scripts parse këtë hyrje për të bërë vendime. Një kroje validimi Python mund të duket kështu:#!/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)

Kodi i daljes 0 lejon operacionin. Kodi i daljes 1 e bllokon atë dhe tregon mesazhin stderr për Claude. Kodi i daljes 2 shkakton sjellje speciale në varësi të ngjarjes.

Sjellja e Kodit të Daljes 2

Sipas dokumentacionit zyrtar të referencës së krojeve, kodi i daljes 2 ka kuptim të veçantë për ngjarje (PreToolUse: bllokon dhe nxit rishqyrtim; UserPromptSubmit: ofron kontekst pa bllokim; PermissionRequest: bllokon lejen):

  • PreToolUse: Bllokon mjetin dhe nxit Claude të rishqyrtojë me mesazhin stderr si kontekst
  • UserPromptSubmit: Ofron daljen stderr si kontekst shtesë pa bllokim
  • PermissionRequest: Bllokon dhënien e lejes

Kjo krijon një nivel të mesëm midis bllokimit të fortë dhe lejimit. Claude merr feedback rreth arsyes pse veprimi mund të jetë problematik dhe mund ta rregullojë qasjen e tij.

Kroje Komandash Asinkrone

Flamuri `async: true` ekzekuton krojet në sfond pa bllokuar rrjedhën e punës së Claude. Kjo ka rëndësi për operacionet e ngadalta si njoftimet e vendosjes ose mbledhja e metrikave.

{
  “event”: “PostToolUse”,
  “matcher”: {
    “toolName”: “execute_command”
  },
  “command”: “./scripts/log-to-analytics.sh”,
  “async”: true,
  “timeout”: 30
}

Kur aktivizohet një kroje asinkron, Claude Code fillon procesin dhe vazhdon menjëherë. Fusha `timeout` cakton kohën maksimale të ekzekutimit në sekonda. Nëse nuk specifikoni, krojet asinkron përdorin një kohëzgjatje standarde prej 10 minutash.

Real talk: krojet asinkron nuk mund të bllokojnë operacionet pasi ato ekzekutohen pasi Claude vazhdon. Ato funksionojnë për regjistrim, njoftime dhe pastrim—jo për validim.

Kroje HTTP: Integrimi i Shërbimeve të Jashtme

Krojet HTTP dërgojnë ngarkesa JSON në funde të largëta dhe analizojnë përgjigjet për kontrollin e vendimmarrjes. Ato mundësojnë integrimin me shërbime validimi, baza të dhënash dhe mjete të palëve të treta.

Konfigurimi bazë i kroit HTTP:

{
  “event”: “PreToolUse”,
  “url”: “api.example.com/validate”,
  “headers”: {
    “Authorization”: “Bearer ${API_TOKEN}”
  },
  “timeout”: 5
}

Struktura e ngarkesës përputhet me hyrjen e kroit komandash por mbërrin si trupi POST HTTP. Përgjigja përcakton veprimin e radhës së Claude.

Menaxhimi i Përgjigjeve HTTP

Sipas dokumentacionit zyrtar, krojet HTTP interpretojnë përgjigjet bazuar në kodin e statusit dhe përmbajtjen e trupit:

Kodi i StatusitEfektiBurimi i Mesazhit 
200Lejon operacioninTrupi i përgjigjes (opsional)
400Bllokon operacioninTrupi i përgjigjes i treguar Claude
500Gabim kroi, lejon operacioninRegjistruar por nuk i tregohet Claude
TjetërLejon operacioninDështimi i kroit nuk bllokon rrjedhën e punës

Trupi i përgjigjes mund të përfshijë një fushë mesazh që Claude e sheh si kontekst. Kjo mundëson shërbimet e validimit të shpjegojnë pse një operacion u bllokua.

Interpolimi i Variablave të Mjedisit

Krojet HTTP mbështesin sintaksën ${VAR} në url, headers dhe fusha të tjera string. Variablat zgjerohen nga mjedisi ku funksionon Claude Code.

Sipas dokumentacionit zyrtar të MCP, zgjerimi i variablave të mjedisit përfshin një sintaksë fallback standarde: ${VAR:-default} zgjerohet në VAR nëse është caktuar, përndryshe përdor vlerën default.

Kufizim sigurie: Sipas problemit #28044 në GitHub, krojet HTTP mund të kenë qasje vetëm në variablat e mjedisit të listuar shprehimisht në fushën e konfigurimit allowedEnvVars. Kjo parandalon ekspozimin aksidental të kredencialeve.

Kroje Kërkesash: Injektim Konteksti

Krojet kërkesash injektojnë udhëzime dinamike në kontekstin e Claude në ngjarje specifike. Ato modifikojnë sjelljen pa procese të jashtme ose thirrje API.

{
  “event”: “SessionStart”,
  “prompt”: “Ju jeni duke punuar në një projekt TypeScript. Gjithmonë përdorni kontroll të rreptë null dhe preferoni async/await mbi promises.”
}

Teksti i injektuar bëhet pjesë e udhëzimeve të sistemit të Claude për atë sesion. Krojet kërkesash gjithashtu mund të përdorin variabla shablloni që zgjerohen bazuar në të dhënat e ngjarjes.

Gjenerimi Dinamik i Kërkesave

Sipas dokumentacionit zyrtar, krojet kërkesash mbështesin fusha komandash që gjenerojnë kërkesa dinamike:

{
  “event”: “ContextCompaction”,
  “type”: “prompt”,
  “command”: “./scripts/generate-context-summary.sh”
}

Komanda merr hyrjen standarde JSON përmes stdin dhe nxjerr tekstin e kërkesës në stdout. Kjo mundëson gjenerimin e udhëzimeve të ndërgjegjshme për kontekstin bazuar në gjendjen e projektit.

Kroje Bazuar në Agjentë

Krojet agjentë specifikojnë një nën-agent që menaxhon ngjarjen në vend të injektimit të drejtpërdrejtë të kërkesës. Nën-agjenti merr kontekst rreth ngjarjes dhe mund të kryejë arsyetim me shumë hapa.

{
  “event”: “PostToolUseFailure”,
  “agent”: “debugger”,
  “agentPrompt”: “Një thirrje mjeti dështoi. Analizoni gabimin dhe sugjeroni riparime.”
}

Nën-agjenti i emërtuar duhet të jetë i definuar në konfigurimin e projektit. Krojet agjentë mundësojnë logjikë komplekse vendimmarrjeje që injektimi i thjeshtë i kërkesës nuk mund ta ofrojë.

Modele Praktike të Krojeve

Diskutimet e komunitetit dhe shembujt zyrtarë zbulojnë modele specifikë automatizimi që funksionojnë në mënyrë të besueshme në prodhim.

Formatimi Automatik i Kodit Pas Modifikimeve

Modeli më i zakonshëm formaton kodin automatikisht pas modifikimeve të skedarëve nga Claude:

{
  “event”: “PostToolUse”,
  “matcher”: {
    “toolName”: “edit_file”,
    “pathPattern”: “**/*.{js,ts,jsx,tsx}”
  },
  “command”: “prettier”,
  “args”: [“–write”, “${toolInput.path}”]
}

Variabli ${toolInput.path} zgjerohet në shtegun e skedarit të modifikuar. PostToolUse siguron që formatimi të ndodhë pas modifikimeve të suksesshme por nuk bllokon rrjedhën e punës së Claude.

Bllokimi i Modifikimeve të Skedarëve të Mbrojtur

Krojet PreToolUse zbatojnë rregullat e mbrojtjes së skedarëve:

{
  “event”: “PreToolUse”,
  “matcher”: {
    “toolName”: “edit_file”
  },
  “command”: “./scripts/check-protected.sh”
}

Skripti validon shtegun e synuar kundër modeleve të mbrojtur dhe del me kodin 1 për të bllokuar modifikimet e ndaluara.

Marrja e Njoftimeve Kur Claude Kërkon Hyrje

Sipas udhëzuesit zyrtar të rrjedhës së punës, krojet Notification mund të aktivizojnë alarme desktop ose të dërgojnë mesazhe në shërbime të jashtme:

{
  “event”: “Notification”,
  “command”: “osascript”,
  “args”: [“-e”, “display notification \”${message}\” with title \”Claude Code\””]
}

Kjo aktivizohet sa herë që Claude Code dërgon një njoftim, përfshirë kur pret hyrje nga përdoruesi ose pas përfundimit të detyrës.

Ri-injektimi i Kontekstit Pas Kompaktimit

Krojet ContextCompaction rikthejnë kontekstin e rëndësishëm kur dritarja e bisedës mbushet:

{
  “event”: “ContextCompaction”,
  “type”: “prompt”,
  “command”: “cat .claude/critical-context.md”
}

Dalja e komandës injektohet përsëri në kontekstin e Claude pas kompaktimit duke hequr mesazhet më të vjetra. Kjo parandalon humbjen e udhëzimeve kritike specifike të projektit.

Auditi i Ndryshimeve të Konfigurimit

Gjurmoni kur Claude modifikon skedarët e konfigurimit:

{
  “event”: “PostToolUse”,
  “matcher”: {
    “toolName”: “edit_file”,
    “pathPattern”: “**/{package.json,.env,*.config.*}”
  },
  “command”: “git”,
  “args”: [“add”, “${toolInput.path}”],
  “async”: true
}

Ekzekutimi asinkron parandalon bllokimin e Claude ndërsa operacionet git përfundohen. Kjo krijon një gjurmë auditi të ndryshimeve të konfigurimit pa grumbullim manual.

Dalja JSON dhe Kontrolli i Vendimmarrjes

Krojet komandash mund të nxjerrin JSON të strukturuar për të ofruar feedback të detajuar përtej kodeve të thjeshta të daljes. Sipas referencës zyrtare, dalja JSON mundëson përgjigje me shumë fusha që Claude i interpreton për vendimmarrje.

{
  “allowed”: false,
  “message”: “Ky skedar është i mbrojtur nga politika e ekipit”,
  “suggestion”: “Krijoni një skedar të ri në src/features/ në vend të tij”
}

Fusha `allowed` kontrollon nëse operacioni vazhdon. Mesazhi shfaqet për Claude si kontekst. Fusha `suggestion` ofron qasje alternative.

Që krojet të nxjerrin JSON, ato duhet të:

  1. Shkruajnë JSON të vlefshëm në stdout
  2. Dalin me kodin 0 (për të lejuar) ose 1 (për të bllokuar)
  3. Përfshijnë të paktën fushën boolean `allowed`

Claude Code analizon JSON dhe e përdor atë për të përmirësuar ciklin e feedback-ut. Kodet e daljes ende përcaktojnë vendimin kryesor, por JSON ofron kontekst më të pasur.

Referenca e Fushave të Hyrjes së Kroit

Të gjitha krojet marrin një objekt JSON përmes stdin me fusha të përbashkëta plus të dhëna specifike për ngjarje. Kuptimi i skemës së plotë mundëson logjikë më të sofistikuar të kroit.

Skema hyrjeje JSON e kroit duke treguar fusha të përbashkëta dhe zgjerime specifike për ngjarje

Fusha të Përbashkëta të Hyrjes

Çdo kroi merr këto fusha bazë:

  • event: Emri i ngjarjes së kroit (p.sh., "PreToolUse")
  • sessionId: Identifikues unik për sesionin aktual të Claude
  • turnId: Identifikues për kthesën aktuale të bisedës
  • timestamp: Kohëmatësi ISO 8601 kur u aktivizua ngjarja

Fusha të Ngjarjeve të Mjeteve

Ngjarjet PreToolUse, PostToolUse dhe PostToolUseFailure përfshijnë:

  • toolName: Emri i mjetit që po thërritet (edit_file, execute_command, etj.)
  • toolInput: Objekt që përmban parametrat e hyrjes së mjetit
  • toolResponse: Të dhëna dalëse të mjetit (vetëm PostToolUse)
  • error: Detaje gabimi përfshirë mesazhin dhe kodin (vetëm PostToolUseFailure)

Struktura toolInput ndryshon sipas mjetit. Për edit_file përmban path dhe content. Për execute_command përmban command dhe args.

Fusha të Ngjarjeve të Lejes

Ngjarjet PermissionRequest përfshijnë:

  • permissionType: Lloji i lejes së kërkuar (file_write, command_execute, etj.)
  • requestedAction: Veprimi specifik që kërkon leje
  • resourcePath: Shtegu i skedarit ose identifikuesi i burimit i prekur

Kroje Mjetesh MCP

Sipas referencës zyrtare të krojeve, krojet mund të përputhen me mjetet e Protokollit të Kontekstit të Modelit (MCP) duke përdorur fushën e kroit mcpTool. Kjo mundëson ekzekutimin e kroit kur Claude përdor mjete të jashtme të ofruara nga serverët MCP.

{
  “event”: “PreToolUse”,
  “matcher”: {
    “mcpTool”: “database/query”
  },
  “command”: “./scripts/validate-sql.sh”
}

Vlera mcpTool përputhet me emrin e mjetit në formatin server-name/tool-name. Kjo lejon logjikë validimi për kërkesa bazash të dhënash, thirrje API ose operacione të tjera të jashtme.

Kërkesat e tipareve në GitHub tregojnë interes në rritje për integrimin më të thellë të MCP, përfshirë krojet që mund të inspektojnë njoftimet e serverit MCP dhe të reagojnë ndaj ngjarjeve të jashtme.

Konsiderata të Sigurisë

Krojet ekzekutohen me të njëjtat leje si Claude Code vetë. Kjo krijon implikime sigurie për mjedise me shumë përdorues dhe konfigurime të ndara.

Sandbox Ekzekutimi Komandash

Sipas problemit #28044 në GitHub, krojet HTTP kalojnë përmes një proxy sandbox që kufizon qasjen në rrjet dhe filtron variablat e mjedisit. Krojet komandash nuk kanë kufizime të tilla—ato ekzekutohen me qasje të plotë shell.

Dokumentacioni rekomandon këto praktika:

  • Asnjëherë mos ruani kredenciale në komandat e krojeve
  • Përdorni variabla mjedisi për të dhëna të ndjeshme
  • Verifikoni të gjitha hyrjet nga zgjerimet ${…}
  • Implementoni kufizime kohëzgjatjeje për shërbimet e jashtme
  • Përdorni kroje asinkron për operacione jo-kritike për të parandaluar bllokimin në dështime

Izolimi i Ekzekutimit të Kroit

Krojet në nivel përdoruesi në ~/.claude/settings.json aplikohen në të gjitha projektet. Kjo krijon rreziqe kur punohet midis kufijve të ndryshëm besimi. Krojet e nivelit të projektit tejkalojnë krojet e përdoruesit por nuk mund t'i çaktivizojnë plotësisht ato.

Menuja /hooks në Claude Code tregon të gjitha krojet aktive për sesionin aktual. Rishikimi i kësaj liste para se të punoni në projekte të ndjeshme ndihmon në identifikimin e shqetësimeve të mundshme të sigurisë.

Debugimi dhe Zgjidhja e Problemeve

Dështimet e krojeve nuk dalin gjithmonë qartë në bisedën e Claude. Dokumentacioni zyrtar ofron disa qasje debugimi.

Regjistrime të Ekzekutimit të Kroit

Claude Code regjistron ekzekutimin e kroit në daljen debug të sesionit. Sipas udhëzuesit të zgjidhjes së problemeve, aktivizimi i regjistrimit debug zbulon:

  • Cilat kroje u përputhën për çdo ngjarje
  • Hyrjen JSON të dërguar në çdo kroi
  • Daljen stdout dhe stderr nga proceset e krojeve
  • Kodet e daljes dhe koha e ekzekutimit
  • Kodet dhe trupat e përgjigjeve HTTP për krojet HTTP

Aktivizoni regjistrimin debug duke vendosur CLAUDE_DEBUG=1 në mjedis para se të filloni Claude Code.

Testimi i Krojeve Ish-vetëm

Krojet komandash mund të testohen jashtë Claude Code duke krijuar manualisht hyrjen JSON:

echo ‘{“event”:”PreToolUse”,”toolName”:”edit_file”,”toolInput”:{“path”:”test.txt”}}’ | ./scripts/my-hook.sh

Kjo vërteton logjikën e kroit pa aktivizuar operacione reale të Claude. Kodi i daljes dhe dalja stdout/stderr duhet të përputhen me sjelljen e pritshme.

Dështime të Kroit të Zakonshëm

Diskutimet e komunitetit identifikojnë këto probleme të shpeshta:

  • Gabime kohëzgjatjeje: Kohëzgjatja standarde 10-minutëshe shumë e shkurtër për operacione të ngadalta—rriteni me fushën `timeout`
  • Dështime zgjerimi shtegu: Variablat si ${file} të pazbuluara për ngjarje që nuk përfshijnë kontekstin e skedarit
  • Gabime lejeje: Skriptet e krojeve u mungojnë lejet ekzekutive—drejtoni chmod +x script.sh
  • Gabime analize JSON: Dalje JSON e dëmtuar nga krojet—verifikoni me `jq` para se të ktheheni
  • Mungesa e variablave mjedisi: Variablat nuk propagohen në procesin e kroit—kontrolloni mjedisin e Claude Code

Implikimet e Performancës së Krojeve

Krojet sinhrone bllokojnë rrjedhën e punës së Claude deri në përfundim. Kohëzgjatja standarde 10-minutëshe parandalon bllokime të pafundme, por edhe vonesa të shkurtra grumbullohen ndër operacione të shumta.

Praktikat raportojnë se krojet e thjeshta validimi kanë ndikim minimal performancë. Krojet e formatimit të skedarëve shkaktojnë ndikim performancë të dukshëm por të pranueshëm. Thirrjet e API të jashtme mund të krijojnë fërkime në rrjedhën e punës. Operacionet e rënda kompjuterike përfitojnë nga ekzekutimi asinkron.

Grupimi i Krojeve

Shumë kroje mund të përputhen me të njëjtën ngjarje. Sipas dokumentacionit referues, krojet ekzekutohen në mënyrë sekuenciale sipas rendit të definicionit. Nëse ndonjë kroi bllokon operacionin, krojet e mbetura nuk ekzekutohen.

Kjo ka rëndësi për performancën. Pesë kroje sinhrone në 200ms secila shtojnë një sekondë për ngjarje. Kombinimi i validimeve të lidhura në një kroje të vetme redukton mbivendosjen.

Modele të Avancuara

Përtej automatizimit bazë, krojet mundësojnë personalizim të sofistikuar të rrjedhës së punës.

Vargje Kroje me Gjendje

Krojet mund të ruajnë gjendjen midis ekzekutimeve duke përdorur skedarë ose baza të dhënash. Një kroje PostToolUse mund të regjistrojë operacionet e suksesshme që një kroje PreToolUse më vonë i vërteton kundër:

#!/bin/bash
# Regjistroni modifikimet e suksesshme
echo “${toolInput.path}” >> .claude/edit-history.txt

Një kroje shoqëruese PreToolUse mund të kontrollojë këtë histori për të parandaluar operacione të panevojshme ose për të zbatuar kufizime rendit.

Aktivizimi i Kroit Kushtëzuar

Variablat e mjedisit kontrollojnë sjelljen e kroit në kohë reale. Vendosja e CLAUDE_SKIP_HOOKS=1 çaktivizon krojet për situata emergjente.

Vetë krojet mund të kontrollojnë flamujt e mjedisit:

#!/bin/bash
if [ “$STRICT_MODE” = “1” ]; then
  # Apliko validimin e rreptë
  exit 1
fi
exit 0

Kjo mundëson sjellje të modalitetit zhvillim kundrejt modalitetit prodhim pa ndryshime konfigurimi.

Validim me Shumë Faza

Krojet PreToolUse mund të zbatojnë validim me shumë nivele ku kodi i daljes 2 lejon Claude të vazhdojë me paralajmërime:

  1. Dështime të forta (dalja 1): Bllokoni operacionet e rrezikshme
  2. Paralajmërime të buta (dalja 2): Njoftoni Claude për të rishqyrtuar
  3. Kaloni me kontekst (dalja 0 + JSON): Ofroni informacion shtesë

Kjo krijon një spektrum validimi më të nuancuar se sa lejo/moh binar.

Integrimi me CI/CD

Sipas dokumentacionit zyrtar të integrimit të platformës, Claude Code funksionon në mjedise CI/CD për rishikim automatik kodi dhe trajtim problemesh. Krojet zgjerojnë këtë automatizim.

Rrjedhat e punës GitHub Actions mund të definojnë kroje që zbatojnë politikat e ekipit gjatë sesioneve të automatizuara:

-- name: Run Claude Code with strict hooks
  env:
    STRICT_MODE: 1
  run: |
    claude “Review this PR and suggest improvements”

Flamuri STRICT_MODE aktivizon logjikën e validimit kushtëzuar në skriptet e krojeve. Kjo siguron që sesionet e automatizuara të ndjekin rregulla më rigoroze se zhvillimi interaktiv.

Gjenerimi i Gjendjes së Auditimit

Krojet PostToolUse në mjediset CI krijojnë regjistrime auditi të hollësishme të të gjitha operacioneve të Claude:

{
  “event”: “PostToolUse”,
  “command”: “./scripts/log-to-database.sh”,
  “async”: true
}

Regjistrimi në sfond nuk ndikon në performancë por ofron histori të plotë operacionale për pajtueshmëri dhe debugim.

Menuja /hooks

Claude Code ofron komandën /hooks që tregon të gjitha krojet aktive për sesionin aktual. Sipas dokumentacionit zyrtar, kjo menu tregon:

  • Lloji i ngjarjes së kroit
  • Modelet kërkuese
  • Endpointi i komandës ose URL-së
  • A ekzekutohet kroji në mënyrë asinkrone
  • Burimi i konfigurimit (projekt, përdorues, ose plugin)

Zgjedhja e një kroi tregon konfigurimin e tij të plotë dhe lejon çaktivizimin e përkohshëm për sesionin aktual.

Çaktivizoni ose Hiqni Krojet

Krojet mund të çaktivizohen pa hequr konfigurimin duke shtuar `"enabled": false` në definicionin e kroit. Kjo ruan konfigurimin ndërsa parandalon ekzekutimin.

Për të hequr përgjithmonë një kroi, fshini hyrjen e tij nga skedari i duhur settings.json. Ndryshimet hyjnë në fuqi në fillimin e radhës të sesionit ose kur drejtoni /reload.

Kroje në Shkathtësi dhe Agjentë

Sipas dokumentacionit zyrtar, krojet e definuara brenda konfigurimeve të shkathtësive ose nën-agjentëve aplikohen vetëm kur ekzekutohet ai shkathtësi ose agjent. Kjo mundëson automatizim të specializuar për rrjedha pune specifike.

Një nën-agjent debugimi mund të përfshijë kroje që regjistrojnë të gjitha thirrjet e mjeteve:

{
  “name”: “debugger”,
  “hooks”: [
    {
      “event”: “PostToolUse”,
      “command”: “./scripts/log-debug.sh”,
      “async”: true
    }
  ]
}

Këto kroje aktivizohen vetëm gjatë sesioneve të agjentit debugger, jo gjatë funksionimit normal të Claude Code.

Referimi i Skripteve nga Shtegu

Komandat e krojeve mbështesin si shtigje relative ashtu edhe absolute. Shtigjet relative zgjidhen nga rrënja e projektit ku funksionon Claude Code.

Praktikat më të mira nga diskutimet e komunitetit:

  • Ruani skriptet e krojeve në direktorinë .claude/hooks/
  • Përdorni emra përshkrues: validate-typescript.sh jo hook1.sh
  • Bëni skriptet e ekzekutueshme: chmod +x .claude/hooks/*.sh
  • Përfshini rreshtin shebang: #!/usr/bin/env bash ose #!/usr/bin/env python3
  • Shtoni trajtim gabimesh me `set -e` në skriptet bash

Kapcitetet e Ardhshme të Krojeve

Kërkesat e tipareve në GitHub zbulojnë përmirësime të planifikuara dhe të kërkuara të krojeve:

  • Kroje skriptash inline: Përcaktoni logjikën e kroit drejtpërdrejt në settings.json pa skedarë të jashtëm
  • Integrimi i mjeteve MCP: Thërrisni mjete serveri MCP nga krojet në vend të komandave shell
  • Bashkëpunimi me shumë agjentë: Kroje që koordinojnë midis instancave të Claude në makina të ndryshme
  • Tipizim i përmirësuar: Definicionet e tipave TypeScript për skemat e hyrjes/daljes së kroit

Sipas problemit #4274 në GitHub, kërkesa për lloje kroje të integruara (mjet MCP, skript inline, thirrje API) synon të thjeshtojë konfigurimin dhe të përmirësojë përvojën e zhvilluesit.

Pyetje të Shpeshta

A mund të parandalojnë krojet që Claude të ekzekutojë komanda të rrezikshme?

Po. Krojet PreToolUse mund të bllokojnë çdo ekzekutim mjeti duke dalë me kodin 1. Kjo përfshin modifikime skedarësh, ekzekutim komandash dhe thirrje mjeteve MCP. Kroi merr hyrjen e plotë të mjetit dhe mund të verifikojë kundër çdo kriteri para se të lejojë operacionin.

Si debugoj një kroi që nuk funksionon?

Aktivizoni regjistrimin debug me CLAUDE_DEBUG=1 para se të filloni Claude Code. Kontrolloni regjistrimet e sesionit për detaje ekzekutimi kroi duke përfshirë cilat kroje u përputhën, hyrjen JSON të dërguar, daljen stdout/stderr dhe kodet e daljes. Testoni krojet në mënyrë të pavarur duke përçuar JSON shembull në skriptin e kroit.

A funksionojnë krojet me të gjitha platformat Claude Code?

Krojet funksionojnë në CLI, aplikacionin desktop dhe shtojcën VS Code. Sipas dokumentacionit zyrtar, krojet ekzekutohen kudo që funksionon Claude Code me qasje në sistemin e skedarëve. Claude bazuar në shfletues dhe aplikacionet mobile nuk mbështesin kroje për shkak të kufizimeve të sandboksit.

A mund të modifikojnë krojet përgjigjet ose sjelljen e Claude?

Krojet kërkesash injektojnë udhëzime që ndikojnë në sjelljen e Claude. Krojet agjentë delegojnë menaxhimin e ngjarjeve tek nën-agjentë të specializuar. Megjithatë, krojet nuk mund të modifikojnë drejtpërdrejt tekstin e gjeneruar ose procesin e arsyetimit të Claude—ato punojnë duke ofruar kontekst dhe duke bllokuar operacionet.

Cili është ndryshimi midis krojeve async dhe sync?

Krojet sinhrone bllokojnë rrjedhën e punës së Claude deri në përfundim ose kohëzgjatje. Krojet asinkron ekzekutohen në sfond pa bllokim. Krojet sync mund të parandalojnë operacione përmes kodeve të daljes. Krojet async nuk mund të bllokojnë pasi Claude vazhdon para se kroi të përfundojë. Përdorni async për regjistrime dhe njoftime, sync për validim.

Si i ndaj krojet me një ekip?

Komitoni skedarin .claude/settings.json në versionin e kontrollit. Krojet e nivelit të projektit aplikohen për të gjithë anëtarët e ekipit që klonojnë deponë. Për politikat në të gjithë organizatën, ekipet mund të ruajnë një skedar të përbashkët të cilësimeve të nivelit të përdoruesit që anëtarët kopjojnë në ~/.claude/settings.json.

A mund të thërrasin krojet HTTP API të brendshme pas zjarrit?

Po, nëse Claude Code funksionon në një mjedis me qasje rrjeti në ato API. Krojet HTTP bëjnë kërkesa POST standarde nga makina që funksionon Claude Code. Zjarret korporative dhe VPN aplikohen normalisht. Proxy sandbox i përmendur në dokumentacion kontrollon ekspozimin e variablave mjedisore, jo drejtimin e rrjetit.

A rrisin krojet përdorimin e tokeneve të Claude Code?

Krojet kërkesash injektojnë tekst në kontekstin e Claude, gjë që konsumon tokene. Krojet komandash dhe HTTP nuk ndikojnë drejtpërdrejt në përdorimin e tokeneve, por dalja e tyre (mesazhe gabimi, sugjerime) bëhet pjesë e kontekstit të bisedës. Kodi i daljes 2 me mesazhe shpjeguese shton më shumë kontekst sesa kodi i daljes 1 me bllokim të thjeshtë.

Përfundim

Krojet e Claude Code transformojnë asistentin AI nga një mjet i fuqishëm në një platformë zhvillimi plotësisht të automatizuar. Sistemi i ngjarjeve ofron pika ndërhyrjeje gjatë gjithë rrjedhës së punës së Claude—nga inicializimi i sesionit deri te kompaktimi i kontekstit.

Krojet komandash menaxhojnë validimin dhe formatimin lokal. Krojet HTTP integrohen me shërbime dhe baza të dhënash të jashtme. Krojet kërkesash modifikojnë sjelljen përmes injektimit të kontekstit. Së bashku, këto mundësojnë modele automatizimi që zbatojnë politikat e ekipit, ruajnë cilësinë e kodit dhe integrohen me infrastrukturën ekzistuese të zhvillimit.

Sistemi kërkues filtron krojet për mjete dhe modele skedarësh specifike. Kodet e daljes dhe dalja JSON kontrollojnë rrjedhën e vendimmarrjes. Ekzekutimi asinkron parandalon bllokimin në operacione të ngadalta. Skema e plotë e konfigurimit mbështet gjithçka nga formatimi automatik i thjeshtë deri te validimi kompleks me shumë faza.

Filloni me kroje të thjeshta PostToolUse për formatim kodi. Shtoni validim PreToolUse ndërsa dalin politikat. Eksperimentoni me kroje kërkesash për modifikim sjelljeje. Ndërtoni integrime HTTP për zbatim në të gjithë ekipin.

Kontrolloni dokumentacionin zyrtar të Claude Code për referencën e plotë të krojeve dhe skemën e konfigurimit të azhurnuar ndërsa dalin aftësi të reja.

AI Perks

AI Perks ofron qasje në zbritje ekskluzive, kredite dhe oferta për mjete AI, shërbime cloud dhe API për të ndihmuar startup-et dhe zhvilluesit të kursejnë para.

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.