Qisqa xulosa: Claude Code ilgaklari - bu AI kodlash sessiyalari davomida ma'lum bir hayotiy tsikl nuqtalarida ishlaydigan avtomatlashtirish skriptlari bo'lib, bu dasturchilarga maxsus buyruqlarni bajarish, harakatlarni tasdiqlash, kodni formatlash, bildirishnomalar yuborish va loyiha qoidalarini qo'llash imkonini beradi. Ushbu ilgaklar SessionStart, PreToolUse va PostToolUse kabi hodisalar orqali Claude'ning ish oqimiga integratsiya qilinadi, buyruq asosida, HTTP asosida va prompt asosida bajarish usullarini, sozlanishi mumkin bo'lgan taymutlar va chiqish kod xatti-harakatlari bilan qo'llab-quvvatlaydi.
Claude Code'ning ilgaklar tizimi AI kodlash yordamchisini foydali vositadan to'liq avtomatlashtirilgan dasturiy ta'minotni ishlab chiqish muhitiga aylantiradi. Ko'pchilik dasturchilar ilgaklar orqali mavjud bo'lgan nazorat darajasini tushunmaydi.
Gap shundaki, ilgaklar faqat fayl tahrirlaridan keyin skriptlarni bajarish bilan cheklanmaydi. Ular Claude'ning butun qaror qabul qilish jarayoni davomida kesishish nuqtalarini ta'minlaydi. Buyruqni bajarishdan oldin. Asbob chaqiruvi muvaffaqiyatsiz tugaganda. Izn talab qilinganda. Foydalanuvchi promptlarini qayta ishlashdan oldin ham.
Ushbu qo'llanma rasmiy hujjatlarda keltirilgan barcha narsalarni, shuningdek, jamiyat muhokamalari ishlab chiqarish muhitlarida haqiqatda ishlaydigan amaliy uslublarni qamrab oladi.
Claude Code Ilgaklari Haqiqatda Nima Qiladi
Rasmiy Claude Code hujjatlariga ko'ra, ilgaklar - bu Claude Code'ning hayotiy tsiklining ma'lum bir nuqtalarida ishlaydigan foydalanuvchi tomonidan belgilangan shell buyruqlari, HTTP manzillari yoki prompt kiritmalari. Ular stdin orqali tuzilgan JSON kiritmalarini qabul qiladi va chiqish kodlari yoki HTTP javoblari orqali ish oqimini boshqaradi.
Avtomatlashtirish ko'pchilik qo'llanmalarda ko'rsatilganidan chuqurroqdir. Ilgaklar asbobni bajarishni butunlay bloklashi, Claude'ning mulohazalariga qo'shimcha kontekst kiritishi, tashqi xizmatlarni ishga tushirishi va Claude hurmat qilishi kerak bo'lgan tasdiqlash qoidalarini qo'llashi mumkin.
Uchta asosiy ilgak turi mavjud:
- Buyruq ilgaklari: stdout, stderr va chiqish kodlari orqali muloqot qiluvchi shell skriptlari
- HTTP ilgaklari: POST so'rovlarini qabul qiluvchi va JSON javoblarini qaytaruvchi masofaviy manzillar
- Prompt ilgaklari: Muayyan hodisalarda Claude'ning kontekstiga kiritilgan dinamik ko'rsatmalar
Har bir tur turli avtomatlashtirish uslublariga xizmat qiladi. Buyruq ilgaklari mahalliy tekshirish va formatlashni boshqaradi. HTTP ilgaklari tashqi xizmatlar va ma'lumotlar bazalarini integratsiya qiladi. Prompt ilgaklari tashqi jarayonlarsiz Claude'ning xatti-harakatlarini o'zgartiradi.
Ilgak Hayotiy Tsikli va Hodisalar Tizimi
Rasmiy hujjatlar Claude Code ijro jarayonida ishga tushadigan ko'plab ilgak hodisalarini (SessionStart, UserPromptSubmit, PreToolUse, PermissionRequest, PostToolUse, PostToolUseFailure, Notification va boshqalar) belgilaydi. Har biri qachon ishga tushishini tushunish qanday avtomatlashtirish mumkinligini aniqlaydi.

| Hodisa | Qachon ishga tushadi | Bloklashi mumkinmi |
|---|---|---|
| SessionStart | Sessiya boshlanganda yoki qayta boshlanganda | Yo'q |
| UserPromptSubmit | Siz promptni yuborganda, Claude uni qayta ishlashidan oldin | Ha |
| PreToolUse | Asbob chaqiruvi ishga tushishidan oldin | Ha |
| PermissionRequest | Ruxsat dialog oynasi paydo bo'lganda | Ha |
| PostToolUse | Asbob chaqiruvi muvaffaqiyatli tugagandan so'ng | Yo'q |
| PostToolUseFailure | Asbob chaqiruvi muvaffaqiyatsiz tugagandan so'ng | Yo'q |
| Notification | Claude Code bildirishnoma yuborganda | Yo'q |
| SubmitMessage | Claude foydalanuvchiga xabar yuborganda | Yo'q |
| ContextCompaction | Kontekst oynasi chegaralarga yaqinlashganda | Yo'q |
Bloklash qobiliyati eng muhimdir. PreToolUse ilgaklari xavfli operatsiyalarni ular ishga tushishidan oldin to'xtatishi mumkin. Chiqish kodi 1 harakatni bloklaydi. Chiqish kodi 0 uni ruxsat beradi. Chiqish kodi 2 Claude'ni qayta ko'rib chiqishga undaydi.
Lekin kuting. PostToolUse ilgaklari harakatlarni bekor qila olmaydi, chunki asbob allaqachon bajarilgan. Ushbu cheklov tasdiqlash mantiqining qanday tuzilganligini shakllantiradi. Muhim tekshiruvlar PreToolUse'da joylashgan. Tozalash va formatlash PostToolUse'da joylashgan.

