Claude Code Hooks: Tam Bələdçi (2026)

Author Avatar
Andrew
AI Perks Team
8,848
Claude Code Hooks: Tam Bələdçi (2026)

Qısa Xülasə: Claude Code hook-ları AI kodlaşdırma sessiyaları zamanı müəyyən həyat dövrü nöqtələrində icra olunan avtomatlaşdırma skriptləridir, developer-lərə xüsusi komandaları işə salmağa, əməliyyatları təsdiqləməyə, kodu formatlamağa, bildirişlər göndərməyə və layihə qaydalarını tətbiq etməyə imkan verir. Bu hook-lar SessionStart, PreToolUse və PostToolUse kimi hadisələr vasitəsilə Claude-un iş axınına inteqrasiya olunur, komanda əsaslı, HTTP əsaslı və prompt əsaslı icra nümunələrini konfiqurasiya edilə bilən vaxtaşırı limitlər və çıxış kodu davranışları ilə dəstəkləyir.

Claude Code-un hook sistemi AI kodlaşdırma köməkçisini faydalı bir alətdən tam avtomatlaşdırılmış bir development mühitinə çevirir. Əksər developer-lər hook-lar vasitəsilə mövcud olan nəzarət səviyyəsini başa düşmürlər.

Budur məsələ — hook-lar təkcə fayl redaktələrindən sonra skriptləri işə salmaqdan ibarət deyil. Onlar Claude-un bütün qərar qəbul etmə prosesi boyunca müdaxilə nöqtələri təmin edirlər. Komandaları icra etməzdən əvvəl. Alət çağırışı uğursuz olduqdan sonra. İcazə lazım olduqda. Hətta istifadəçi prompt-larını emal etməzdən əvvəl.

Bu bələdçi, rəsmi sənədlərin təmin etdiyi hər şeyi, üstəlik, icma müzakirələrinin istehsal mühitlərində həqiqətən işlədiyini ortaya qoyduğu praktiki nümunələri əhatə edir.

Claude Code Hook-ları Əslində Nə Edir

Rəsmi Claude Code sənədlərinə görə, hook-lar Claude Code-un həyat dövrünün müəyyən nöqtələrində icra olunan, istifadəçi tərəfindən təyin edilmiş shell komandaları, HTTP son nöqtələri və ya prompt enjeksiyonlarıdır. Onlar stdin vasitəsilə strukturlaşdırılmış JSON girişi qəbul edir və çıxış kodları və ya HTTP cavabları vasitəsilə iş axınına nəzarət edirlər.

Avtomatlaşdırma əksər bələdçilərin təklif etdiyindən daha dərinə gedir. Hook-lar alət icrasını tamamilə bloklaya, Claude-un reasoninginə əlavə kontekst daxil edə, xarici xidmətləri işə sala və Claude-un hörmət etməli olduğu təsdiqləmə qaydalarını tətbiq edə bilər.

Üç əsas hook növü mövcuddur:

  • Komanda hook-ları: stdout, stderr və çıxış kodları vasitəsilə ünsiyyət quran shell skriptləri
  • HTTP hook-ları: POST sorğuları qəbul edən və JSON cavabları qaytaran uzaq son nöqtələr
  • Prompt hook-ları: Müəyyən hadisələrdə Claude-un kontekstinə daxil edilən dinamik təlimatlar

Hər bir növ müxtəlif avtomatlaşdırma nümunələrinə xidmət edir. Komanda hook-ları yerli təsdiqləmə və formatlama ilə məşğul olur. HTTP hook-ları xarici xidmətlər və verilənlər bazaları ilə inteqrasiya olunur. Prompt hook-ları xarici proseslər olmadan Claude-un davranışını dəyişdirir.

Hook Həyat Dövrü və Hadisə Sistemi

Rəsmi sənədlər Claude Code-un icra axını zamanı yaranan bir çox hook hadisəsini (SessionStart, UserPromptSubmit, PreToolUse, PermissionRequest, PostToolUse, PostToolUseFailure, Notification və başqaları) təyin edir. Hər birinin nə vaxt yaranacağını başa düşmək, hansı avtomatlaşdırmanın mümkün olduğunu müəyyən edir.

Claude Code hook hadisələri və tipik sessiya zamanı onların icra axını
HadisəNə Zaman YaranırBloklaya Bilər 
SessionStartSessiya başladığında və ya davam etdirildikdəXeyr
UserPromptSubmitSiz promptu göndərdikdə, Claude onu emal etməzdən əvvəlBəli
PreToolUseAlət çağırışı icra olunmazdan əvvəlBəli
PermissionRequestİcazə dialoqu göründükdəBəli
PostToolUseAlət çağırışı uğurlu olduqdan sonraXeyr
PostToolUseFailureAlət çağırışı uğursuz olduqdan sonraXeyr
NotificationClaude Code bildiriş göndərdikdəXeyr
SubmitMessageClaude istifadəçiyə mesaj göndərdikdəXeyr
ContextCompactionKontekst pəncərəsi limitlərə yaxınlaşdıqdaXeyr

