إشعارات Claude Code: اعرف متى ينتظرك ومتى ينتهي

«A session that is blocked looks exactly like a session that is done, so I open the wrong one first.» (الجلسة المتوقفة تبدو تمامًا مثل الجلسة المنتهية، فأفتح الجلسة الخطأ أولًا). هذا السطر من طلب ميزة في Claude Code يلخّص المشكلة. إليك كيف تحصل على إشارة مختلفة لكل حالة.

بقلم Aslan، فريق Pet Island · آخر تحديث 26 أكتوبر 2026 · مدة القراءة: 4 دقيقة

الإجابة المختصرة

يُصدر Claude Code بالفعل إشعارًا عندما ينتهي أو ينتظر إذنًا وأنت بعيد، لكن Ghostty وKitty وiTerm2 وحدها تعرضه افتراضيًا كإشعار على سطح المكتب. في غيرها اضبط "preferredNotifChannel": "terminal_bell". ولصوتين مختلفين، استخدم خطاف Notification مع المطابِق permission_prompt لحالة «يحتاجك»، وخطاف Stop لحالة «انتهى».

ما يفعله Claude Code من تلقاء نفسه

عندما ينهي Claude مهمة أو يتوقف عند طلب إذن، ويبدو أنك بعيد عن الطرفية، يُطلق حدث إشعار. افتراضيًا لا يحوّله إلى إشعار على سطح المكتب إلا في Ghostty وKitty وiTerm2. في Windows Terminal وطرفية VS Code وWarp وغيرها لا يحدث أي شيء مرئي ما لم تُعدّه.

أبسط حل هو جرس الطرفية:

~/.claude/settings.jsonنسخ
{
"preferredNotifChannel": "terminal_bell"
}

ما يفعله الجرس يعود إلى طرفيتك. في Windows Terminal يمكن أن تكون قيمة الإعداد bellStyle هي audible (الافتراضية) أو window أو taskbar أو all أو none. مع all يشغّل Windows Terminal صوتًا ويجعل أيقونة شريط المهام تومض.

  • iTerm2: ‏Settings → Profiles → Terminal → فعّل «Notification Center Alerts»، ثم Filter Alerts → فعّل «Send escape sequence-generated alerts».
  • tmux: أضف set -g allow-passthrough on إلى ~/.tmux.conf، وإلا فلن تصل الإشعارات أبدًا إلى الطرفية الخارجية.
  • عبر SSH: يعود الإشعار إلى جهازك المحلي، لذا يمكن للجلسات البعيدة أن تنبّهك أيضًا.

طلب الميزة الخاص بإشعارات النظام (#26581، 34 تصويتًا) أُغلق على أساس أنها متاحة بالفعل، مع الإشارة إلى هذا الإشعار المدمج تحديدًا. أما طلب إشارة مختلفة لحالتَي «ينتظر» و«انتهى» (#94373) فلا يزال مفتوحًا. وهنا يأتي دور الخطافات.

حدثان: Notification وStop

  • Notification يُطلَق عندما يرسل Claude Code إشعارًا. ومطابِقه هو نوع الإشعار. النوعان المهمان لك هما permission_prompt (يحتاج Claude إلى موافقتك على استخدام أداة وقد انتظر الطلب نحو ست ثوانٍ) وidle_prompt (أنهى Claude الرد منذ نحو 60 ثانية ولم تكتب شيئًا منذ ذلك الحين).
  • Stop يُطلَق كلما أنهى Claude الرد. لا يُطلَق عندما تقاطعه أنت؛ وأخطاء API تُطلق StopFailure بدلًا منه.

تعمل الخطافات إلى جانب الإشعار المدمج ولا تحل محله، لذا يمكنك الإبقاء على الاثنين.

Windows: صوتان مختلفان

على Windows تعمل الخطافات في Git Bash، أو في PowerShell إذا لم يكن Git Bash مثبتًا. ضبط "shell": "powershell" يزيل التخمين. هذه التهيئة تشغّل صفيرًا مزدوجًا حادًا عندما يحتاج Claude إلى إذن، وصفيرًا منخفضًا عندما ينتهي:

%USERPROFILE%\.claude\settings.jsonنسخ
{
"hooks": {
"Notification": [
{
"matcher": "permission_prompt",
"hooks": [
{ "type": "command", "shell": "powershell",
"command": "[Console]::Beep(1320, 150); [Console]::Beep(1320, 150)" }
]
}
],
"Stop": [
{
"hooks": [
{ "type": "command", "shell": "powershell",
"command": "[Console]::Beep(660, 300)" }
]
}
]
}
}

يأخذ Console.Beep ترددًا بالهرتز ومدة بالمللي ثانية، وينتظر حتى ينتهي الصفير. يعرض دليل الخطافات من Anthropic أيضًا مثالًا لـ Windows يفتح مربع رسالة باستخدام System.Windows.Forms؛ وتنبّه ملاحظتهم إلى أنه مربع حوار وليس إشعارًا، وقد يُفتح خلف الطرفية.

macOS وLinux

تستخدم وثائق Anthropic الأمر afplay على macOS:

~/.claude/settings.jsonنسخ
{
"hooks": {
"Notification": [
{
"matcher": "permission_prompt",
"hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }]
}
],
"Stop": [
{
"hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Pop.aiff" }]
}
]
}
}

