כדי לקבל התראה כש-Claude Code מסיים, מוסיפים ל-~/.claude/settings.json hook מסוג Stop שמריץ את פקודת ההתראות של המערכת. Stop מופעל ברגע ש-Claude מסיים להשיב. בשביל "Claude צריך קלט ממני", מוסיפים גם hook מסוג Notification: הוא מופעל כשבקשת הרשאה ממתינה כשש שניות, או כש-Claude לא פעיל כדקה. שניהם עובדים ב-Mac, ב-Windows וב-Linux, וכלי כמו Claude Code Notifier יכול לשלוח את אותן התראות לטלפון.
01מה Claude Code עושה בעצמו
Claude Code כבר מנסה להתריע כשנראה שהתרחקתם מה-terminal. כברירת מחדל הוא שולח התראת desktop ב-iTerm2, ב-Ghostty וב-Kitty, עשוי לשלוח תו bell ב-Apple Terminal, ולא עושה כלום ב-terminals אחרים. ב-iTerm2 צריך גם להפעיל את הגדרות ההתראה לפני שמשהו יופיע.
כך שאם אתם עובדים ב-terminal של VS Code, ב-Warp, ב-Windows Terminal או ברוב ה-terminals ב-Linux, בדרך כלל לא תקבלו כלום. אפשר לכפות terminal bell עם ההגדרה preferredNotifChannel, כפי שמוסבר במדריך ה-terminal bell. להתראת desktop אמיתית בכל terminal צריך hook.
02שני ה-hooks שצריך
Hooks הם פקודות ש-Claude Code מריץ בנקודות קבועות בסשן. שניים מהם רלוונטיים כאן:
Stopכש-Claude מסיים להשיב (לא כשעוצרים אותו)"Claude סיים"Notification עם matcher permission_promptבקשת הרשאה ממתינה כשש שניות בלי שהקלדתם"Claude צריך אישור"Notification עם matcher idle_promptכ-60 שניות אחרי ש-Claude סיים, אם לא הקלדתם מאזתזכורת שתורכםStop הוא המהיר. הוא רץ מיד בסוף כל תור. סוגי ה-Notification מותנים בכך שלא הסתכלתם: כל הקשה דוחה אותם, כך שלא תקבלו התראה בזמן שאתם צופים. אם רוצים סימן ברגע ש-Claude מבקש הרשאה, השתמשו במקום זאת ב-hook PermissionRequest, שמתואר במדריך PermissionRequest.
להסבר כללי על hooks (אירועים, matchers, קובצי הגדרות, exit codes), ראו הסבר על hooks ב-Claude Code.
03הגדרה עובדת ב-macOS
פתחו את ~/.claude/settings.json (צרו אותו אם הוא לא קיים) והוסיפו את זה. אם כבר יש בקובץ אובייקט hooks, הוסיפו את Stop ואת Notification כמפתחות בתוכו במקום להחליף אותו.
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude has finished\" with title \"Claude Code\"'"
}
]
}
],
"Notification": [
{
"matcher": "permission_prompt|idle_prompt",
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
}
]
}
]
}
}
ל-Stop אין matcher, אז הוא מופעל בכל תור. ה-matcher של Notification מגביל אותו לשני הסוגים שמשמעותם "תחזרו".
אם לא מופיע כלום, ייתכן ש-macOS חוסם את Script Editor, ש-osascript משתמש בו להצגת התראות. הריצו פעם אחת osascript -e 'display notification "test"' ב-Terminal, ואז פתחו את System Settings > Notifications, מצאו את Script Editor והפעילו את Allow Notifications.
04אותה הגדרה ב-Linux וב-Windows
משאירים את מבנה ה-JSON שלמעלה ומחליפים רק את מחרוזות ה-command.
Linux (דורש daemon של התראות שולחן עבודה, כך שזה לא יעבוד על שרת headless):
"command": "notify-send 'Claude Code' 'Claude has finished'"
אם notify-send לא מותקן, יש להתקין את libnotify-bin ב-Debian וב-Ubuntu, או את המקבילה בהפצה שלכם. להגדרות SSH ושרתים, ראו התראות דרך SSH.
Windows (PowerShell). הדוגמה של Anthropic עצמה פותחת תיבת הודעה ולא toast בפינת המסך:
"command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude has finished', 'Claude Code')\""
התיבה עלולה להיפתח מאחורי חלון ה-terminal, לכן כדאי לבדוק את הפקודה קודם ב-PowerShell. תחת WSL, powershell.exe צריך להיות נגיש דרך ה-interop של Windows. המדריך ל-Windows מכסה אפשרויות נוספות.
05בדיקה שהכול עובד
- הקלידו
/hooksב-Claude Code. ה-hooks שלכם אמורים להופיע תחתStopו-Notification. - שאלו את Claude משהו קצר. כשהוא עונה, אמורה להופיע התראת ה-
Stop. - בקשו משהו שדורש הרשאה, עברו לחלון אחר וחכו. התראת ה-
permission_promptתגיע אחרי כשש שניות.
שינויים ב-settings.json נקלטים בדרך כלל מיד. אם hook לא מופיע ב-/hooks, בדקו שהקובץ הוא JSON תקין (בלי פסיקים מיותרים בסוף ובלי הערות). הפעילו את Claude Code עם claude --debug כדי לראות מה כל hook עשה. פתרונות נוספים נמצאים ברשימת פתרון התקלות.
06קבלת ההתראה בטלפון
התראת שולחן עבודה עוזרת רק כשאתם ליד המחשב. ברגע שמתרחקים, צריך לקבל את ההתראה במקום אחר. יש שלוש דרכים נפוצות:
- שירות push שאתם מריצים בעצמכם, כמו ntfy, שנקרא עם
curlמאותם hooks. זול וגמיש. ראו את המדריך ל-ntfy. - webhook לצ'אט עבור Telegram, Slack או Discord. מתאים אם אתם ממילא חיים בצ'אט. ראו את המדריך ל-webhooks של צ'אט.
- Claude Code Notifier, שמגדיר את ה-hooks בשבילכם ומאפשר לענות מהטלפון.
הפתרונות העצמאיים מספיקים אם כל מה שצריך הוא פינג. המגבלה שלהם היא שהם חד-כיווניים: אתם מגלים ש-Claude מחכה, אבל עדיין צריכים לחזור למקלדת כדי לאשר משהו.
Claude Code Notifier הוא כלי עצמאי (לא של Anthropic) שמורכב משני חלקים: ccn, כלי command line חינמי ל-Mac, Windows ו-Linux, ואפליקציות ל-iPhone ול-Android. ההתקנה בשורה אחת:
curl -fsSL https://claudecodenotifier.com/install.sh | sh
ב-Windows, הריצו irm https://claudecodenotifier.com/install.ps1 | iex ב-PowerShell (התמיכה ב-Windows בגרסת בטא). אפשרויות נוספות, כולל Homebrew, npx @touchtap/ccn והפלאגין ל-Claude Code, מופיעות בעמוד של ccn.
ההתקנה מוסיפה שבע רשומות hook שכל אחת מריצה ccn hook, משאירה את שאר ה-settings.json כמו שהיה, ושומרת לידו גיבוי חד-פעמי. גם בלי טלפון בכלל, ccn מציג התראת שולחן עבודה במחשב כש-Claude מסיים, צריך הרשאה או שואל שאלה. החלק הזה חינמי ועובד גם בלי רשת.
מצמידים טלפון עם ccn pair ומקבלים בנוסף:
- push של "Claude סיים" ברגע שתור מסתיים;
- בקשות הרשאה שאפשר לאשר פעם אחת, לאשר לכל הסשן או לדחות;
- מענה מהטלפון לשאלות רב-ברירה של Claude;
- תיבת המשך לשליחת ההוראה הבאה ל-Claude מיד כשהוא מסיים.
אם הקלדתם ב-30 השניות האחרונות, שום דבר לא ממתין לטלפון וה-terminal שואל כרגיל. האפליקציות דורשות מנוי או רכישה לכל החיים; ראו מחירים. המדריך הצמדת טלפון מסביר את ההגדרה שלב אחר שלב.
07שאלות נפוצות
למה לוקח ל-Notification hook שלי כל כך הרבה זמן לפעול?
הסוג permission_prompt מחכה שה-prompt יוצג כשש שניות בלי שהקלדתם, ו-idle_prompt מחכה כ-60 שניות אחרי ש-Claude מסיים. העיכוב מכוון, כדי שלא תקבלו פינג בזמן שאתם צופים. להתראת "סיים" מיידית השתמשו ב-hook של Stop, ולהתראת "צריך אישור" מיידית ב-hook של PermissionRequest.
האם ה-Stop hook פועל אם לוחצים Esc כדי לעצור את Claude?
לא. Stop לא רץ כשהתור מסתיים בגלל שעצרתם אותו. הוא גם לא רץ כשהתור מסתיים בשגיאת API, כמו rate limit. במקרה כזה Claude Code מפעיל אירוע נפרד, StopFailure, שאפשר לחבר אליו hook באותה דרך.
האם Stop hook פועל אחרי כל הודעה, או רק כשכל המשימה הסתיימה?
אחרי כל תור. ל-Claude Code אין דרך לדעת מתי המשימה הכוללת שלכם הסתיימה, רק מתי הוא הפסיק להגיב. בשיחה ארוכה הלוך ושוב תקבלו התראה על כל תשובה. אם זה יותר מדי, השתמשו במקום זאת בהתראת idle_prompt, שפועלת רק אחרי שהייתם רחוקים כדקה.
האם זה עובד ב-terminal של VS Code או JetBrains?
כן. ה-hooks רצים מתוך Claude Code עצמו, לא מה-terminal, ולכן הם עובדים בכל terminal, כולל terminals של IDE. מה שתלוי ב-terminal הן ההתראות המובנות. ראו את המדריך ל-terminals של IDE.
אפשר לקבל התראות בטלפון בלי להתקין עליו כלום?
חלקית. hook ששולח ל-ntfy או ל-webhook של צ'אט יכול להגיע לאפליקציה שכבר יש לכם. אבל הוא רק יכול לספר שמשהו קרה. כדי לאשר או לענות מהטלפון, צריך משהו שמחזיר את התשובה שלכם ל-hook, וזה בדיוק מה שהאפליקציות של Claude Code Notifier עושות.