يتضمن Claude Code إشعارًا مدمجًا: عندما ينتهي Claude أو ينتظر ردك على prompt إذن ويبدو أنك غير موجود، ينبّهك عبر الـ terminal. ويحدد الإعداد preferredNotifChannel طريقة التنبيه. القيمة الافتراضية "auto" ترسل إشعار سطح مكتب في iTerm2 وGhostty وKitty، ولا تفعل شيئًا في معظم الـ terminals الأخرى. اضبطه على "terminal_bell" لإطلاق رمز الجرس في أي terminal، إما من /config (حيث يُسمى Local notifications) أو في ~/.claude/settings.json.
01الحل السريع
إذا لم تسمع شيئًا عند انتهاء Claude، فأضف ما يلي إلى ~/.claude/settings.json:
{
"preferredNotifChannel": "terminal_bell"
}
ثم تأكد من أن الـ terminal يستجيب للجرس: بتشغيل صوت، أو قفز أيقونة Dock، أو وميض التبويب، أو إظهار إشعار. هذا الإعداد موجود في الـ terminal نفسه وليس في Claude Code. على Mac وWindows وLinux، تحتوي تفضيلات معظم الـ terminals على قسم باسم "bell" أو "alert".
02جميع قيم preferredNotifChannel
"auto" (افتراضي)إشعار سطح مكتب في iTerm2 وGhostty وKitty. وفي Apple Terminal، رمز الجرس فقط عندما يكون الجرس الصوتي في ذلك الملف الشخصي معطّلًا. ولا شيء في غيرها"terminal_bell"يطلق رمز الجرس في أي terminal"iterm2"يرسل إشعار سطح مكتب عبر iTerm2"iterm2_with_bell"إشعار سطح مكتب عبر iTerm2 مع الجرس"kitty"يرسل إشعار سطح مكتب عبر Kitty"ghostty"يرسل إشعار سطح مكتب عبر Ghostty"notifications_disabled"لا يرسل شيئًايمكن وضع الإعداد في أي ملف إعدادات: ملف المستخدم (~/.claude/settings.json)، أو المشروع (.claude/settings.json)، أو المحلي (.claude/settings.local.json). كانت الإصدارات الأقدم تحفظه في ~/.claude.json، وما زال Claude Code يقرأ أي قيمة متبقية هناك.
03متى يُطلَق الإشعار المدمج
وفقًا لتوثيق Anthropic، يتبع التنبيه المدمج التوقيت نفسه الذي يتبعه hook Notification. في جلسة terminal:
- prompt الإذن: بعد انتظار الـ prompt نحو ست ثوانٍ دون أي ضغطة مفتاح. وكل ضغطة مفتاح تعيد بدء العدّ.
- الانتهاء: بعد نحو 60 ثانية من توقف Claude، وبشرط ألا تكون قد كتبت شيئًا منذ ذلك الحين وألا يكون هناك وكيل خلفي ما زال يعمل.
إذن تنبيه "الانتهاء" المدمج ليس فوريًا عن قصد؛ فهو مصمم ليصلك حين تبتعد، لا لينبّهك وأنت تراقب. إذا أردت تنبيهًا لحظة انتهاء الدور، فاستخدم hook من نوع Stop بدلًا من ذلك (راجع دليل Stop hook).
04حسب نوع الـ terminal
iTerm2 (macOS)
يحصل iTerm2 على إشعار سطح مكتب افتراضيًا، لكن iTerm2 لا يعرضه إلا بعد أن تسمح بذلك:
- افتح Settings > Profiles > Terminal.
- فعّل Notification Center Alerts.
- انقر Filter Alerts وفعّل Send escape sequence-generated alerts.
وتأكد أيضًا من السماح لـ iTerm2 بعرض الإشعارات في System Settings > Notifications.
Apple Terminal (macOS)
لا يحصل Apple Terminal على إشعار سطح مكتب. مع "auto"، يرسل Claude Code جرسًا صامتًا فقط عندما يجد Audible bell معطّلًا في الملف الشخصي للنافذة الأمامية. ويظهر الجرس حينها كوميض للنافذة، أو كقفز لأيقونة Dock عندما يكون Terminal في الخلفية، إذا كان خيار Visual bell أو قفز Dock مفعّلًا في الملف الشخصي.
انتبه لتفصيل واحد: إذا قبلت prompt إعداد الـ terminal الذي يظهر عند التشغيل الأول لـ Claude Code، فقد نفّذ /terminal-setup، الذي يعطّل الجرس الصوتي في ملفك الشخصي في Apple Terminal. لسماع صوت، اضبط "terminal_bell" وأعد تفعيل Audible bell من Settings > Profiles > Advanced.
Ghostty وKitty (macOS وLinux)
كلاهما يحصل على إشعار سطح مكتب دون أي إعداد، ويمرّره إلى مركز الإشعارات في نظام التشغيل.
بقية الطرفيات
لا تحصل Windows Terminal وGNOME Terminal وKonsole وAlacritty وWezTerm وWarp وطرفيات بيئات التطوير على أي تنبيه افتراضيًا. اضبط القيمة "terminal_bell" وفعّل معالجة الجرس في الطرفية نفسها، أو استخدم hook. لطرفيات بيئات التطوير خصوصيات تجدها في دليل VS Code وCursor وJetBrains.
05عبر SSH وداخل tmux
إشعار سطح المكتب عبارة عن escape sequence تفسّرها الطرفية على جهازك أنت، لذا يصلك حتى عندما يعمل Claude Code على خادم بعيد عبر SSH. تمرّره Ghostty وKitty دون أي إعداد إضافي، بينما يحتاج iTerm2 إلى إعدادات التنبيه المذكورة أعلاه.
داخل tmux تضيع هذه السلسلة ما لم تسمح بتمريرها (passthrough). أضف ما يلي إلى ~/.tmux.conf ثم نفّذ tmux source-file ~/.tmux.conf:
set -g allow-passthrough on
أما الجلسات المنفصلة (detached) فمشكلة مختلفة: إن لم تكن هناك طرفية متصلة فلن يعرض أحد التنبيه. راجع دليل tmux والإشعارات عبر SSH.
06الجمع بين التنبيه المدمج والـ hooks
تعمل hooks من نوع Notification إلى جانب التنبيه المدمج ولا تحل محله. توضح وثائق Anthropic صراحةً أن الـ hooks تُنفَّذ حتى مع "notifications_disabled": فهذا الإعداد يغيّر طريقة تنبيه Claude Code لك فقط، لا تشغيل الـ hook. وهذا يتيح لك تقسيمًا واضحًا:
- أبقِ على
"auto"أو"terminal_bell"للتنبيه وأنت أمام الجهاز. - أضف hook لأي شيء آخر، مثل صوت نظام، أو إشعار سطح مكتب في طرفية لا تتلقى أي إشعار، أو push إلى هاتفك باستخدام ntfy.
- إن كان لديك hook يعرض إشعار سطح مكتب بالفعل، فاضبط
"notifications_disabled"حتى لا يظهر لك إشعاران.
على سبيل المثال، يشغّل هذا صوتًا على macOS كلما احتاج Claude إلى انتباهك، في أي طرفية:
{
"hooks": {
"Notification": [
{
"hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }]
}
]
}
}
تجد المكافئات على Linux وWindows في دليل Linux ودليل Windows.
07حدود الخيارات المدمجة
- يبقى على الجهاز. يصدر الجرس أو الإشعار من الطرفية على شاشتك، فإن ذهبت إلى المطبخ فاتك.
- يعتمد على الطرفية. كثير من الطرفيات الشائعة لا تتلقى شيئًا حتى تغيّر أحد الإعدادات.
- لا يمكنك الرد عليه. يخبرك أن Claude ينتظر، لكن عليك العودة إلى لوحة المفاتيح.
ميزة Remote Control من Anthropic مع تطبيق Claude للهاتف هي الطريقة الرسمية لتلقي إشعارات push على الهاتف. يتناولها دليل المقارنة إلى جانب الخيارات الأخرى.
08أين يأتي دور Claude Code Notifier
إن كنت تعمل من مكتبك، فقد يكفيك التنبيه المدمج مع "terminal_bell". أما Claude Code Notifier فهو لحين تكون بعيدًا عن المكتب. تعمل أداة سطر الأوامر الخاصة به، ccn، كـ hook في Claude Code، لذا تعمل في أي طرفية على Mac وWindows وLinux، بإعدادات الجرس أو بدونها. وحدها تعرض إشعار سطح مكتب عندما ينتهي Claude أو يحتاج إلى إذن أو يطرح سؤالًا. ومع ربط هاتف يمكنك السماح بالأذونات أو رفضها، والإجابة عن أسئلة Claude، وإرسال التعليمة التالية من الهاتف، وإن كنت قد كتبت خلال آخر 30 ثانية فلن ينتظرك شيء على الهاتف أصلًا. راجع صفحة ccn.
09الأسئلة الشائعة
كيف أوقف إشعارات Claude Code؟
اضبط "preferredNotifChannel": "notifications_disabled"، أو اختره من Local notifications في /config. ستظل أي hooks من نوع Notification أعددتها تعمل.
لماذا لا يعرض iTerm2 إشعارات Claude Code؟
يحتاج iTerm2 إلى تحديد Notification Center Alerts وتفعيل Send escape sequence-generated alerts ضمن Profiles > Terminal > Filter Alerts، إضافة إلى منح إذن الإشعارات في إعدادات macOS. وداخل tmux اضبط أيضًا allow-passthrough on.
لماذا لا يوجد جرس في Apple Terminal؟
يعطّل إعداد الطرفية في Claude Code الجرس المسموع في Apple Terminal. اضبط "terminal_bell" وأعد تفعيل Audible bell من تبويب Advanced في الملف الشخصي.
هل يعمل جرس الطرفية في VS Code؟
ليس افتراضيًا. اضبط "terminal_bell" وتحقق من إعدادات جرس الطرفية في VS Code، أو استخدم hook. التفاصيل في دليل بيئات التطوير.