Bloklama bacarığı ən əhəmiyyətlisidir. PreToolUse hook-ları təhlükəli əməliyyatları icra etməzdən əvvəl mane ola bilər. Çıxış kodu 1 əməliyyatı bloklayır. Çıxış kodu 0 ona icazə verir. Çıxış kodu 2 Claude-u yenidən düşünməyə təşviq edir.

Amma dayan. PostToolUse hook-ları artıq icra olunduğu üçün əməliyyatları geri qaytara bilməz. Bu məhdudiyyət təsdiqləmə məntiqinin necə qurulduğunu formalaşdırır. Kritik yoxlamalar PreToolUse-da yerləşir. Təmizləmə və formatlama PostToolUse-da yerləşir.

Claude Code Quraşdırarkən AI Alət Perks-lərinə Baxın

Claude Code hook-ları ilə işləyirsinizsə, iş axınınızın ətrafında digər AI alətlərini də seçə bilərsiniz. Get AI Perks AI və bulud alətləri üçün başlanğıc kreditlərini və proqram təminatı endirimlərini bir yerdə toplayır. Platform 200-dən çox təklif daxildir, hər biri üçün perk şərtləri və iddia təlimatları var.

Claude və ya Digər AI Alət Perks-ləri Axtarırsınız?

Get AI Perks-ə baxın:

  • Claude və digər AI alət təkliflərinə baxın
  • Müraciət etməzdən əvvəl perk şərtlərini müqayisə edin
  • Alət yığınlarınızda başlanğıc endirimlərini tapın

👉 Mövcud AI proqram təminatı perk-lərinə baxmaq üçün Get AI Perks-i ziyarət edin.

Konfiqurasiya və Fayl Struktur

Hook-lar layihə daxilindəki .claude/settings.json faylında təyin edilir. Konfiqurasiya şeması qlobal hook-ları və hook-ların nə vaxt icra olunacağını süzən alətə xüsusi uyğunlaşdırıcıları dəstəkləyir.

Əsas komanda hook-unun strukturu:

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

`${file}` dəyişəni alət girdisindən olan faktiki fayl yolunu genişləndirir. Rəsmi sənədlərə görə, hook-lar komanda və arqument sahələrində bu dəyişən genişlənmələrini dəstəkləyir.

Hook Yerləşmə iyerarxiyası

Claude Code hook təyinlərini bir sıra yerlərdə yoxlayır, aydın prioritet sırası ilə:

  1. Layihə səviyyəsi: Mövcud iş sahəsindəki .claude/settings.json
  2. İstifadəçi səviyyəsi: Bütün sessiyalar üçün ~/.claude/settings.json
  3. Plugin tərəfindən təmin edilmiş: Quraşdırılmış plugin-lərlə birlikdə gələn hook-lar

Layihə hook-ları eyni hadisə üçün istifadəçi hook-larını üstələyir. Bu, qlobal bildiriş handler-lərini saxlayarkən layihəyə xüsusi formatlaşdırma qaydalarına imkan verir.

Seçici İcra üçün Uyğunlaşdırıcı Nümunələri

Uyğunlaşdırıcı sistemi hook-ları müəyyən alətlərə və ya şərtlərə uyğunlaşdırmaq üçün süzür. Uyğunlaşdırıcılar olmadan, hook-lar onların hadisəsinin hər bir görünüşü üçün yaranır.

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

`pathPattern` sahəsi glob sintaksis qəbul edir. `toolName` sahəsi edit_file, execute_command, read_file və create_directory kimi Claude-un daxili alətlərinə uyğun gəlir.

İcma müzakirələri, uyğunlaşdırıcı kombinasiyalarının VƏ məntiqi ilə işlədiyini ortaya qoyur. Hook-un icra olunması üçün bütün təyin edilmiş uyğunlaşdırıcılar uyğun gəlməlidir.

Komanda Hook-ları: Shell Skript İnterqrasiyası

Komanda hook-ları strukturlaşdırılmış JSON girişi ilə shell komandalarını və ya skriptlərini icra edir. Onlar yerli avtomatlaşdırma üçün ən çox yayılmış hook növünü təmsil edir.

Rəsmi sənədlər, komanda hook-larının bu strukturla stdin vasitəsilə JSON qəbul etdiyini göstərir:

{
  “event”: “PreToolUse”,
  “toolName”: “edit_file”,
  “toolInput”: {
    “path”: “src/app.ts”,
    “content”: “…”
  },
  “sessionId”: “abc123”,
  “turnId”: “turn-456”
}Bu girdini qərar vermək üçün skriptlər emal edir. Python təsdiqləmə hook-u belə görünə bilər:#!/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(“Qorunan faylları redaktə etmək olmaz”, file=sys.stderr)
    sys.exit(1)

sys.exit(0)

Çıxış kodu 0 əməliyyata icazə verir. Çıxış kodu 1 onu bloklayır və stderr mesajını Claude-a göstərir. Çıxış kodu 2 hadisədən asılı olaraq xüsusi davranışları tetikler.

Çıxış Kodu 2 Davranışı

