أتمتة سير عمل التطوير لديك باستخدام Claude Code Hooks
تتيح لك الخطافات تشغيل أوامر shell مخصصة عندما يتخذ Claude Code إجراءات محددة. التنسيق التلقائي عند الحفظ، أو حظر التعديلات الخطيرة، أو إدخال السياق تلقائيًا.
Claude Code Hooks are shell commands that execute automatically in response to events. When Claude Code edits a file, runs a command, or starts a session, your hooks fire. This lets you build guardrails, enforce standards, and automate repetitive setup without manual intervention.
ما هي الأحداث هوك المتاحة؟
| حدث | عندما يشتعل | حالة الاستخدام الشائع |
|---|---|---|
| PreToolUse | قبل أن ينفذ كلود أداة | منع العمليات الخطيرة، والتحقق من صحة المدخلات |
| PostToolUse | بعد أن ينفذ كلود أداة | تنسيق تلقائي للملفات التي تم تحريرها، وتشغيل linters |
| إشعار | عندما يرسل كلود إشعارًا | قم بتسجيل الدخول إلى الملف، وأرسله إلى Slack |
| بداية الجلسة | عندما تبدأ جلسة جديدة | حقن السياق، والتحقق من البيئة |
| تغيير التكوين | عندما تتغير الإعدادات | التحقق من صحة التكوين |
كيف يمكنك إنشاء هوك؟
استخدم القائمة التفاعلية أو قم بتحرير settings.json مباشرةً:
# Interactive hook setup
claude /hooks
# Or edit settings.json directly
# Project: .claude/settings.json
# Global: ~/.claude/settings.jsonإليك ملف settings.json مع ضبط الخطافات:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"command": "npx prettier --write "$CLAUDE_FILE_PATH"",
"description": "Auto-format edited files with Prettier"
}
],
"PreToolUse": [
{
"matcher": "Edit|Write",
"command": "echo $CLAUDE_FILE_PATH | grep -q \.env && echo 'BLOCKED: Cannot edit .env files' && exit 1 || exit 0",
"description": "Block edits to .env files"
}
],
"SessionStart": [
{
"command": "cat .claude/context-injection.md",
"description": "Inject additional context at session start"
}
]
}
}ما هي السنانير الأكثر فائدة؟
1. التنسيق التلقائي عند التحرير
قم بتشغيل Prettier أو Black أو gofmt في كل مرة يقوم فيها Claude Code بتحرير ملف:
// PostToolUse hook
{
"matcher": "Edit|Write",
"command": "npx prettier --write \"$CLAUDE_FILE_PATH\""
}2. حظر تعديلات الملفات الحساسة
Prevent Claude Code from modifying environment files, secrets, or critical configs:
// PreToolUse hook
{
"matcher": "Edit|Write",
"command": "echo $CLAUDE_FILE_PATH | grep -qE \"\.env|\.secret|credentials\" && exit 1 || exit 0"
}3. إعادة إدخال السياق بعد الضغط
عندما يقوم Claude Code بضغط نافذة السياق الخاصة به، فقد يتم فقدان تفاصيل مهمة. يمكن للخطاف إعادة إدخال المعلومات المهمة:
// PostToolUse hook for compaction
{
"matcher": "Compact",
"command": "cat .claude/critical-context.md"
}