claude-code-notifier
איך זה עובד מדריכים שאלות נפוצות
◐עברית
English العربية Deutsch Español Français עברית Italiano 日本語 한국어 Nederlands Polski Português (Brasil) Русский Türkçe Tiếng Việt 简体中文 繁體中文
התחלה
כל המדריכים

מענה לבקשות הרשאה מתוך hook (PermissionRequest)

עודכן ב-31 באוקטובר 2026 · 6 דקות קריאה
בעמוד זה 01השוואה בין PermissionRequest ל-PreToolUse ול-Notification 02מה ה-hook מקבל 03אובייקט ההחלטה 04דוגמה: אישור אוטומטי של prompt אחד 05דוגמה: החלטה לפי הפקודה 06דוגמה: אישור וזכירה לכל הסשן 07לעיתים קרובות כלל הרשאה הוא הכלי המתאים יותר 08דברים שמפילים אנשים 09איפה Claude Code Notifier נכנס לתמונה 10שאלות נפוצות

ה-hook PermissionRequest של Claude Code רץ ברגע ש-Claude Code עומד להציג לכם בקשת הרשאה, והוא יכול לענות עליה במקומכם. כדי לאשר, ה-hook יוצא עם 0 ומדפיס {"hookSpecificOutput": {"hookEventName": "PermissionRequest", "decision": {"behavior": "allow"}}}; כדי לדחות, הוא משתמש ב-"behavior": "deny" עם message עבור Claude. הוא מתאים לפי שם הכלי, לא יכול לעקוף את כללי ה-deny שלכם, וקוד יציאה 2 לא עושה כלום באירוע הזה. אם ה-hook לא מדפיס החלטה, בקשת ההרשאה הרגילה מוצגת.

01השוואה בין PermissionRequest ל-PreToolUse ול-Notification

שלושה אירועי hook קשורים להרשאות, ולכל אחד תפקיד אחר:

אירועמתי הוא רץיכול להחליט?
PreToolUseלפני כל קריאה לכלי, בין אם היא דורשת הרשאה ובין אם לאכן: allow,‏ deny,‏ ask או defer
PermissionRequestרק כש-Claude Code עומד לשאול אתכםכן: allow או deny
Notification (permission_prompt)אחרי שבקשה המתינה כשש שניות בזמן שאתם לא ליד המחשבלא

השתמשו ב-PermissionRequest כשחשובות לכם הבקשות עצמן: לענות עליהן, לתעד אותן או לשלוח אותן למקום אחר. הוא מופעל מיד, בלי השהיה של שש שניות. השתמשו ב-PreToolUse לכללים שצריכים לחול על כל קריאה, כמו "לעולם אל תריץ rm -rf", כי הוא רץ גם כשלא הייתה מוצגת שום בקשה. המדריך ל-Notification hook מסביר את התזמון של האירוע הזה.

02מה ה-hook מקבל

מלבד השדות המשותפים, hook של PermissionRequest מקבל את tool_name ו-tool_input של הקריאה ש-Claude רוצה לבצע, ומערך אופציונלי permission_suggestions:

{
  "session_id": "abc123",
  "cwd": "/Users/...",
  "permission_mode": "default",
  "hook_event_name": "PermissionRequest",
  "tool_name": "Bash",
  "tool_input": {
    "command": "rm -rf node_modules",
    "description": "Remove node_modules directory"
  },
  "permission_suggestions": [
    {
      "type": "addRules",
      "rules": [{ "toolName": "Bash", "ruleContent": "rm -rf node_modules" }],
      "behavior": "allow",
      "destination": "localSettings"
    }
  ]
}

permission_suggestions מכיל את שינויי הכללים ש-Claude Code היה מציע עבור הבקשה הזו. זה לא העתק מדויק של האפשרויות בחלון, כי כל חלון בונה את האפשרויות שלו.

03אובייקט ההחלטה

החזירו decision בתוך hookSpecificOutput:

שדהבמה להשתמש
behavior"allow" או "deny"
updatedInputב-allow בלבד. מחליף את כל הקלט של הכלי, אז יש לכלול גם שדות שלא השתנו
updatedPermissionsב-allow בלבד. שינויי הרשאות להחלה, כמו הוספת כלל או שינוי מצב
messageב-deny בלבד. מסביר ל-Claude למה
interruptב-deny בלבד. true גם עוצר את Claude

שני כללים שכדאי לזכור:

  • כללי deny ו-ask עדיין חלים. hook שמחזיר "allow" לא עוקף כלל deny תואם בהגדרות, וקלט שעבר שינוי נבדק שוב מול אותם כללים.
  • קוד יציאה 2 לא נלקח כאן בחשבון. ברוב האירועים יציאה עם 2 חוסמת, אבל hook של PermissionRequest שיוצא עם 2 בלי אובייקט decision משאיר את ה-prompt כמו שהוא. כדי לדחות, צריך להחזיר את ההחלטה.