Rəsmi hook-lar referans sənədlərinə görə, çıxış kodu 2-nin hadisəyə xas mənaları var (PreToolUse: bloklayır və yenidən düşünməyi təklif edir; UserPromptSubmit: bloklamadan kontekst təqdim edir; PermissionRequest: icazəni bloklayır):

  • PreToolUse: Aləti bloklayır və stderr mesajını kontekst kimi istifadə edərək Claude-u yenidən düşünməyə təşviq edir
  • UserPromptSubmit: stderr çıxışını bloklamadan əlavə kontekst kimi təqdim edir
  • PermissionRequest: İcazənin verilməsini bloklayır

Bu, sərt bloklama və icazə vermə arasında bir orta yol yaradır. Claude, əməliyyatın niyə problem yarada biləcəyi barədə rəy alır və öz yanaşmasını tənzimləyə bilər.

Asinxron Komanda Hook-ları

`async: true` bayrağı hook-ları Claude-un iş axınını bloklamadan fon rejimində işlədir. Bu, təyinat bildirişləri və ya metrik toplama kimi yavaş əməliyyatlar üçün əhəmiyyətlidir.

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

Asinxron hook yaranarkən, Claude Code prosesi başlayır və dərhal davam edir. `timeout` sahəsi saniyə cinsindən maksimum icra vaxtını təyin edir. Təyin edilməzsə, asinxron hook-lar 10 dəqiqəlik standart vaxt aşımı istifadə edir.

Real danışıq: asinxron hook-lar əməliyyatları bloklaya bilməz, çünki Claude davam etdikdən sonra işləyirlər. Onlar günlük kaydı, bildirişlər və təmizləmələr üçün işləyirlər — təsdiqləmə üçün deyil.

HTTP Hook-ları: Xarici Xidmət İnterqrasiyası

HTTP hook-ları uzaq son nöqtələrə JSON fayl yüklərini POST edir və qərar nəzarəti üçün cavabları emal edir. Onlar təsdiqləmə xidmətləri, verilənlər bazaları və üçüncü tərəf alətləri ilə inteqrasiyaya imkan verir.

Əsas HTTP hook konfiqurasiyası:

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

Fayl yüklənmə strukturu komanda hook girişi ilə uyğun gəlir, lakin HTTP POST gövdəsi kimi gəlir. Cavab Claude-un növbəti addımını müəyyən edir.

HTTP Cavab İşlənməsi

Rəsmi sənədlərə görə, HTTP hook-ları cavabları status kodu və gövdə məzmununa əsasən şərh edir:

Status KoduTəsirMesaj Mənbəyi 
200Əməliyyata icazə verinCavab gövdəsi (ixtiyari)
400Əməliyyatı bloklayınClaude-a göstərilən cavab gövdəsi
500Hook xətası, əməliyyata icazə verinQeyd edilib, lakin Claude-a göstərilməyib
DigərƏməliyyata icazə verinHook xətası iş axınını bloklamır

Cavab gövdəsi Claude-un gördüyü bir mesaj sahəsini ehtiva edə bilər. Bu, təsdiqləmə xidmətlərinə bir əməliyyatın niyə bloklandığını izah etməyə imkan verir.

Ətraf Mühit Dəyişən İnterpolasiyası

HTTP hook-ları url, başlıqlar və digər mətn sahələrində ${VAR} sintaksisini dəstəkləyir. Dəyişənlər Claude Code-un işlədiyi mühitdən genişlənir.

Rəsmi MCP sənədlərinə görə, ətraf mühit dəyişəninin genişlənməsi standart ehtiyat sintaksisini ehtiva edir: ${VAR:-default} VAR təyin edilibsə, onu genişləndirir, əks halda standart dəyərdən istifadə edir.

Təhlükəsizlik məhdudiyyəti: GitHub issue #28044-ə görə, HTTP hook-ları yalnız `allowedEnvVars` konfiqurasiya sahəsində açıq şəkildə siyahıya alınmış ətraf mühit dəyişənlərinə daxil ola bilər. Bu, təsadüfi etimadnamənin açıqlanmasını mane olur.

Prompt Hook-ları: Kontekst İnksiyası

Prompt hook-ları müəyyən hadisələrdə Claude-un kontekstinə dinamik təlimatlar daxil edir. Onlar xarici proseslər və ya API çağırışları olmadan davranışı dəyişdirirlər.

{
  “event”: “SessionStart”,
  “prompt”: “Siz TypeScript layihəsi üzərində işləyirsiniz. Həmişə ciddi null yoxlamalarını istifadə edin və promislərə qarşı async/await üstünlük verin.”
}

Daxil edilmiş mətn həmin sessiya üçün Claude-un sistem təlimatlarının bir hissəsi olur. Prompt hook-ları hadisə məlumatlarına əsasən genişlənən şablon dəyişənlərini də istifadə edə bilər.

Dinamik Prompt Yaradılması

Rəsmi sənədlərə görə, prompt hook-ları dinamik prompt-lar yaradan komanda sahələrini dəstəkləyir:

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

Komanda standart JSON girdisini stdin vasitəsilə qəbul edir və prompt mətnini stdout-a çıxarır. Bu, layihə vəziyyətinə əsaslanan kontekstə uyğun təlimatların yaradılmasına imkan verir.

