רגע! לפני שהולכים... 👋
אל תפספסו! מסלולי לימוד נפתחים בקרוב - מקומות מוגבלים
| מסלול RT Embedded Linux | 28/06 |
| מסלול Cyber | 05/07 |
| מסלול Machine Learning | 05/07 |
| מסלול Computer Vision | 05/07 |
| מסלול Full Stack | 13/07 |
✓ ייעוץ אישי ללא התחייבות | תשובה תוך 24 שעות

עודכן לאחרונה: 31 מאי, 2026
הוקים (Hooks) בקלוד קוד (Claude Code) הם מנגנון אוטומציה שמאפשר להריץ פקודות מותאמות אישית בנקודות קריטיות לאורך מחזור העבודה של ה-AI — לפני שליחת הודעה, אחרי קבלת תשובה, ובזמן פעולות על קבצים. בקיצור: הוקים הופכים את Claude Code מכלי שמחכה להוראות שלכם — לכלי שמרגיש כמו חבר צוות עם נהלי עבודה ברורים. אם עד היום חשבתם ש-Claude Code הוא "סתם עוד AI שכותב קוד", הוקים הם הדבר שמראה שהכלי הזה מתחיל לנשק את הגבול בין עוזר חכם לתהליך פיתוח אוטומטי אמיתי. בואו נפרק את זה.
יש הנחה רווחת שהוקים הם פיצ׳ר שולי — "נחמד שיש, לא חייבים". זו טעות. הוקים בקלוד קוד הם לא גימיק ולא בונוס. הם המנגנון שמאפשר לכם לשלוט באופן שבו ה-AI מתנהג בתוך הפרויקט שלכם, וזה ההבדל בין שימוש חובבני לבין אינטגרציה מקצועית.
נתחיל מהדבר הבסיסי ביותר: Hook בקלוד קוד הוא כלל שמגדיר "כשקורה X, תריץ Y". לדוגמה: "אחרי כל שינוי בקובץ Python, תריץ linter". או: "לפני שאתה מציע קוד חדש, תוודא שה-tests עוברים". זה נשמע פשוט? זה כי זה כן פשוט מבחינת הרעיון. אבל ההשלכות הן עצומות.
לפי סקר של Stack Overflow מ-2024, כ-76% מהמפתחים/ות שמשתמשים/ות בכלי AI לפיתוח מדווחים שהם מבזבזים זמן משמעותי על תיקון פלט שגוי. הוקים פותרים חלק ניכר מהבעיה הזו. במקום לבדוק את התוצאה אחרי שה-AI סיים — מוודאים תוך כדי שהתוצאה עומדת בסטנדרט.
חישבו על זה ככה: אם אתם עובדים עם Junior בצוות, אתם לא נותנים לו לעשות push לפרודקשן בלי code review. אז למה לתת ל-AI לכתוב קוד בלי בדיקות אוטומטיות? הוקים הם ה-code review האוטומטי של קלוד קוד.
קלוד קוד תומך במספר סוגים של הוקים, כל אחד מופעל בנקודה אחרת בתהליך. הנה הסוגים העיקריים:
PreToolUse — מופעל לפני שקלוד קוד מבצע פעולה כלשהי, כמו כתיבת קובץ או הרצת פקודה. זה המקום לתפוס טעויות לפני שהן קורות. לדוגמה: למנוע כתיבה לתיקייה רגישה, או לדרוש אישור לפני מחיקת קבצים.
PostToolUse — מופעל אחרי שקלוד קוד סיים פעולה. פה אפשר להריץ בדיקות, linting, עיצוב קוד, או כל דבר אחר שמוודא שהפלט תקין.
Notification — מופעל כשקלוד קוד רוצה לשלוח התראה, למשל כשהוא מסיים משימה ארוכה. אפשר לקשר את זה ל-Slack, לאימייל, או לכל מערכת התראות אחרת.
Stop — מופעל כשקלוד קוד מסיים את התגובה שלו. זה מקום מצוין לבדיקות אינטגרציה, ריצת test suite מלא, או יצירת דוח סיכום.
אני הולך לגיד משהו שאולי לא ישמע נעים: אם אתם משתמשים בקלוד קוד בלי הוקים, אתם מפסידים לפחות 40% מהערך של הכלי. לא בגלל שהכלי לא עובד בלעדיהם, אלא בגלל שבלעדיהם אתם עובדים בלי רשת ביטחון, ובלי רשת ביטחון — כל שגיאה עולה יותר.
בואו נסתכל על דוגמה מהעולם האמיתי. חברת סטארט-אפ ישראלית בתחום ה-FinTech (לא אציין שם, אבל זה קרה) התחילה להשתמש בקלוד קוד בלי הוקים. תוך שבועיים, ה-AI שינה קובץ קונפיגורציה קריטי שפגע בחיבור ל-API של בנק. הנזק? יום עבודה שלם של שני מפתחים בכירים. אם היה הוק שמונע שינויים בתיקיית config/ בלי אישור מפורש — זה לא היה קורה.
אחד הדברים המרגשים בהוקים של קלוד קוד הוא שהם יוצרים, בפועל, צינור CI/CD מקומי — ישירות על סביבת הפיתוח שלכם. לא צריך לחכות ל-GitHub Actions שירוץ בענן. לא צריך לחכות 8 דקות ל-pipeline של Jenkins. ההוק רץ מיד, על המכונה שלכם, ונותן משוב בזמן אמת.
לפי מחקר של Google DevOps Research and Assessment (DORA) מ-2023, צוותים שמקבלים משוב תוך פחות מ-10 דקות על שינויים בקוד הם פי 4.5 יותר יעילים מצוותים שממתינים מעל 30 דקות. הוקים מביאים את המשוב הזה לאפס דקות.
עכשיו, רגע של כנות: הוקים יכולים גם להזיק. הוק שרץ יותר מדי זמן, שבודק יותר מדי דברים, שחוסם את ה-AI על כל שינוי קטן — הוא אנטי-פטרן. הוק צריך להיות קל, ממוקד, ומהיר. אם ה-Hook לוקח יותר מ-30 שניות, כנראה שהוא עושה יותר מדי ואתם צריכים לפצל אותו.
הכלל שלי: כל Hook צריך לעשות דבר אחד, ולעשות אותו טוב. בדיוק כמו פונקציה נקייה בקוד.
הוקים בקלוד קוד מוגדרים בקובץ .claude/hooks.json בתיקיית הפרויקט שלכם, או בתיקיית ההגדרות הגלובלית. המבנה הוא JSON פשוט שמגדיר מתי ההוק רץ, מה הוא מריץ, ומה קורה עם התוצאה. בואו ניצור כמה הוקים אמיתיים:
{
"hooks": {
"PostToolUse": [
{
"matcher": "write|edit",
"command": "bash -c 'if [[ \"$CLAUDE_FILE\" == *.py ]]; then ruff check \"$CLAUDE_FILE\" --fix; fi'",
"description": "Run ruff linter on Python files after edit"
}
],
"PreToolUse": [
{
"matcher": "write|edit",
"command": "bash -c 'if [[ \"$CLAUDE_FILE\" == *config* || \"$CLAUDE_FILE\" == *.env* ]]; then echo \"BLOCK: Cannot modify config files without explicit approval\" && exit 1; fi'",
"description": "Block modifications to config and env files"
}
],
"Stop": [
{
"command": "bash -c 'cd $CLAUDE_PROJECT_DIR && python -m pytest tests/ --tb=short -q 2>&1 | tail -20'",
"description": "Run tests after Claude finishes responding"
}
]
}
}
בואו נפרק את מה שקורה פה. בהוק הראשון, אחרי כל פעולת כתיבה או עריכה, אם הקובץ הוא Python — רץ ruff (לינטר מהיר ומודרני) ומתקן בעיות באופן אוטומטי. בהוק השני, לפני כל כתיבה — נבדק האם הקובץ הוא קובץ קונפיגורציה, ואם כן, הפעולה נחסמת. בהוק השלישי, כשקלוד קוד מסיים לענות — רצים הטסטים.
עכשיו בואו נראה איך יוצרים Hook מתקדם יותר שמשלב כמה בדיקות:
#!/bin/bash
# hooks/post-edit-check.sh
# This script runs after Claude edits any file
FILE="$CLAUDE_FILE"
EXIT_CODE=0
# Check 1: If it's a Python file, run type checking
if [[ "$FILE" == *.py ]]; then
echo "🔍 Running mypy on $FILE..."
mypy "$FILE" --ignore-missing-imports --no-error-summary 2>&1
if [ $? -ne 0 ]; then
echo "❌ Type check failed for $FILE"
EXIT_CODE=1
fi
fi
# Check 2: If it's a JS/TS file, run eslint
if [[ "$FILE" == *.js || "$FILE" == *.ts || "$FILE" == *.tsx ]]; then
echo "🔍 Running eslint on $FILE..."
npx eslint "$FILE" --fix 2>&1
if [ $? -ne 0 ]; then
echo "❌ ESLint failed for $FILE"
EXIT_CODE=1
fi
fi
# Check 3: Security - check for hardcoded secrets
echo "🔍 Checking for hardcoded secrets..."
if grep -qiE '(api_key|secret|password|token)\s*=\s*["\x27][^\s]+["\x27]' "$FILE"; then
echo "🚨 BLOCK: Possible hardcoded secret detected in $FILE"
EXIT_CODE=1
fi
exit $EXIT_CODE
שימו לב — הסקריפט הזה עושה שלושה דברים: בדיקת טיפוסים ל-Python, בדיקת ESLint ל-JavaScript ו-TypeScript, וסריקת סודות מקודדים בתוך הקוד. כל אחד מהם רץ רק כשרלוונטי, וכל אחד נותן משוב ברור.
כדי לחבר את הסקריפט הזה כהוק, מעדכנים את ה-JSON:
{
"hooks": {
"PostToolUse": [
{
"matcher": "write|edit",
"command": "bash .claude/hooks/post-edit-check.sh",
"description": "Multi-check hook: types, lint, secrets"
}
]
}
} כדי לשים את הוקים בהקשר הנכון, בואו נשווה בין הגישות השונות לשליטה באיכות הקוד שכלי AI מייצרים:
| גישה | מתי רצה | משוב בזמן אמת | דורשת תשתית חיצונית | רמת שליטה | מתאימה למי |
|---|---|---|---|---|---|
| הוקים בקלוד קוד | לפני/אחרי כל פעולה | כן — מיידי | לא | גבוהה מאוד | מפתחים/ות בודדים/ות וצוותים קטנים |
| GitHub Actions / CI Pipeline | אחרי push לריפו | לא — דקות עד שעות | כן | גבוהה | צוותים בינוניים-גדולים |
| Pre-commit Hooks (Git) | לפני commit | חלקי — רק ב-commit | לא | בינונית | כל מי שעובד/ת עם Git |
| System Prompt בלבד | בתחילת שיחה | לא — אין אכיפה | לא | נמוכה | שימוש מזדמן |
| Code Review ידני | אחרי PR | לא — שעות עד ימים | לא | גבוהה מאוד | כל הצוותים |
שימו לב למשהו מעניין: הוקים בקלוד קוד הם הגישה היחידה שנותנת משוב מיידי, ברמת שליטה גבוהה מאוד, בלי צורך בתשתית חיצונית. זה לא מחליף CI/CD — זה משלים אותו. החכמה היא להשתמש בשניהם: הוקים לתפיסה מהירה של בעיות, ו-CI/CD לבדיקות מקיפות יותר.
השוק הישראלי מייצר כמויות אדירות של סטארט-אפים עם צוותי פיתוח רזים. לפי נתוני רשות החדשנות מ-2024, הגודל הממוצע של צוות פיתוח בסטארט-אפ ישראלי בשלבים מוקדמים הוא 3-5 מפתחים/ות. בצוות בגודל כזה, כל דקה שנחסכת על בדיקות ידניות שווה זהב.
הוקים מאפשרים לצוותים קטנים לעבוד עם AI בלי לוותר על סטנדרטים. אתם לא צריכים DevOps Engineer ייעודי כדי להגדיר Pipeline מורכב. אתם צריכים קובץ JSON אחד וכמה סקריפטים פשוטים.
בחברות ישראליות רבות יש קונבנציות ספציפיות — למשל, כל commit message צריך להתחיל ב-ticket number מ-Jira, או כל קובץ חדש צריך לכלול כותרת רישיון. בואו נראה הוק שאוכף קונבנציה של תיעוד בעברית:
#!/bin/bash
# hooks/enforce-docstrings.sh
# Ensure all new Python functions have docstrings
FILE="$CLAUDE_FILE"
if [[ "$FILE" != *.py ]]; then
exit 0
fi
# Check for functions without docstrings
MISSING=$(python3 -c "
import ast, sys
with open('$FILE', 'r') as f:
tree = ast.parse(f.read())
missing = []
for node in ast.walk(tree):
if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef)):
if not (node.body and isinstance(node.body[0], ast.Expr) and isinstance(node.body[0].value, (ast.Str, ast.Constant))):
missing.append(f' Line {node.lineno}: {node.name}()')
if missing:
print('Functions missing docstrings:')
for m in missing:
print(m)
sys.exit(1)
")
if [ $? -ne 0 ]; then
echo "⚠️ $MISSING"
echo "📝 Please add docstrings to all functions"
exit 1
fi
echo "✅ All functions have docstrings"
exit 0
ההוק הזה משתמש ב-AST של Python כדי לסרוק קבצים ולמצוא פונקציות בלי docstrings. זה לא רק "נחמד" — זה חוסך שעות של code review על דברים שמכונה יכולה לבדוק בשנייה.
כשמתחילים לעבוד עם הוקים ברצינות, צריך לחשוב עליהם כמערכת ולא כאוסף סקריפטים. הנה ארכיטקטורה שעובדת טוב בפרויקטים אמיתיים:
שכבה ראשונה — בדיקות מיידיות (< 2 שניות): Syntax check, בדיקת סודות מקודדים, אימות שמות קבצים. אלה רצות ב-PreToolUse ו-PostToolUse.
שכבה שנייה — בדיקות מהירות (< 15 שניות): Linting, type checking, בדיקות יחידה ממוקדות. אלה רצות ב-PostToolUse.
שכבה שלישית — בדיקות מקיפות (< 60 שניות): Test suite מלא, בדיקות אינטגרציה קלות. אלה רצות ב-Stop — כלומר רק כשקלוד קוד מסיים לחלוטין.
הרעיון הוא שהבדיקות המהירות תופסות את רוב הבעיות, והבדיקות המקיפות מוודאות שהכל עובד יחד. זה מזכיר את Testing Pyramid הקלאסי — הרבה unit tests, פחות integration tests, ומעט מאוד E2E tests.
קלוד קוד מעביר משתני סביבה לכל Hook, וזה מה שהופך אותם לחזקים באמת. הנה המשתנים העיקריים:
# משתני סביבה זמינים בתוך Hook
echo $CLAUDE_FILE # הקובץ שנערך/נוצר
echo $CLAUDE_PROJECT_DIR # תיקיית הפרויקט
echo $CLAUDE_TOOL # שם הכלי שהופעל (write, edit, bash, etc.)
echo $CLAUDE_OPERATION # סוג הפעולה (create, modify, delete)
# דוגמה לשימוש מותנה:
if [[ "$CLAUDE_TOOL" == "bash" ]]; then
echo "Claude is running a bash command"
# Maybe log it for audit
echo "$(date): $CLAUDE_TOOL operation on $CLAUDE_FILE" >> .claude/audit.log
fi
שימו לב לשורת ה-audit log — זה פטרן מצוין לצוותים שצריכים תיעוד של מה ה-AI עשה ומתי. בתחומים כמו FinTech או HealthTech בישראל, שבהם רגולציה מחייבת תיעוד, זה לא מותרות — זה חובה.
אחרי שעבדתי עם צוותים רבים שהטמיעו הוקים, הנה הטעויות שחוזרות על עצמן:
הוק שלוקח 45 שניות בכל פעם שקלוד קוד כותב שורה — זה רצח. המפתח/ת ייסגרו את ההוק תוך יום. הפתרון: מדידת זמן. הוסיפו time לפני כל פקודה בהוק, ואם זה לוקח יותר מדי — אופטימיזו או העבירו לשכבה מאוחרת יותר.
אם ההוק נכשל ופולט הודעת שגיאה קריפטית, קלוד קוד (וגם אתם) לא יודעים מה לתקן. כל הוק חייב לפלוט הודעות ברורות — מה נכשל, למה, ואיך לתקן. שימוש באימוג׳ים כמו ❌ ו-✅ עוזר לקלוד קוד לפרש את התוצאות.
הוק שמחזיר exit code 0 תמיד — חסר ערך. הוק שמחזיר exit code 1 — חוסם את הפעולה. זה הכוח של הוקים, אבל גם האחריות. ודאו שכל נתיב בסקריפט מחזיר את ה-exit code הנכון.
Git Hooks רצים בנקודות מוגדרות של Git — כמו pre-commit, pre-push, post-merge. הוקים בקלוד קוד רצים בנקודות מוגדרות של עבודת ה-AI — כמו לפני/אחרי כתיבת קובץ, אחרי סיום תשובה, וכדומה. הם משלימים זה את זה: Git Hooks שומרים על איכות הקוד ב-commit, והוקים של קלוד קוד שומרים על איכות הקוד בזמן הייצור שלו. מומלץ להשתמש בשניהם.
תלוי בהוק. הוק שרץ ruff check על קובץ בודד לוקח פחות משנייה ולא מורגש בכלל. הוק שמריץ test suite מלא עם 500 טסטים יכול לקחת דקות. הכלל: שמרו על הוקים של PreToolUse ו-PostToolUse מהירים (מתחת ל-5 שניות), ושמרו בדיקות כבדות ל-Stop hook שרץ רק בסוף.
בהחלט. הוקים מוגדרים בקובץ .claude/hooks.json בתיקיית הפרויקט. כל פרויקט יכול לקבל סט הוקים משלו. בנוסף, אפשר להגדיר הוקים גלובליים שרצים על כל הפרויקטים — למשל, בדיקת סודות מקודדים היא דבר שרלוונטי תמיד, בכל פרויקט.
כן, וזה בדיוק הרעיון. אם הוק מחזיר exit code שונה מ-0, קלוד קוד מבין שהפעולה נכשלה ויכול להגיב — למשל, לתקן את הקוד ולנסות שוב, או לשאול אתכם מה לעשות. ההוק למעשה מלמד את קלוד קוד מה מותר ומה אסור בפרויקט שלכם, ויוצר לולאת משוב שמשפרת את הפלט.
כל דבר שרץ מ-command line. הנפוץ ביותר הוא Bash, אבל אתם יכולים לכתוב הוקים ב-Python, ב-Node.js, ב-Ruby, או בכל שפה אחרת שמותקנת על המכונה שלכם. הפקודה בהגדרת ההוק היא פשוט שורת command line — אז python3 my_hook.py עובד בדיוק כמו bash my_hook.sh.
קלוד קוד עצמו עובד בעיקר על macOS ו-Linux. אם אתם עובדים על Windows, הדרך המומלצת היא להשתמש ב-WSL2 (Windows Subsystem for Linux), ואז הוקים עובדים בדיוק כמו על Linux רגיל. בסביבת WSL2, כל הסקריפטים שהראיתי כאן ירוצו ללא שינוי.
נכון לעכשיו, אין עדיין מאגר רשמי של הוקים, אבל הקהילה מתחילה לשתף. כמה מקומות טובים לחפש: GitHub (חפשו "claude code hooks"), הדוקומנטציה הרשמית של Anthropic, ופורומים של מפתחים/ות בישראל. הדרך הטובה ביותר ללמוד היא לבנות הוקים בעצמכם — להתחיל מפשוט (linter אחד) ולהוסיף בהדרגה.
אם הגעתם עד לכאן, אתם כבר מבינים שהוקים בקלוד קוד הם לא "עוד פיצ׳ר" — הם שינוי בתפיסה של איך עובדים עם AI לפיתוח. הם ההבדל בין "AI שזורק קוד" לבין "AI שעובד לפי הכללים שלכם". אם אתם רוצים ללמוד יותר, לבנות את ההוקים הראשונים שלכם, ולראות איך זה משתלב בתהליכי פיתוח אמיתיים — אנחנו כאן. הדלת פתוחה, הקוד רץ, וכל מה שצריך זה להתחיל.