Claude Code-ni Sozlashda AI Asboblarining Foydalarini Ko'rib Chiqing
Agar siz Claude Code ilgaklari bilan ishlayotgan bo'lsangiz, siz o'z ish oqimingiz atrofida boshqa AI vositalarini ham tanlayotgan bo'lishingiz mumkin. Get AI Perks AI va bulutli vositalar uchun startup kreditlari va dasturiy ta'minot chegirmalarini bir joyda to'playdi. Platformada 200 dan ortiq takliflar mavjud bo'lib, ularning har biri uchun foyda shartlari va da'vo qilish bo'yicha ko'rsatmalar mavjud.
Claude yoki Boshqa AI Asboblarining Foydalarini Qidiryapsizmi?
Get AI Perks-ni quyidagilar uchun tekshiring:
- Claude va boshqa AI vositalari takliflarini ko'rib chiqing
- Murojaat qilishdan oldin foyda shartlarini taqqoslang
- Sizning vosita stekingiz bo'ylab startup chegirmalarini toping
👉 Joriy AI dasturiy ta'minoti imtiyozlarini o'rganish uchun Get AI Perks-ga tashrif buyuring.
Sozlash va Fayl Tuzilishi
Ilgaklar loyiha ichidagi .claude/settings.json faylida belgilangan. Sozlash sxemasi global ilgaklar va ilgaklar qachon ishga tushishini filtrlangan vosita-maxsus moslashtiruvchilarni qo'llab-quvvatlaydi.
Asosiy buyruq ilgak tuzilishi:
| { “hooks”: [ { “event”: “PostToolUse”, “command”: “prettier –write”, “args”: [“${file}”] } ] } |
${file} o'zgaruvchisi asbob kiritmasidan haqiqiy fayl yo'liga kengaytiriladi. Rasmiy hujjatlarga ko'ra, ilgaklar buyruq va argumentlar maydonlarida ushbu o'zgaruvchi kengaytmalarini qo'llab-quvvatlaydi.
Ilgak Joylashuvi ierarxiyasi
Claude Code ilgak ta'riflari uchun bir nechta joylarni tekshiradi, aniq ustunlik tartibi bilan:
- Loyiha darajasi: joriy ishchi stantsiyadagi .claude/settings.json
- Foydalanuvchi darajasi: barcha sessiyalar uchun ~/.claude/settings.json
- Plugin-ta'minotchi: O'rnatilgan plaginlar bilan birga keladigan ilgaklar
Loyiha ilgaklari bir xil hodisa uchun foydalanuvchi ilgaklar ustidan ustunlikka ega. Bu global bildirishnomalar ishlovchilarini saqlab qolgan holda loyiha-maxsus formatlash qoidalariga imkon beradi.
Tanlangan Ijro Uchun Moslashtiruvchi Namunalari
Moslashtiruvchi tizim ilgaklarni ma'lum vositalar yoki sharoitlarga moslashtiradi. Moslashtiruvchilarsiz, ilgaklar ularning hodisasining har bir holati uchun ishga tushadi.
| { “hooks”: [ { “event”: “PreToolUse”, “matcher”: { “toolName”: “edit_file”, “pathPattern”: “src/**/*.ts” }, “command”: “./scripts/validate-typescript.sh” } ] } |
pathPattern maydoni glob sintaksisini qabul qiladi. toolName maydoni edit_file, execute_command, read_file va create_directory kabi Claude'ning o'rnatilgan vositalariga mos keladi.
Jamiyat muhokamalari shuni ko'rsatadiki, moslashtiruvchi kombinatsiyalar VA mantiqi bilan ishlaydi. Ilgak ishga tushishi uchun barcha ko'rsatilgan moslashtiruvchilar mos kelishi kerak.
Buyruq Ilgaklari: Shell Skript Integratsiyasi
Buyruq ilgaklari tuzilgan JSON kiritmasi bilan shell buyruqlarini yoki skriptlarini ishga tushiradi. Ular mahalliy avtomatlashtirish uchun eng keng tarqalgan ilgak turini ifodalaydi.
Rasmiy hujjatlar buyruq ilgaklari stdin orqali JSONni ushbu tuzilish bilan qabul qilishini belgilaydi:
| { “event”: “PreToolUse”, “toolName”: “edit_file”, “toolInput”: { “path”: “src/app.ts”, “content”: “…” }, “sessionId”: “abc123”, “turnId”: “turn-456” }Skriptlar qaror qabul qilish uchun ushbu kiritmani parslaydi. Python tasdiqlash ilgagi quyidagicha ko'rinishi mumkin:#!/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) |
Chiqish kodi 0 operatsiyaga ruxsat beradi. Chiqish kodi 1 uni bloklaydi va stderr xabarini Claude'ga ko'rsatadi. Chiqish kodi 2 hodisaga bog'liq ravishda maxsus xatti-harakatlarni ishga tushiradi.
Chiqish Kodingiz 2 Xatti-harakati
Rasmiy ilgaklar referens hujjatlariga ko'ra, chiqish kodi 2 hodisaga xos ma'noga ega (PreToolUse: bloklaydi va qayta ko'rib chiqishni so'raydi; UserPromptSubmit: bloklamasdan kontekstni taqdim etadi; PermissionRequest: ruxsatni bloklaydi):
- PreToolUse: Asbobni bloklaydi va stderr xabarini kontekst sifatida taqdim etib, Claude'ni qayta ko'rib chiqishga undaydi
- UserPromptSubmit: stderr chiqishini bloklamasdan qo'shimcha kontekst sifatida taqdim etadi
- PermissionRequest: Ruxsat berishni bloklaydi
Bu qattiq bloklash va ruxsat berish o'rtasida o'rtacha yerni yaratadi. Claude harakat nima uchun muammoli bo'lishi mumkinligi haqida fikr-mulohaza oladi va o'z yondashuvini sozlay oladi.
Asinxron Buyruq Ilgaklari
async: true bayrog'i ilgaklarni Claude'ning ish oqimini bloklamasdan fon rejimida ishga tushiradi. Bu uzoq operatsiyalar, masalan, joylashtirish bildirishnomalari yoki metrika yig'ish uchun muhim.
| { “event”: “PostToolUse”, “matcher”: { “toolName”: “execute_command” }, “command”: “./scripts/log-to-analytics.sh”, “async”: true, “timeout”: 30 } |
Asinxron ilgak ishga tushganda, Claude Code jarayonni boshlaydi va darhol davom etadi. timeout maydoni soniyalarda maksimal ish vaqtini belgilaydi. Agar ko'rsatilmasa, asinxron ilgaklar 10 daqiqalik standart taymutdan foydalanadi.
Haqiqiy gap: asinxron ilgaklar operatsiyalarni bloklashi mumkin emas, chunki ular Claude davom etgandan keyin ishlaydi. Ular jurnal yozish, bildirishnomalar va tozalash uchun ishlaydi - tasdiqlash uchun emas.
HTTP Ilgaklari: Tashqi Xizmat Integratsiyasi
HTTP ilgaklari masofaviy manzillarga JSON yuklarini POST qiladi va qaror qabul qilish uchun javoblarni parslaydi. Ular integratsiya xizmatlari, ma'lumotlar bazalari va uchinchi tomon vositalari bilan integratsiyani ta'minlaydi.
Asosiy HTTP ilgak sozlamalari:
| { “event”: “PreToolUse”, “url”: “api.example.com/validate”, “headers”: { “Authorization”: “Bearer ${API_TOKEN}” }, “timeout”: 5 } |
Yuk tuzilishi buyruq ilgak kiritmasiga mos keladi, lekin HTTP POST tanasi sifatida keladi. Javob Claude'ning keyingi harakatini aniqlaydi.
HTTP Javobni Qayta Ishlash
Rasmiy hujjatlarga ko'ra, HTTP ilgaklari status kodi va tanasi tarkibiga asoslanib javoblarni talqin qiladi:
| Status Kodi | Ta'siri | Xabar Manbasi |
|---|---|---|
| 200 | Operatsiyaga ruxsat berish | Javob tanasi (ixtiyoriy) |
| 400 | Operatsiyani bloklash | Claude'ga ko'rsatilgan javob tanasi |
| 500 | Ilgak xatosi, operatsiyaga ruxsat berish | Jurnalga yozilgan, lekin Claude'ga ko'rsatilmagan |
| Boshqa | Operatsiyaga ruxsat berish | Ilgakning muvaffaqiyatsizligi ish oqimini bloklamaydi |
Javob tanasi Claude ko'rishi mumkin bo'lgan xabar maydonini o'z ichiga olishi mumkin. Bu tasdiqlash xizmatlariga operatsiya nima uchun bloklanganligini tushuntirishga imkon beradi.
Atrof-muhit O'zgaruvchilarini Interpolatsiya Qilish
HTTP ilgaklari url, sarlavhalar va boshqa satr maydonlarida ${VAR} sintaksisini qo'llab-quvvatlaydi. O'zgaruvchilar Claude Code ishlaydigan muhitdan kengaytiriladi.
Rasmiy MCP hujjatlariga ko'ra, atrof-muhit o'zgaruvchilarini kengaytirish standart taklif qilish sintaksisini o'z ichiga oladi: ${VAR:-default} agar sozlanmagan bo'lsa VAR qiymatini beradi, aks holda standart qiymatdan foydalanadi.
Xavfsizlik cheklovi: GitHub issue #28044 ga ko'ra, HTTP ilgaklari faqat allowedEnvVars sozlash maydonida aniq ro'yxatlangan atrof-muhit o'zgaruvchilariga kirishi mumkin. Bu tasodifiy maxfiy ma'lumotlarni oshkor qilishni oldini oladi.
Prompt Ilgaklari: Kontekst Kiritish
Prompt ilgaklari Claude'ning kontekstiga ma'lum hodisalarda dinamik ko'rsatmalarni kiritadi. Ular tashqi jarayonlar yoki API chaqiruvlari bo'lmagan holda xatti-harakatlarni o'zgartiradi.
| { “event”: “SessionStart”, “prompt”: “Siz TypeScript loyihasi ustida ishlamoqdasiz. Har doim qat'iy null tekshiruvlaridan foydalaning va umidlar o'rniga async/await-ni afzal ko'ring.” } |
Kiritilgan matn shu sessiya uchun Claude'ning tizim ko'rsatmalarining bir qismiga aylanadi. Prompt ilgaklari hodisa ma'lumotlariga asoslanib kengayadigan shablon o'zgaruvchilaridan ham foydalanishi mumkin.
Dinamik Prompt Yaratish
Rasmiy hujjatlarga ko'ra, prompt ilgaklari dinamik promptlar yaratadigan buyruq maydonlarini qo'llab-quvvatlaydi:
| { “event”: “ContextCompaction”, “type”: “prompt”, “command”: “./scripts/generate-context-summary.sh” } |
Buyruq standart JSON kiritmasini stdin orqali qabul qiladi va prompt matnini stdoutga chiqaradi. Bu loyiha holatiga asoslangan kontekstga sezgir ko'rsatmalar yaratishga imkon beradi.
Agent-Asosli Ilgaklar
Agent ilgaklari to'g'ridan-to'g'ri prompt kiritmasi o'rniga hodisani boshqaradigan kichik agentni belgilaydi. Kichik agent hodisa haqida kontekst oladi va ko'p bosqichli mulohazalar yuritishi mumkin.
| { “event”: “PostToolUseFailure”, “agent”: “debugger”, “agentPrompt”: “Asbob chaqiruvi muvaffaqiyatsiz tugadi. Xatoni tahlil qiling va tuzatishlar taklif qiling.” } |
Nomlangan kichik agent loyiha sozlamalarida belgilangan bo'lishi kerak. Agent ilgaklari oddiy prompt kiritmasi ta'minlay olmaydigan murakkab qaror qabul qilish mantiqiga imkon beradi.
Amaliy Ilgak Namunalari
Jamiyat muhokamalari va rasmiy misollar ishlab chiqarishda ishonchli ishlaydigan aniq avtomatlashtirish uslublarini ochib beradi.
Tahrirlardan Keyin Kodni Avtomatik Formatlash
Eng keng tarqalgan namuna Claude fayllarni tahrirlagandan keyin kodni avtomatik formatlashdir:
| { “event”: “PostToolUse”, “matcher”: { “toolName”: “edit_file”, “pathPattern”: “**/*.{js,ts,jsx,tsx}” }, “command”: “prettier”, “args”: [“–write”, “${toolInput.path}”] } |
${toolInput.path} o'zgaruvchisi tahrirlangan fayl yo'liga kengaytiriladi. PostToolUse muvaffaqiyatli tahrirlardan keyin formatlashni ta'minlaydi, lekin Claude'ning ish oqimini bloklamaydi.
Himoyalangan Fayl Tahrirlarini Bloklash
PreToolUse ilgaklari fayllarni himoya qilish qoidalarini qo'llaydi:
| { “event”: “PreToolUse”, “matcher”: { “toolName”: “edit_file” }, “command”: “./scripts/check-protected.sh” } |
Skript maqsadli yo'lni himoyalangan namunalar bo'yicha tekshiradi va taqiqlangan tahrirlarni bloklash uchun 1-kod bilan chiqadi.
Claude Kiritishga Muhtoj Bo'lganda Bildirishnoma Olish
Rasmiy ish oqimi qo'llanmasiga ko'ra, Notification ilgaklari ish stoli signallarini ishga tushirishi yoki tashqi xizmatlarga xabarlar yuborishi mumkin:
| { “event”: “Notification”, “command”: “osascript”, “args”: [“-e”, “display notification \”${message}\” with title \”Claude Code\””] } |
Bu Claude Code bildirishnoma yuborgan har safar ishga tushadi, jumladan, foydalanuvchi kiritmasini kutayotganda yoki vazifa tugagandan so'ng.
Siqishdan Keyin Kontekstni Qayta Kiritish
ContextCompaction ilgaklari suhbat oynasi to'lganda muhim kontekstni tiklaydi:
| { “event”: “ContextCompaction”, “type”: “prompt”, “command”: “cat .claude/critical-context.md” } |
Buyruq chiqishi siqish eski xabarlarni olib tashlaganidan keyin Claude'ning kontekstiga qayta kiritiladi. Bu muhim loyiha-maxsus ko'rsatmalarning yo'qolishini oldini oladi.
Sozlash O'zgarishlarini Auditdan O'tkazish
Claude sozlash fayllarini qachon o'zgartirishini kuzatib boring:
| { “event”: “PostToolUse”, “matcher”: { “toolName”: “edit_file”, “pathPattern”: “**/{package.json,.env,*.config.*}” }, “command”: “git”, “args”: [“add”, “${toolInput.path}”], “async”: true } |
Asinxron ijro Claude'ni bloklamaydi, shu bilan birga git operatsiyalari tugaydi. Bu qo'lda sahnalashtirishsiz sozlash o'zgarishlarining audit yo'lini yaratadi.
JSON Chiqishi va Qaror Nazorati
Buyruq ilgaklari oddiy chiqish kodlaridan tashqari batafsil fikr-mulohaza taqdim etish uchun tuzilgan JSONni chiqarishi mumkin. Rasmiy referensga ko'ra, JSON chiqishi Claude'ning qaror qabul qilish uchun talqin qiladigan ko'p maydonli javoblarga imkon beradi.
| { “allowed”: false, “message”: “Ushbu fayl jamoa siyosati tomonidan himoyalangan”, “suggestion”: “src/features/ ichida yangi fayl yarating” } |
allowed maydoni operatsiyaning davom etishini nazorat qiladi. Xabar Claude'ga kontekst sifatida ko'rinadi. Taklif maydoni muqobil yondashuvlarni taqdim etadi.
Ilgaklar JSONni chiqarishi uchun ular quyidagilarni amalga oshirishlari kerak:
- Stdoutga to'g'ri JSON yozish
- Chiqish kodi 0 (ruxsat etilgan) yoki 1 (bloklangan) bilan chiqish
- Minimal ravishda allowed boolean maydonini o'z ichiga olish
Claude Code JSONni parslaydi va uni fikr-mulohaza tsiklini yaxshilash uchun ishlatadi. Chiqish kodlari hali ham asosiy qarorni aniqlaydi, lekin JSON boyroq kontekstni ta'minlaydi.
Ilgak Kiritish Maydonlari Referensi
Barcha ilgaklar stdin orqali umumiy maydonlar, shuningdek, hodisaga xos ma'lumotlarni o'z ichiga olgan JSON ob'ektini oladi. To'liq sxemani tushunish murakkabroq ilgak mantiqiga imkon beradi.

Umumiy Kiritish Maydonlari
Har bir ilgak ushbu asosiy maydonlarni oladi:
- event: Ilgak hodisasi nomi (masalan, "PreToolUse")
- sessionId: Joriy Claude sessiyasining noyob identifikatori
- turnId: Joriy suhbat burilishining identifikatori
- timestamp: Hodisa ishga tushganda ISO 8601 vaqti
Asbob Hodisa Maydonlari
PreToolUse, PostToolUse va PostToolUseFailure hodisalari quyidagilarni o'z ichiga oladi:
- toolName: Invoked (ishga tushirilgan) asbob nomi (edit_file, execute_command va boshqalar)
- toolInput: Asbobning kiritish parametrlarini o'z ichiga olgan ob'ekt
- toolResponse: Asbobning chiqish ma'lumotlari (faqat PostToolUse)
- error: Xato tafsilotlari, shu jumladan xabar va kod (faqat PostToolUseFailure)
toolInput tuzilishi asbobga qarab farq qiladi. edit_file uchun u path va contentni o'z ichiga oladi. execute_command uchun u command va args ni o'z ichiga oladi.
Ruxsat Hodisa Maydonlari
PermissionRequest hodisalari quyidagilarni o'z ichiga oladi:
- permissionType: So'ralgan ruxsat turi (file_write, command_execute va boshqalar)
- requestedAction: Ruxsat talab qiladigan aniq harakat
- resourcePath: Ta'sir etilgan fayl yo'li yoki resurs identifikatori
MCP Asbob Ilgaklari
Rasmiy ilgaklar referensiga ko'ra, ilgaklar mcpTool moslashtiruvchi maydoni yordamida Model Kontekst Protokoli (MCP) vositalariga mos kelishi mumkin. Bu Claude MCP serverlari tomonidan taqdim etilgan tashqi vositalarni ishlatganda ilgak ijrosini ta'minlaydi.
| { “event”: “PreToolUse”, “matcher”: { “mcpTool”: “database/query” }, “command”: “./scripts/validate-sql.sh” } |
mcpTool qiymati server-name/tool-name formatidagi asbob nomiga mos keladi. Bu ma'lumotlar bazasi so'rovlari, API chaqiruvlari yoki boshqa tashqi operatsiyalar uchun tasdiqlash mantiqiga imkon beradi.
GitHub xususiyat so'rovlari MCP integratsiyasining chuqurlashib borayotganligini ko'rsatadi, shu jumladan MCP server bildirishnomalarini ko'rib chiqish va tashqi hodisalarga javob berish mumkin bo'lgan ilgaklar.
Xavfsizlik Masalalari
Ilgaklar Claude Code o'zi bilan bir xil ruxsatlar bilan ishlaydi. Bu ko'p foydalanuvchili muhitlar va umumiy sozlamalar uchun xavfsizlik ta'sirini yaratadi.
Buyruq Ijro Sandboxi
GitHub issue #28044 ga ko'ra, HTTP ilgaklari tarmoq kirishini cheklovchi va atrof-muhit o'zgaruvchilarini filtrlangan sandbox proksi-serveri orqali yo'naltiriladi. Buyruq ilgaklarida bunday cheklovlar yo'q - ular to'liq shell kirishi bilan ishlaydi.
Hujjatlar ushbu amaliyotlarni tavsiya qiladi:
- Hech qachon ilgak buyruqlariga maxfiy ma'lumotlarni saqlamang
- Maxfiy ma'lumotlar uchun atrof-muhit o'zgaruvchilaridan foydalaning
- ${...} kengaytmalaridan barcha kiritmalarni tasdiqlang
- Tashqi xizmatlar uchun taymut chegaralarini qo'llang
- Xatoliklar paytida bloklanishni oldini olish uchun muhim bo'lmagan operatsiyalar uchun asinxron ilgaklardan foydalaning
Ilgak Ijro Izolyatsiyasi
Foydalanuvchi darajasidagi ilgaklar ~/.claude/settings.json faylida barcha loyihalar uchun qo'llaniladi. Bu turli xil ishonch chegaralarida ishlaganda xavf tug'diradi. Loyiha darajasidagi ilgaklar foydalanuvchi ilgaklar ustidan ustunlikka ega, lekin ularni to'liq o'chirib qo'ya olmaydi.
Claude Code'dagi /hooks menyusi joriy sessiya uchun barcha faol ilgaklarni ko'rsatadi. Maxsus loyihalar ustida ishlashdan oldin ushbu ro'yxatni ko'rib chiqish mumkin bo'lgan xavfsizlik muammolarini aniqlashga yordam beradi.
Debugging va Nosozliklarni Bartaraf Etish
Ilgak xatoliklari har doim ham Claude'ning suhbatida aniq ko'rinmaydi. Rasmiy hujjatlar bir nechta debugging yondashuvlarini taqdim etadi.
Ilgak Ijro Jurnallari
Claude Code ilgak ijrosini sessiya debug chiqishiga yozadi. Nosozliklarni bartaraf etish bo'yicha qo'llanmaga ko'ra, debug jurnalini yoqish quyidagilarni ochib beradi:
- Har bir hodisa uchun qaysi ilgaklar mos kelgan
- Har bir ilgakka yuborilgan JSON kiritmasi
- Ilgak jarayonlaridan stdout va stderr chiqishi
- Chiqish kodlari va ijro vaqti
- HTTP ilgaklari uchun HTTP javob kodlari va tanasi
Claude Code-ni boshlashdan oldin muhitda CLAUDE_DEBUG=1 ni sozlash orqali debug jurnalini yoqing.
Ilgaklarni Mustaqil Sinovdan O'tkazish
Buyruq ilgaklari JSON kiritmasini qo'lda yaratib, Claude Code'dan tashqarida sinovdan o'tkazilishi mumkin:
| echo ‘{“event”:”PreToolUse”,”toolName”:”edit_file”,”toolInput”:{“path”:”test.txt”}}’ | ./scripts/my-hook.sh |
Bu Claude operatsiyalarini ishga tushirmasdan ilgak mantiqini tasdiqlaydi. Chiqish kodi va stdout/stderr chiqishi kutilgan xatti-harakatlarga mos kelishi kerak.
Umumiy Ilgak Xatoliklari
Jamiyat muhokamalari ushbu tez-tez uchraydigan muammolarni aniqlaydi:
- Taymut xatoliklari: 10 daqiqalik standart taymut uzoq operatsiyalar uchun juda qisqa - taymut maydoni bilan oshiring
- Fayl yo'li kengayishi muvaffaqiyatsizliklari: Fayl kontekstini o'z ichiga olmaydigan hodisalar uchun ${file} kabi o'zgaruvchilar aniqlanmagan
- Ruxsat xatoliklari: Ilgak skriptlarida bajarish ruxsatnomalari yo'q - chmod +x script.sh ni ishga tushiring
- JSON parse xatoliklari: Ilgaklardan noto'g'ri tuzilgan JSON chiqishi - qaytarishdan oldin jq bilan tekshiring
- Atrof-muhit o'zgaruvchilarining mavjud emasligi: Ilgak jarayoniga uzatilmagan o'zgaruvchilar - Claude Code'ning atrof-muhitini tekshiring
Ilgak Ishlash Qobiliyatiga Ta'siri
Sinxron ilgaklar tugaguniga qadar Claude'ning ish oqimini bloklaydi. Standart 10 daqiqalik taymut cheksiz bloklanishni oldini oladi, lekin hatto qisqa kechikishlar ham ko'plab operatsiyalar davomida to'planadi.
Mutaxassislar shuni ta'kidlaydiki, oddiy tasdiqlash ilgaklari minimal ijro ta'siriga ega. Fayl formatlash ilgaklari sezilarli, ammo qabul qilinadigan ijro ta'siriga ega. Tashqi API chaqiruvlari ish oqimini buzishi mumkin. Og'ir hisoblash operatsiyalari asinxron ijrodan foyda ko'radi.
Ilgaklarni Guruqlash
Bir nechta ilgaklar bir xil hodisaga mos kelishi mumkin. Referens hujjatlarga ko'ra, ilgaklar ta'rif tartibida ketma-ket ishga tushadi. Agar har qanday ilgak operatsiyani bloklasa, qolgan ilgaklar ishga tushmaydi.
Bu ijro uchun muhim. Har bir hodisa uchun 200ms dan beshta sinxron ilgak bir soniya qo'shadi. Tegishli tasdiqlashlarni bitta ilgakka birlashtirish ortiqcha yukni kamaytiradi.
Murakkab Namunalari
Asosiy avtomatlashtirishdan tashqari, ilgaklar murakkab ish oqimi moslashtirishini ta'minlaydi.
Holatli Ilgak Zanjirlari
Ilgaklar fayllar yoki ma'lumotlar bazalaridan foydalanib, ijrolar orasida holatni saqlashi mumkin. PostToolUse ilgak muvaffaqiyatli operatsiyalarni yozishi mumkin, keyinchalik PreToolUse ilgak uni tekshiradi:
| #!/bin/bash # Muvaffaqiyatli tahrirlarni yozib oling echo “${toolInput.path}” >> .claude/edit-history.txt |
Hamrohlikdagi PreToolUse ilgak takroriy operatsiyalarni oldini olish yoki buyurtma cheklovlarini qo'llash uchun ushbu tarixni tekshirishi mumkin.
Shartli Ilgak Aktivlashuvi
Atrof-muhit o'zgaruvchilari ijro vaqtida ilgak xatti-harakatlarini nazorat qiladi. CLAUDE_SKIP_HOOKS=1 ni sozlash favqulodda vaziyatlarda ilgaklarni o'chiradi.
Ilgaklar o'zlari atrof-muhit bayroqlarini tekshirishlari mumkin:
| #!/bin/bash if [ “$STRICT_MODE” = “1” ]; then # Qat'iy tasdiqlashni qo'llang exit 1 fi exit 0 |
Bu sozlash o'zgarishlarisiz ishlab chiqish rejimiga qarshi ishlab chiqarish rejimi xatti-harakatlariga imkon beradi.
Ko'p Bosqichli Tasdiqlash
PreToolUse ilgaklari ko'p darajali tasdiqlashni amalga oshirishi mumkin, bunda chiqish kodi 2 Claude'ga ogohlantirishlar bilan davom etishga imkon beradi:
- Qattiq xatolar (chiqish 1): Xavfli operatsiyalarni bloklash
- Yengil ogohlantirishlar (chiqish 2): Claude'ni qayta ko'rib chiqishga undash
- Kontekst bilan o'tish (chiqish 0 + JSON): Qo'shimcha ma'lumot taqdim etish
Bu standart ruxsat berish/inkor etishdan ko'ra nozikroq tasdiqlash spektrini yaratadi.
CI/CD Integratsiyasi
Rasmiy platforma integratsiyasi hujjatlariga ko'ra, Claude Code avtomatik kodni ko'rib chiqish va muammolarni tahlil qilish uchun CI/CD muhitlarida ishlaydi. Ilgaklar ushbu avtomatlashtirishni kengaytiradi.
GitHub Actions ish oqimlari avtomatlashtirilgan sessiyalar davomida jamoa siyosatlarini qo'llaydigan ilgaklarni belgilashi mumkin:
| -- name: Qat'iy ilgaklar bilan Claude Code ishga tushiring env: STRICT_MODE: 1 run: | claude “Ushbu PRni ko'rib chiqing va yaxshilanishlar taklif qiling” |
STRICT_MODE bayrog'i ilgak skriptlarida shartli tasdiqlash mantiqini faollashtiradi. Bu avtomatlashtirilgan sessiyalarning interaktiv ishlab chiqishdan ko'ra qat'iyroq qoidalarga rioya qilishini ta'minlaydi.
Audit Yo'lini Yaratish
CI muhitlaridagi PostToolUse ilgaklari barcha Claude operatsiyalarining batafsil audit jurnallarini yaratadi:
| { “event”: “PostToolUse”, “command”: “./scripts/log-to-database.sh”, “async”: true } |
Fon jurnal yozish ijroga ta'sir qilmaydi, lekin muvofiqlik va debugging uchun to'liq operatsiya tarixini ta'minlaydi.
/hooks Menusi
Claude Code /hooks buyrug'ini taqdim etadi, u joriy sessiya uchun barcha faol ilgaklarni ko'rsatadi. Rasmiy hujjatlarga ko'ra, ushbu menyu quyidagilarni ko'rsatadi:
- Ilgak hodisasi turi
- Moslashtiruvchi namunalari
- Buyruq yoki URL manzili
- Ilgak asinxron ishlaydimi
- Sozlash manbai (loyiha, foydalanuvchi yoki plagin)
Ilgakni tanlash uning to'liq sozlamalarini ko'rsatadi va joriy sessiya uchun vaqtinchalik o'chirishga imkon beradi.
Ilgaklarni O'chirish yoki O'chirish
Ilgaklar "enabled": false sozlamani kiritish orqali sozlamalarni olib tashlamasdan o'chirilishi mumkin. Bu sozlamani saqlab qoladi, lekin ijroni oldini oladi.
Ilgakni doimiy ravishda olib tashlash uchun uni tegishli settings.json faylidan o'chiring. O'zgarishlar keyingi sessiya qayta boshlanganda yoki /reload ishga tushirilganda amalga oshadi.
Skills va Agents Ildaklari
Rasmiy hujjatlarga ko'ra, skill yoki kichik agent sozlamalarida belgilangan ilgaklar faqat o'sha skill yoki agent ishga tushganda qo'llaniladi. Bu ma'lum bir ish oqimlari uchun maxsus avtomatlashtirishga imkon beradi.
Dasturlashni tuzatuvchi kichik agent barcha asbob chaqiruvlarini yozadigan ilgaklarni o'z ichiga olishi mumkin:
| { “name”: “debugger”, “hooks”: [ { “event”: “PostToolUse”, “command”: “./scripts/log-debug.sh”, “async”: true } ] } |
Ushbu ilgaklar oddiy Claude Code ijrosida emas, faqat debugger agent sessiyalari davomida ishga tushadi.
Skriptlarni Yo'l orqali Havolash
Ilgak buyruqlari nisbiy va mutlaq yo'llarni qo'llab-quvvatlaydi. Nisbiy yo'llar Claude Code ishlayotgan loyiha ildizidan aniqlanadi.
Jamiyat muhokamalaridan eng yaxshi amaliyotlar:
- Ilgak skriptlarini .claude/hooks/ katalogida saqlang
- Tavsifli nomlardan foydalaning: validate-typescript.sh, hook1.sh emas
- Skriptlarni bajariladigan qiling: chmod +x .claude/hooks/*.sh
- Shebang qatorini qo'shing: #!/usr/bin/env bash yoki #!/usr/bin/env python3
- Bash skriptlarida set -e bilan xato ishlov berishni qo'shing
Kelgusi Ilgak Qobiliyatlari
GitHub xususiyat so'rovlari rejalashtirilgan va so'ralgan ilgak yaxshilanishlarini ochib beradi:
- Inline skript ilgaklari: Ilgak mantiqini tashqi fayllarsiz settings.json da to'g'ridan-to'g'ri belgilash
- MCP asbob integratsiyasi: Shell buyruqlari o'rniga ilgaklardan MCP server vositalarini chaqirish
- Ko'p agentli hamkorlik: Turli mashinalarda Claude namunalari o'rtasida muvofiqlashtiruvchi ilgaklar
- Kengaytirilgan turlash: Ilgak kiritish/chiqish sxemalari uchun TypeScript turli ta'riflari
GitHub issue #4274 ga ko'ra, integratsiya qilingan ilgak turlari (MCP asbob, inline skript, API chaqiruvi) so'rovi sozlashni soddalashtirish va dasturchi tajribasini yaxshilashga qaratilgan.
Tez-tez So'raladigan Savollar
Ilgaklar Claude Code ning xavfli buyruqlarni bajarishini oldini oladimi?
Ha. PreToolUse ilgaklari 1-kod bilan chiqib, har qanday asbobni bajarishni bloklashi mumkin. Bunga fayl tahrirlari, buyruq ijrosi va MCP asbob chaqiruvlari kiradi. Ilgak to'liq asbob kiritmasini oladi va operatsiyaga ruxsat berishdan oldin har qanday mezonlarni tekshirishi mumkin.
Ishlamayotgan ilgakni qanday tuzataman?
Claude Code-ni ishga tushirishdan oldin CLAUDE_DEBUG=1 bilan debug jurnalini yoqing. Ilgak ijrosi tafsilotlari, jumladan, qaysi ilgaklar mos kelgan, yuborilgan JSON kiritmasi, stdout/stderr chiqishi va chiqish kodlari uchun sessiya jurnallarini tekshiring. Namuna JSONni ilgak skriptiga quvurlash orqali ilgaklarni mustaqil ravishda sinang.
Ilgaklar barcha Claude Code platformalari bilan ishlaydimi?
Ilgaklar CLI, ish stoli ilovasi va VS Code kengaytmasida ishlaydi. Rasmiy hujjatlarga ko'ra, ilgaklar Claude Code ishlayotgan har qanday joyda fayl tizimidan foydalanish huquqi bilan ishlaydi. Brauzerga asoslangan Claude va mobil ilovalar sandbox cheklovlari tufayli ilgaklarni qo'llab-quvvatlamaydi.
Ilgaklar Claude'ning javoblarini yoki xatti-harakatlarini o'zgartira oladimi?
Prompt ilgaklari Claude'ning xatti-harakatlariga ta'sir ko'rsatadigan ko'rsatmalarni kiritadi. Agent ilgaklari hodisani qayta ishlashni maxsus kichik agentlarga topshiradi. Biroq, ilgaklar Claude'ning yaratgan matnini yoki mulohaza jarayonini to'g'ridan-to'g'ri o'zgartira olmaydi - ular kontekstni taqdim etish va operatsiyalarni bloklash orqali ishlaydi.
Async va sync ilgaklar o'rtasidagi farq nima?
Sinxron ilgaklar tugaguniga yoki taymutgacha Claude'ning ish oqimini bloklaydi. Asinxron ilgaklar bloklamasdan fon rejimida ishlaydi. Sinxron ilgaklar chiqish kodlari orqali operatsiyalarni oldini olishi mumkin. Asinxron ilgaklar bloklashi mumkin emas, chunki Claude ilgak tugamasdan davom etadi. Jurnal yozish va bildirishnomalar uchun sinxron, tasdiqlash uchun asinxron foydalaning.
Ilgaklarni jamoa bo'ylab qanday ulashish mumkin?
.claude/settings.json faylini versiya nazoratiga yuklang. Loyiha darajasidagi ilgaklar omborxonani klonlagan barcha jamoa a'zolariga qo'llaniladi. Tashkilot bo'yicha siyosatlar uchun jamoalar o'zlarining ~/.claude/settings.json faylga nusxalagan umumiy foydalanuvchi darajasidagi sozlamalar faylini saqlashi mumkin.
HTTP ilgaklari devorlar ortidagi ichki API'larga qo'ng'iroq qila oladimi?
Ha, agar Claude Code ushbu APIlarga tarmoq kirishiga ega bo'lgan muhitda ishlayotgan bo'lsa. HTTP ilgaklari Claude Code ishlayotgan mashinadan standart POST so'rovlarini amalga oshiradi. Korporativ devorlar va VPNlar odatdagidek qo'llaniladi. Hujjatlarda tilga olingan sandbox proksi-serveri tarmoq yo'nalishini emas, balki atrof-muhit o'zgaruvchilarining oshkor etilishini nazorat qiladi.
Ilgaklar Claude Code'ning token foydalanishini oshiradimi?
Prompt ilgaklari Claude'ning kontekstiga matn kiritadi, bu tokenlarni iste'mol qiladi. Buyruq va HTTP ilgaklari token foydalanishiga to'g'ridan-to'g'ri ta'sir qilmaydi, lekin ularning chiqishi (xato xabarlari, takliflar) suhbat kontekstining bir qismiga aylanadi. Xabar bilan 2-chiqish kodi 1-chiqish kodi bilan oddiy bloklashdan ko'ra ko'proq kontekstni qo'shadi.
Xulosa
Claude Code ilgaklari AI yordamchisini kuchli vositadan to'liq avtomatlashtirilgan dasturiy ta'minot ishlab chiqish platformasiga aylantiradi. Hodisalar tizimi Claude'ning ish oqimi davomida - sessiyani boshlashdan tortib kontekst siqilishigacha kesishish nuqtalarini ta'minlaydi.
Buyruq ilgaklari mahalliy tekshirish va formatlashni boshqaradi. HTTP ilgaklari tashqi xizmatlar va ma'lumotlar bazalarini integratsiya qiladi. Prompt ilgaklari kontekst kiritish orqali xatti-harakatlarni o'zgartiradi. Birgalikda ular jamoa siyosatlarini qo'llaydigan, kod sifatini saqlaydigan va mavjud ishlab chiqish infratuzilmasi bilan integratsiya qiladigan avtomatlashtirish uslublarini ta'minlaydi.
Moslashtiruvchi tizim ilgaklarni ma'lum vositalar va fayl namunalari uchun filtrlangan. Chiqish kodlari va JSON chiqishi qarorlar oqimini boshqaradi. Asinxron ijro uzoq operatsiyalarda bloklanishni oldini oladi. To'liq sozlash sxemasi oddiy avtomatlashtirilgan formatlashdan tortib murakkab ko'p bosqichli tasdiqlashgacha bo'lgan hamma narsani qo'llab-quvvatlaydi.
Kod formatlash uchun oddiy PostToolUse ilgaklaridan boshlang. Siyosatlar paydo bo'lganida PreToolUse tasdiqlashni qo'shing. Xatti-harakatlarni o'zgartirish uchun prompt ilgaklari bilan tajriba qiling. Jamoa miqyosida joriy etish uchun HTTP integratsiyalarini yarating.
To'liq ilgaklar referensi va yangi imkoniyatlar paydo bo'lganida yangilangan sozlash sxemasi uchun rasmiy Claude Code hujjatlarini tekshiring.