Agent Əsaslı Hook-lar

Agent hook-ları birbaşa prompt daxil etməsi əvəzinə hadisəni idarə edən bir alt agent təyin edir. Alt agent hadisə haqqında kontekst alır və çoxaddımlı reasoning edə bilər.

{
  “event”: “PostToolUseFailure”,
  “agent”: “debugger”,
  “agentPrompt”: “Bir alət çağırışı uğursuz oldu. Səhvi təhlil edin və düzəlişlər təklif edin.”
}

Adlandırılmış alt agent layihə konfiqurasiyasında təyin edilməlidir. Agent hook-ları sadə prompt daxil etməsinin təmin edə bilmədiyi mürəkkəb qərar məntiqinə imkan verir.

Praktiki Hook Nümunələri

İcma müzakirələri və rəsmi nümunələr istehsalda etibarlı şəkildə işləyən xüsusi avtomatlaşdırma nümunələrini ortaya qoyur.

Redaktələrdən Sonra Kodu Avtomatik Formatla

Ən çox yayılmış nümunə, Claude faylları redaktə etdikdən sonra kodu avtomatik olaraq formatlayır:

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

`${toolInput.path}` dəyişəni redaktə edilmiş fayl yolunu genişləndirir. PostToolUse, uğurlu redaktələrdən sonra formatlamanın olmasını təmin edir, lakin Claude-un iş axınını bloklamır.

Qorunan Fayl Dəyişikliklərini Bloklayın

PreToolUse hook-ları fayl qoruma qaydalarını tətbiq edir:

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

Skript, hədəf yolunu qorunan nümunələrə qarşı təsdiqləyir və qadağan olunmuş redaktələri bloklamaq üçün 1 kodu ilə çıxır.

Claude Girişə Ehtiyac Duyduqda Bildiriş Alın

Rəsmi iş axını bələdçisinə görə, Bildiriş hook-ları masaüstü xəbərdarlıqları tetikləyə bilər və ya xarici xidmətlərə mesaj göndərə bilər:

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

Bu, istifadəçi girişi gözləyərkən və ya tapşırıq tamamlandıqdan sonra, Claude Code bildiriş göndərdikdə hər dəfə yaranır.

Sıxışmadan Sonra Konteksti Yenidən Daxil Edin

ContextCompaction hook-ları söhbət pəncərəsi dolduqda vacib konteksti bərpa edir:

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

Komanda çıxışı, sıxışdırma köhnə mesajları sildikdən sonra Claude-un kontekstinə geri daxil edilir. Bu, kritik layihəyə xas təlimatların itkisini mane olur.

Konfiqurasiya Dəyişikliklərini Audit Edin

Claude konfiqurasiya fayllarını nə vaxt dəyişdirdiyini izləyin:

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

Asinxron icra, git əməliyyatları tamamlanarkən Claude-u bloklamağı mane edir. Bu, əl ilə mərhələləşdirmə olmadan konfiqurasiya dəyişikliklərinin audit izini yaradır.

JSON Çıxışı və Qərar Nəzarəti

Komanda hook-ları sadə çıxış kodlarından kənar ətraflı rəy vermək üçün strukturlaşdırılmış JSON çıxara bilər. Rəsmi referansına görə, JSON çıxışı Claude-un qərar vermə üçün şərh etdiyi çox sahəli cavablara imkan verir.

{
  “allowed”: false,
  “message”: “Bu fayl komanda siyasəti tərəfindən qorunur”,
  “suggestion”: “src/features/ əvəzinə yeni fayl yaradın”
}

`allowed` sahəsi əməliyyatın davam edib-etmədiyini idarə edir. Mesaj kontekst kimi Claude-a görünür. Təklif sahəsi alternativ yanaşmaları təqdim edir.

Hook-ların JSON çıxış etməsi üçün onlar aşağıdakıları etməlidirlər:

  1. Stdout-a etibarlı JSON yazın
  2. 0 kodu ilə çıxın (icazəli üçün) və ya 1 (bloklanmış üçün)
  3. Minimum `allowed` boolean sahəsini ehtiva edin

Claude Code JSON-u emal edir və onu rəy döngüsünü gücləndirmək üçün istifadə edir. Çıxış kodları hələ də əsas qərarı müəyyən edir, lakin JSON daha zəngin kontekst təmin edir.

Hook Giriş Sahələri Referansı

Bütün hook-lar ümumi sahələr və hadisəyə xas məlumatlarla birlikdə stdin vasitəsilə JSON obyekti qəbul edir. Tam şemayı başa düşmək daha mürəkkəb hook məntiqinə imkan verir.

Hook giriş JSON şeması, ümumi sahələri və hadisəyə xas genişlənmələri göstərir

Ümumi Giriş Sahələri

Hər bir hook bu əsas sahələri qəbul edir:

  • event: Hook hadisəsinin adı (məsələn, "PreToolUse")
  • sessionId: Cari Claude sessiyasının unikal identifikatoru
  • turnId: Cari söhbət növbəsinin identifikatoru
  • timestamp: Hadisənin yarandığı vaxtın ISO 8601 vaxt damğası

Alət Hadisəsi Sahələri