لتنبيه مرئي استخدم osascript -e 'display notification "Claude needs you" with title "Claude Code"' على macOS، أو notify-send "Claude Code" "Claude needs you" على Linux.

تفاصيل توفّر عليك سهرة كاملة

  • Stop يُطلَق كثيرًا. يُطلَق في كل مرة ينهي فيها Claude الرد، وليس فقط عند انتهاء مهمة كاملة. إذا كان ذلك مزعجًا، فاستخدم إشعار idle_prompt بدلًا منه. فهو ينتظر نحو دقيقة ولا يُطلَق إلا إذا لم تكتب شيئًا.
  • اقرأ الحدث إذا احتجت إليه. يتضمن إدخال Notification الحقول message وtitle وnotification_type، لذا يمكن للسكربت عرض الطلب الفعلي.
  • عرض الوكلاء (Agent view). إذا كنت تشغّل جلسات في الخلفية باستخدام claude agents، فإنه ينبّهك عبر preferredNotifChannel نفسه عندما تبدأ جلسة في انتظار إدخال، أو تنتهي، أو تفشل، ويُطلق خطاف Notification بالنوع agent_needs_input أو agent_completed.
  • حالة الطرفية. الطرفيات التي تطبّق بروتوكول الحالة OSC 7501 يمكنها عرض ما إذا كانت كل جلسة Claude Code تعمل أو تنتظر أو انتهت. ويُبلغ Claude Code v2.1.295 أو أحدث عن ذلك تلقائيًا.
  • الخطاف لا يعمل على Windows؟ راجع خطافات Claude Code لا تعمل على Windows. السبب في الغالب الأعم هو الـ shell.

معرفة أي جلسة، والرد عليها

الصوت يخبرك بأن شيئًا ما حدث. لكنه لا يخبرك من أي طرفية من طرفياتك الثلاث جاء، ولا ما الذي يريد Claude تشغيله. يمنح Pet Island كل جلسة Claude Code مكانًا في جزيرة صغيرة أعلى الشاشة: تعمل، أو تنتظرك، أو انتهت. يصل طلب الإذن مع الأمر أو الفروقات (diff)، فتسمح به أو ترفضه هناك مباشرة؛ وتعمل الأسئلة والخطط بالطريقة نفسها. ونقرة واحدة تنقلك إلى الطرفية المعنية بالضبط عندما تريد النظر عن قرب.

الأسئلة الشائعة

هل يحتوي Claude Code على إشعارات؟

نعم. عندما ينتهي أو ينتظر إذنًا وأنت بعيد، يُطلق إشعارًا. تعرضه Ghostty وKitty وiTerm2 افتراضيًا كإشعار على سطح المكتب؛ وفي الطرفيات الأخرى اضبط preferredNotifChannel على "terminal_bell" أو أضف خطاف Notification.

كيف أحصل على صوت عندما ينتهي Claude Code؟

أضف خطاف Stop يشغّل صوتًا، مثل afplay على macOS أو [Console]::Beep في PowerShell على Windows.

كيف أميّز بين «يحتاج إذنًا» و«انتهى»؟

استخدم خطاف Notification مع المطابِق permission_prompt لصوت، وخطاف Stop لصوت آخر.

لماذا لا تصلني إشعارات في Windows Terminal أو VS Code؟

لا يرسل Claude Code إشعارات سطح المكتب افتراضيًا إلا في Ghostty وKitty وiTerm2. اضبط preferredNotifChannel على "terminal_bell" أو استخدم خطافًا.

هل تعمل الإشعارات داخل tmux؟

نعم، بعد أن تضيف set -g allow-passthrough on إلى ~/.tmux.conf.

المصادر

راجعنا كل إعداد وسلوك في هذه الصفحة مقابل هذه الصفحات بتاريخ 26 أكتوبر 2026. الوكلاء يتغيرون بسرعة؛ فإذا لم يعد شيء مطابقًا، فالمرجع هو الصفحة الرسمية.

تابع القراءة

أجب كل وكيل من أعلى شاشتك.

Windows وMac · مجانًا لمدة 7 أيام، ثم 8.99 دولار لمرة واحدة · دولار واحد من كل عملية بيع يذهب لإطعام الحيوانات الضالة

جرّب Pet Island مجانًا