04דוגמה: אישור אוטומטי של prompt אחד

הדוגמה של Anthropic עצמה מאשרת את ExitPlanMode, ה-prompt שמופיע כש-Claude מסיים לבנות תוכנית, כך שלא תישאלו על זה בכל פעם:

{
  "hooks": {
    "PermissionRequest": [
      {
        "matcher": "ExitPlanMode",
        "hooks": [
          {
            "type": "command",
            "command": "echo '{\"hookSpecificOutput\": {\"hookEventName\": \"PermissionRequest\", \"decision\": {\"behavior\": \"allow\"}}}'"
          }
        ]
      }
    ]
  }
}

כדאי לשמור על matchers צרים. matcher ריק או .* עם allow גורף יאשרו כל prompt, כולל כתיבת קבצים ופקודות shell.

05דוגמה: החלטה לפי הפקודה

הסקריפט הזה (דורש jq) דוחה כל דבר שנוגע ב-git push עם סיבה ש-Claude יכול לקרוא, ומשאיר לכם כל prompt אחר בכך שהוא לא מדפיס כלום:

#!/bin/bash
# ~/.claude/hooks/permission-check.sh
input=$(cat)
cmd=$(jq -r '.tool_input.command // empty' <<<"$input")

case "$cmd" in
  *"git push"*)
    jq -nc '{hookSpecificOutput: {hookEventName: "PermissionRequest",
             decision: {behavior: "deny",
                        message: "Pushing is not allowed from this session. Commit and stop."}}}'
    ;;
esac
exit 0
{
  "hooks": {
    "PermissionRequest": [
      {
        "matcher": "Bash",
        "hooks": [{ "type": "command", "command": "~/.claude/hooks/permission-check.sh" }]
      }
    ]
  }
}

בנו את ה-JSON עם jq ולא בשרשור מחרוזות, כדי שמירכאות בהודעה לא ישברו אותו. ודאו גם ששום דבר אחר לא מודפס ל-stdout. אם פרופיל ה-shell מדפיס שורה, Claude Code לא יקרא את ההחלטה.

06דוגמה: אישור וזכירה לכל הסשן

כדי לאשר בקשה ולמנוע מ-Claude לשאול שוב עד סוף הסשן, מוסיפים רשומת updatedPermissions עם destination: "session". ה-hook יכול להחזיר אחת מה-permission_suggestions שקיבל, ולשנות רק את היעד:

#!/bin/bash
input=$(cat)
jq -c '{hookSpecificOutput: {hookEventName: "PermissionRequest",
        decision: {behavior: "allow",
                   updatedPermissions: [(.permission_suggestions // [])[]
                                        | select(.type == "addRules")
                                        | .destination = "session"]}}}' <<<"$input"

כפי שהוא כתוב, הסקריפט מאשר כל בקשה שהוא רואה, אז שלבו אותו עם matcher צר. היעד יכול להיות גם localSettings, projectSettings או userSettings, שכותבים את הכלל לקובץ הגדרות במקום לשמור אותו בזיכרון.

07לעיתים קרובות כלל הרשאה הוא הכלי המתאים יותר

אם התשובה אף פעם לא משתנה, אין צורך ב-hook. שימו את הכלל ב-settings.json ו-Claude Code יחיל אותו בלי להריץ כלום:

{
  "permissions": {
    "allow": ["Bash(npm run *)"],
    "deny": ["Bash(git push *)"]
  }
}

הכללים נבדקים בסדר הזה: קודם deny, אחר כך ask ואז allow. hook מצדיק את עצמו כשההחלטה תלויה במשהו שכלל לא רואה, כמו השעה ביום, ה-branch שאתם עליו, או אדם שעונה ממקום אחר. הסבר על מצבי ההרשאות מכסה את שאר האפשרויות המובנות.

08דברים שמפילים אנשים

  • הרצות לא אינטראקטיביות. עם claude -p אין למי להציג prompt. hooks של PermissionRequest עדיין רצים, ואם אף אחד מהם לא מחזיר החלטה, הקריאה נדחית.
  • Timeouts. command hook יכול לרוץ עד 600 שניות כברירת מחדל, ו-Claude מחכה. הגדירו timeout (בשניות) אם ה-hook מחכה למשהו איטי, למשל לאדם.
  • חלק מה-prompts לא מפעילים אותו. בקשת רשת של פקודה ב-sandbox לא מריצה את PermissionRequest. לשם כך השתמשו בסוג ההתראה permission_prompt.
  • אבטחה. hook שמחזיר "allow" מאשר פעולות בשמכם ועם ההרשאות של המשתמש שלכם. בדקו אותו כמו כל קוד אחר שיכול להריץ פקודות.

09איפה Claude Code Notifier נכנס לתמונה

הסיבה הנפוצה ביותר לכתוב hook של PermissionRequest היא לענות על prompts כשאתם לא ליד המקלדת. בגרסת DIY ה-hook צריך לשלוח את הבקשה לאנשהו, לחכות לתשובה ולהחזיר אותה לפני ה-timeout. זה אפשרי, ויש מי שבונים את זה עם צ'אט בוט.