PreToolUse, PostToolUse və PostToolUseFailure hadisələri aşağıdakıları əhatə edir:

  • toolName: Çağırılan alətin adı (edit_file, execute_command, və s.)
  • toolInput: Alətin giriş parametrlərini ehtiva edən obyekt
  • toolResponse: Alətin çıxış məlumatları (yalnız PostToolUse)
  • error: Mesaj və kodu daxil olmaqla səhvlər (yalnız PostToolUseFailure)

Alət girdisinin strukturu alətdən asılı olaraq dəyişir. `edit_file` üçün yol və məzmunu ehtiva edir. `execute_command` üçün komanda və arqumentləri ehtiva edir.

İcazə Hadisəsi Sahələri

PermissionRequest hadisələri aşağıdakıları əhatə edir:

  • permissionType: Tələb olunan icazə növü (file_write, command_execute, və s.)
  • requestedAction: İcazə tələb edən xüsusi əməliyyat
  • resourcePath: Təsirə məruz qalan fayl yolu və ya resurs identifikatoru

MCP Alət Hook-ları

Rəsmi hook-lar referansına görə, hook-lar `mcpTool` matcher sahəsindən istifadə edərək Model Kontekst Protokolu (MCP) alətlərinə uyğunlaşa bilər. Bu, Claude MCP serverləri tərəfindən təmin edilən xarici alətlərdən istifadə etdikdə hook icrasına imkan verir.

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

`mcpTool` dəyəri `server-name/tool-name` formatında alətin adına uyğun gəlir. Bu, verilənlər bazası sorğuları, API çağırışları və ya digər xarici əməliyyatlar üçün təsdiqləmə məntiqinə imkan verir.

GitHub xüsusiyyət tələbləri, hook-ların MCP server bildirişlərini yoxlamaq və xarici hadisələrə cavab vermək kimi daha dərin MCP inteqrasiyasına artan marağı göstərir.

Təhlükəsizlik Nəzərə Alınmaları

Hook-lar Claude Code-un özü ilə eyni icazələrlə icra olunur. Bu, çox istifadəçili mühitlər və paylaşılmış konfiqurasiyalar üçün təhlükəsizlik nəticələri yaradır.

Komanda İcrası Sandbox-u

GitHub issue #28044-ə görə, HTTP hook-ları şəbəkə girişini məhdudlaşdıran və ətraf mühit dəyişənlərini süzən bir sandbox proxy-dən keçir. Komanda hook-larının belə məhdudiyyətləri yoxdur — onlar tam shell girişi ilə işləyirlər.

Sənədlər bu təcrübələri tövsiyə edir:

  • Hook komandalarında heç vaxt etimadnamələri saxlamayın
  • Həssas məlumatlar üçün ətraf mühit dəyişənlərindən istifadə edin
  • ${...} genişlənmələrindən gələn bütün girdiləri təsdiqləyin
  • Xarici xidmətlər üçün vaxt aşımı limitlərini tətbiq edin
  • Xətalar zamanı bloklamanı mane olmaq üçün qeyri-kritik əməliyyatlar üçün asinxron hook-lardan istifadə edin

Hook İcrasının Təcrid Edilməsi

`~/.claude/settings.json`-dakı istifadəçi səviyyəli hook-lar bütün layihələrə tətbiq olunur. Bu, müxtəlif etibarlı sərhədlər arasında işləyərkən risklər yaradır. Layihə səviyyəli hook-lar istifadəçi hook-larını üstələyir, lakin onları tamamilə deaktiv edə bilməz.

Claude Code-dakı `/hooks` menyusu cari sessiya üçün bütün aktiv hook-ları göstərir. Həssas layihələr üzərində işləməzdən əvvəl bu siyahıya baxmaq potensial təhlükəsizlik narahatlıqlarını aşkar etməyə kömək edir.

Debug və Problemlərin Həlli

Hook xətaları həmişə Claude-un söhbətində aydın görünmür. Rəsmi sənədlər bir neçə debug yanaşmasını təmin edir.

Hook İcrası Logları

Claude Code hook icrasını sessiya debug çıxışına yazır. Problemlərin həlli bələdçisinə görə, debug log-lamanı aktivləşdirmək aşağıdakıları ortaya qoyur:

  • Hər bir hadisə üçün hansı hook-lar uyğun gəldi
  • Hər bir hook-a göndərilən JSON girdisi
  • Hook proseslərindən stdout və stderr çıxışı
  • Çıxış kodları və icra vaxtı
  • HTTP hook-ları üçün HTTP cavab kodları və gövdələri

Claude Code-u işə salmazdan əvvəl mühitdə `CLAUDE_DEBUG=1` təyin edərək debug log-lamanı aktivləşdirin.

Hook-ları Müstəqil Olarak Test Edin

Komanda hook-ları, əl ilə JSON girdisi yaradaraq Claude Code xaricində test edilə bilər:

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

Bu, actual Claude əməliyyatlarını tetiklemeden hook məntiqini təsdiqləyir. Çıxış kodu və stdout/stderr çıxışı gözlənilən davranışla uyğun gəlməlidir.

Ümumi Hook Xətaları

İcma müzakirələri bu tez-tez rast gəlinən məsələləri müəyyən edir:

  • Vaxt aşımı xətaları: Standart 10 dəqiqəlik vaxt aşımı yavaş əməliyyatlar üçün çox qısa — `timeout` sahəsi ilə artırın
  • Yol genişlənməsi xətaları: `${file}` kimi dəyişənlər fayl konteksti daxil etməyən hadisələr üçün təyin olunmayıb
  • İcazə xətaları: Hook skriptlərində icra icazələri yoxdur — `chmod +x script.sh` işlədin
  • JSON parse xətaları: Hook-lardan səhv JSON çıxışı — qayıtmazdan əvvəl `jq` ilə təsdiqləyin
  • Ətraf mühit dəyişəninin mövcud olmaması: Hook prosesinə yayılmayan dəyişənlər — Claude Code-un mühitini yoxlayın

Hook Performans Nəticələri

Sinkron hook-lar tamamlanana qədər Claude-un iş axınını bloklayır. Standart 10 dəqiqəlik vaxt aşımı qeyri-müəyyən dayanmaların qarşısını alır, lakin qısa gecikmələr belə bir çox əməliyyat boyunca yığılır.

Praktiklər sadə təsdiqləmə hook-larının əhəmiyyətsiz performans təsirinə malik olduğunu bildirirlər. Fayl formatlaşdırma hook-ları nəzərə çarpan, lakin qəbuledilən performans təsirinə səbəb olur. Xarici API çağırışları iş axını sürtünməsi yarada bilər. Ağır hesablamalar asinxron icradan faydalanır.

Hook Qruplaşdırma

Birdən çox hook eyni hadisəyə uyğun gələ bilər. Referans sənədlərinə görə, hook-lar təyin sırasına uyğun olaraq ardıcıl icra olunur. Hər hansı bir hook əməliyyatı bloklayarsa, qalan hook-lar icra olunmur.

Bu, performans üçün əhəmiyyətlidir. 200ms hər biri olan beş sinkron hook hadisə başına bir saniyə əlavə edir. Müvafiq təsdiqləmələri vahid hook-da birləşdirmək əlavə xərcləri azaldır.

Qabaqcıl Nümunələr

Əsas avtomatlaşdırmadan başqa, hook-lar mürəkkəb iş axını fərdiləşdirməsinə imkan verir.

Stateful Hook Zəncirləri

Hook-lar fayllar və ya verilənlər bazaları istifadə edərək icralar arasında vəziyyəti saxlaya bilər. Bir PostToolUse hook-u daha sonra PreToolUse hook-unun qarşılaşdırdığı uğurlu əməliyyatları qeyd edə bilər:

#!/bin/bash
# Uğurlu redaktələri qeyd edin
echo “${toolInput.path}” >> .claude/edit-history.txt

Bir əlavə PreToolUse hook-u, təkrarlanan əməliyyatları mane olmaq və ya sıra məhdudiyyətlərini tətbiq etmək üçün bu tarixi yoxlaya bilər.

Şərti Hook Aktivasiyası

Ətraf mühit dəyişənləri hook davranışını iş vaxtında idarə edir. `CLAUDE_SKIP_HOOKS=1` təyin etmək fövqəladə vəziyyətlər üçün hook-ları deaktiv edir.

Hook-lar özləri ətraf mühit bayraqlarını yoxlaya bilər:

#!/bin/bash
if [ “$STRICT_MODE” = “1” ]; then
  # Sərt təsdiqləmə tətbiq et
  exit 1
fi
exit 0

Bu, konfiqurasiya dəyişiklikləri olmadan development rejimi və istehsal rejimi davranışına imkan verir.

Çox Mərhələli Təsdiqləmə

PreToolUse hook-ları, çıxış kodu 2-nin Claude-a xəbərdarlıqlarla davam etməyə imkan verdiyi çox səviyyəli təsdiqləmə tətbiq edə bilər:

  1. Sərt xətalar (çıxış 1): Təhlükəli əməliyyatları bloklayın
  2. Yumşaq xəbərdarlıqlar (çıxış 2): Yenidən düşünməyi Claude-a bildirin
  3. Kontekstlə keçin (çıxış 0 + JSON): Əlavə məlumat təqdim edin

Bu, ikili icazə/rədd etmədən daha incə bir təsdiqləmə spektr yaradır.

CI/CD ilə İnterqrasiya

Rəsmi platform interqrasiyası sənədlərinə görə, Claude Code avtomatik kod baxışı və məsələlərin təsnif edilməsi üçün CI/CD mühitlərində işləyir. Hook-lar bu avtomatlaşdırmanı genişləndirir.

GitHub Actions iş axınları avtomatlaşdırılmış sessiyalar zamanı komanda siyasətlərini tətbiq edən hook-lar təyin edə bilər:

– name: Sərt hook-larla Claude Code işlədin
  env:
    STRICT_MODE: 1
  run: |
    claude “Bu PR-ə baxın və təkmilləşdirmələr təklif edin”