Claude Code Notifier עושה את זה בשבילכם. כלי שורת הפקודה החינמי שלו, ccn, רץ על Mac, Windows ו-Linux ומתקין את ה-hooks שלו ב-~/.claude/settings.json. כשאפליקציית ה-iPhone או ה-Android מצומדת, בקשת הרשאה מגיעה לטלפון ואפשר לאשר פעם אחת, לאשר לכל הסשן או לדחות; ccn מחזיר את ההחלטה הזו מה-hook של PermissionRequest. אם הקלדתם ב-30 השניות האחרונות, אין המתנה וה-terminal שואל כרגיל. אם אתם לא ליד המחשב, ה-terminal מחכה לטלפון עד תקרה שתבחרו (hold_ceiling_seconds, ברירת מחדל 600), ומפסיק לחכות ברגע שנוגעים במקלדת. זהו כלי עצמאי שלא פותח על ידי Anthropic. ראו אישור הרשאות מהטלפון לתהליך העבודה ו-האם אישור מרחוק בטוח? לצד האבטחה.

10שאלות נפוצות

איך מאשרים הרשאות אוטומטית עם hook?

הוסיפו hook של PermissionRequest עם matcher צר, וגרמו לו להדפיס החלטת JSON עם "behavior": "allow" בתוך hookSpecificOutput, ואז לצאת עם 0. אם אותה פקודה תמיד צריכה להיות מאושרת, כלל permissions.allow ב-settings.json פשוט יותר ולא דורש hook.

למה קוד יציאה 2 לא דוחה את הבקשה?

PermissionRequest הוא אחד האירועים שבהם יציאה עם 2 לא מכובדת. Claude Code מתעלם ממנה ומציג את ה-prompt הרגיל. במקום זאת, החזירו "behavior": "deny" באובייקט ההחלטה.

האם hook של PermissionRequest יכול לעקוף את כללי ה-deny שלי?

לא. כללי deny ו-ask עדיין נבדקים, כך ש-"allow" מ-hook לא עובר כלל deny תואם. גם כל updatedInput שתחזירו נבדק מול הכללים האלה.

מה ההבדל בין PermissionRequest ל-PreToolUse?

PreToolUse רץ לפני כל קריאה לכלי ויכול לאשר, לדחות, לשאול או לדחות את ההחלטה הלאה. PermissionRequest רץ רק כש-Claude Code עומד להציג prompt, ויכול לאשר או לדחות אותו. השתמשו ב-PreToolUse למדיניות, וב-PermissionRequest למענה על prompts.

מה קורה אם ה-hook לא מדפיס כלום?

שום דבר לא משתנה. Claude Code מציג את prompt ההרשאה הרגיל ב-terminal, כאילו ה-hook לא קיים.

Claude Code Notifier קבלו push לטלפון כש-Claude Code מסיים או צריך אתכם, ומשם אפשר לאשר, לדחות או לענות. כלי שורת הפקודה ccn זמין בחינם ל-Mac, ל-Windows ול-Linux.
הורדה ל-iOS הורדה ל-Android התקנת ccn

מדריכים קשורים

  • אישור בקשות הרשאה של Claude Code מהטלפוןה-hook PermissionRequest של Claude Code יכול להחזיר allow או deny. כך עונים על prompts של הרשאות מהטלפון, ידנית או עם ccn.
  • הסבר על hooks ב-Claude Code: כל אירוע ולמה הוא משמשמה הם hooks ב-Claude Code, איפה הם נכנסים ב-settings.json, איך matchers, קלט ו-exit codes עובדים, ולמה משמש כל אירוע hook.
  • מצבי ההרשאות של Claude Code בהסבר (default, acceptEdits, plan, bypassPermissions)מה עושה כל מצב הרשאות של Claude Code (default, acceptEdits, plan, auto, dontAsk, bypassPermissions), איך עוברים ביניהם, ומתי כל אחד בטוח.
  • האם בטוח לאשר פעולות של Claude Code מהטלפון?איך עובד אישור מרחוק ב-Claude Code, מה יכול להשתבש, אילו נתונים יוצאים מהמחשב, ואילו הגדרות שומרות על בטיחות.
claude-code-notifier

Claude Code Notifier היא אפליקציה עצמאית של צד שלישי. היא אינה קשורה ל-Anthropic, PBC, ואינה מאושרת או ממומנת על ידה. "Claude" ו-"Claude Code" הם סימנים מסחריים של Anthropic, PBC.

אפליקציות אפליקציית iOS אפליקציית Android ccn ל-macOS, ל-Windows ול-Linux כל המדריכים
משפטי מדיניות פרטיות תנאי שימוש שפות נוספות © 2026 touchtap. כל הזכויות שמורות. TouchTap Ltd רשומה באנגליה ובוויילס, מספר חברה 13942589.