`STRICT_MODE` bayrağı, hook skriptlərində şərti təsdiqləmə məntiqini aktivləşdirir. Bu, avtomatlaşdırılmış sessiyaların interaktiv development-dən daha sərt qaydalara riayət etməsini təmin edir.

Audit İzi Yaratma

CI mühitlərindəki PostToolUse hook-ları bütün Claude əməliyyatlarının ətraflı audit loglarını yaradır:

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

Fon günlük kaydı performansa təsir etmir, lakin uyğunluq və debug üçün tam əməliyyat tarixini təmin edir.

The /hooks Menyu

Claude Code, cari sessiya üçün bütün aktiv hook-ları göstərən `/hooks` komandasını təqdim edir. Rəsmi sənədlərə görə, bu menyu aşağıdakıları göstərir:

  • Hook hadisə növü
  • Uyğunlaşdırıcı nümunələri
  • Komanda və ya URL son nöqtəsi
  • Hook-un async işləyib-işləmədiyi
  • Konfiqurasiya mənbəyi (layihə, istifadəçi və ya plugin)

Hook seçmək onun tam konfiqurasiyasını göstərir və cari sessiya üçün müvəqqəti deaktiv etməyə imkan verir.

Hook-ları Deaktiv Et və ya Sil

Hook-lar konfiqurasiyanı silmədən deaktiv edilə bilər, bunun üçün hook təyinində `"enabled": false` əlavə etmək lazımdır. Bu, konfiqurasiyanı saxlayır, lakin icrasını mane olur.

Hook-u daimi silmək üçün, onu müvafiq settings.json faylından silin. Dəyişikliklər növbəti sessiya yenidən başladığında və ya `/reload` işlədildikdə qüvvəyə minir.

Hook-lar Bacarıqlarda və Agentlərdə

Rəsmi sənədlərə görə, bacarıq və ya alt agent konfiqurasiyaları daxilində təyin edilmiş hook-lar yalnız həmin bacarıq və ya agent icra olunduqda tətbiq olunur. Bu, müəyyən iş axınları üçün xüsusi avtomatlaşdırmaya imkan verir.

Bir debug alt agenti, bütün alət çağırışlarını qeyd edən hook-ları ehtiva edə bilər:

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

Bu hook-lar yalnız normal Claude Code əməliyyatı zamanı deyil, yalnız debug agent sessiyaları zamanı yaranır.

Skriptlərə Yol ilə İstinad

Hook komandaları həm nisbi, həm də mütləq yolları dəstəkləyir. Nisbi yollar Claude Code-un işlədiyi layihə kökündən həll olunur.

İcma müzakirələrindən ən yaxşı təcrübələr:

  • Hook skriptlərini `.claude/hooks/` qovluğunda saxlayın
  • Təsviredici adlardan istifadə edin: `validate-typescript.sh` deyil, `hook1.sh`
  • Skriptləri icra edilən hala gətirin: `chmod +x .claude/hooks/*.sh`
  • Shebang sətrini daxil edin: `#!/usr/bin/env bash` və ya `#!/usr/bin/env python3`
  • Bash skriptlərində `set -e` ilə xəta idarə etməsi əlavə edin

Gələcək Hook Qabiliyyətləri

GitHub xüsusiyyət tələbləri planlaşdırılmış və tələb olunan hook təkmilləşdirmələrini ortaya qoyur:

  • Inline skript hook-ları: Xarici fayllar olmadan `settings.json`-da birbaşa hook məntiqini təyin edin
  • MCP alətlərinə inteqrasiya: Shell komandaları əvəzinə hook-lardan MCP server alətlərini çağırın
  • Çox agent əməkdaşlığı: Müxtəlif maşınlardakı Claude instansları arasında əlaqə quran hook-lar
  • Təkmilləşdirilmiş tiplər: Hook giriş/çıxış şemaları üçün TypeScript tip təyinləri

GitHub issue #4274-ə görə, inteqrasiya olunmuş hook tipləri (MCP aləti, inline skript, API çağırışı) üçün tələb, konfiqurasiyanı sadələşdirmək və developer təcrübəsini yaxşılaşdırmaq məqsədi daşıyır.

Tez-tez Verilən Suallar

Hook-lar Claude-un təhlükəli komandaları icra etməsinin qarşısını ala bilərmi?

Bəli. PreToolUse hook-ları 1 kodu ilə çıxaraq istənilən alət icrasını bloklaya bilər. Bu, fayl redaktələri, komanda icrası və MCP alət çağırışlarını əhatə edir. Hook tam alət girdisini alır və əməliyyata icazə vermədən əvvəl hər hansı bir meyara qarşı təsdiqləyə bilər.

İşləməyən hook-u necə debug etməli?

Claude Code-u işə salmazdan əvvəl `CLAUDE_DEBUG=1` ilə debug log-lamanı aktivləşdirin. Hook icra detalları üçün sessiya loglarına baxın, hansı hook-ların uyğun gəldiyi, göndərilən JSON girdisi, stdout/stderr çıxışı və çıxış kodları daxil olmaqla. Nümunə JSON-u hook skriptinə yönləndirərək hook-ları müstəqil olaraq test edin.

Hook-lar bütün Claude Code platformaları ilə işləyirmi?

Hook-lar CLI, masaüstü proqramı və VS Code uzantısında işləyir. Rəsmi sənədlərə görə, hook-lar fayl sisteminə çıxışı olan yerlərdə Claude Code işlədiyi yerdə icra olunur. Brauzer əsaslı Claude və mobil tətbiqlər sandbox məhdudiyyətləri səbəbindən hook-ları dəstəkləmir.

Hook-lar Claude-un cavablarını və ya davranışını dəyişdirə bilərmi?

Prompt hook-ları Claude-un davranışına təsir edən təlimatlar daxil edir. Agent hook-ları hadisə emalını xüsusi alt agentlərə verir. Lakin, hook-lar Claude-un yaradılmış mətnini və ya reasoning prosesini birbaşa dəyişdirə bilməz — onlar kontekst təmin etməklə və əməliyyatları bloklamaqla işləyirlər.

Asinxron və sinkron hook-lar arasındakı fərq nədir?

Sinkron hook-lar tamamlanma və ya vaxt aşımı baş verənə qədər Claude-un iş axınını bloklayır. Asinxron hook-lar bloklamadan fon rejimində işləyir. Sinkron hook-lar çıxış kodları vasitəsilə əməliyyatları mane ola bilər. Asinxron hook-lar bloklaya bilməz, çünki Claude hook tamamlanmazdan əvvəl davam edir. Loglama və bildirişlər üçün asinxron, təsdiqləmə üçün sinkron istifadə edin.

Hook-ları komanda arasında necə bölüşdürməli?

`.claude/settings.json` faylını versiya nəzarətinə commit edin. Layihə səviyyəli hook-lar repozitoriyanı klonlayan bütün komanda üzvlərinə tətbiq olunur. Təşkilat səviyyəli siyasətlər üçün komandalar üzvlərin `~/.claude/settings.json`-a köçürdüyü paylaşılan istifadəçi səviyyəli settings faylını saxlaya bilər.

HTTP hook-ları divarların arxasındakı daxili API-lərə zəng edə bilərmi?

Bəli, Claude Code həmin API-lərə şəbəkə çıxışı olan bir mühitdə işləyirsə. HTTP hook-lar Claude Code-u işlədən maşından standart POST sorğuları edir. Korporativ divarlar və VPN-lər normal şəkildə tətbiq olunur. Sənədlərdə qeyd olunan sandbox proxy, şəbəkə marşrutlaşdırmasını deyil, ətraf mühit dəyişənlərinin məruz qalmasını idarə edir.

Hook-lar Claude Code-un token istifadəsini artırırmı?

Prompt hook-ları Claude-un kontekstinə mətn daxil edir, bu da token istifadə edir. Komanda və HTTP hook-ları birbaşa token istifadəsinə təsir etmir, lakin onların çıxışı (səhv mesajları, təkliflər) söhbət kontekstinin bir hissəsi olur. Çıxış kodu 2 izahlı mesajlarla sadə bloklama 1 kodundan daha çox kontekst əlavə edir.

Nəticə

Claude Code hook-ları AI köməkçisini güclü bir alətdən tam avtomatlaşdırılmış bir development platformasına çevirir. Hadisə sistemi, Claude-un iş axını boyunca — sessiya başlanğıcından kontekst sıxışdırmasına qədər — müdaxilə nöqtələri təmin edir.

Komanda hook-ları yerli təsdiqləmə və formatlama ilə məşğul olur. HTTP hook-ları xarici xidmətlər və verilənlər bazaları ilə inteqrasiya olunur. Prompt hook-ları kontekst daxil etmə yolu ilə davranışı dəyişdirir. Birlikdə, bunlar komanda siyasətlərini tətbiq edən, kod keyfiyyətini qoruyan və mövcud development infrastrukturuna inteqrasiya edən avtomatlaşdırma nümunələrinə imkan verir.

Uyğunlaşdırıcı sistemi hook-ları müəyyən alətlərə və fayl nümunələrinə uyğunlaşdırır. Çıxış kodları və JSON çıxışı qərar axınını idarə edir. Asinxron icra yavaş əməliyyatlarda bloklanmanı mane olur. Tam konfiqurasiya şeması sadə avtomatik formatlaşdırmadan mürəkkəb çox mərhələli təsdiqləməyə qədər hər şeyi dəstəkləyir.

Kod formatlama üçün sadə PostToolUse hook-ları ilə başlayın. Siyasətlər ortaya çıxdıqca PreToolUse təsdiqləməsini əlavə edin. Davranış dəyişikliyi üçün prompt hook-ları ilə təcrübə keçirin. Komanda miqyaslı tətbiq üçün HTTP inteqrasiyaları qurun.

Yeni qabiliyyətlər çatdırıldıqca tam hook-lar referansı və yenilənmiş konfiqurasiya şeması üçün rəsmi Claude Code sənədlərinə baxın.

AI Perks

AI Perks startaplara və tərtibatçılara pul qənaət etməyə kömək etmək üçün AI alətləri, bulud xidmətləri və API-lər üzrə eksklüziv endirimlər, kreditlər və təkliflərə giriş təmin edir.

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.