claude-code-notifier
طريقة العمل الأدلة الأسئلة الشائعة
◐العربية
English العربية Deutsch Español Français עברית Italiano 日本語 한국어 Nederlands Polski Português (Brasil) Русский Türkçe Tiếng Việt 简体中文 繁體中文
ابدأ الآن
كل الأدلة

إشعارات Claude Code لا تعمل؟ إليك قائمة تحقق

آخر تحديث 31 أكتوبر 2026 · قراءة في 7 دقيقة
في هذه الصفحة 011. تأكد من أن Claude Code حمّل الـ hook 022. وافق على الثقة بمساحة العمل 033. تأكد من أن الحدث يقع في الوقت الذي تظنه 044. نفّذ أمر الـ hook بنفسك 055. اقرأ سجل التصحيح 066. تحقق من نظام التشغيل 07إذا كنت تستخدم Claude Code Notifier 08الأسئلة الشائعة

عندما تتوقف إشعارات Claude Code عن العمل، يعود السبب غالبًا إلى واحد من أربعة: الـ hook غير محمَّل، أو يعمل لكنه يفشل، أو الحدث الذي تعتمد عليه لا يقع في الوقت الذي تتوقعه، أو نظام التشغيل يُخفي التنبيه. نفّذ /hooks داخل Claude Code لترى ما هو محمَّل، وابدأ جلسة باستخدام claude --debug لترى ما فعله كل hook فعليًا، ثم راجع إعدادات الإشعارات على الحاسوب أو الهاتف. إن كنت تستخدم Claude Code Notifier، فإن الأمرين ccn doctor وccn test يغطيان معظم ذلك.

تبدأ قائمة التحقق أدناه بالسبب الأكثر شيوعًا وتنتهي بالأقل شيوعًا، وهي تصلح لأنظمة Mac وWindows وLinux.

011. تأكد من أن Claude Code حمّل الـ hook

اكتب /hooks في prompt الخاص بـ Claude Code. ستظهر لك قائمة للقراءة فقط بكل الـ hooks التي حمّلها Claude Code، مع مصدر كل منها: إعدادات المستخدم، أو إعدادات المشروع، أو الإعدادات المحلية، أو إضافة (plugin)، أو الجلسة الحالية. اختر أي hook لترى الأمر الدقيق والملف المعرَّف فيه.

إن لم يظهر الـ hook في القائمة:

  • ملف JSON غير صالح. ملفات الإعدادات تتبع صيغة JSON الصارمة؛ فاصلة زائدة في النهاية أو تعليق // كفيلان بإفساد الملف، وسيعرض Claude Code خطأ Settings Error عند التشغيل التالي. نفّذ claude doctor لترى الإدخالات التي رفضها Claude Code.
  • الملف في مكان خاطئ. توضع الـ hooks الشخصية في ~/.claude/settings.json (وعلى Windows في %USERPROFILE%\.claude\settings.json)، أما hooks المشروع ففي .claude/settings.json داخل المشروع. نفّذ /status واقرأ سطر Setting sources لترى الملفات التي حُمِّلت.
  • اسم الحدث خاطئ. أسماء الأحداث حساسة لحالة الأحرف: Notification وStop وPermissionRequest. أي اسم حدث غير معروف يظهر كتحذير Settings Warning ويُتجاهَل.
  • الـ hooks معطَّلة. وجود "disableAllHooks": true في أي ملف إعدادات يعطّل كل الـ hooks. وإن ظهرت في /hooks الرسالة Only hooks from managed settings run here، فهذا يعني أن مؤسستك فعّلت allowManagedHooksOnly ولن تعمل الـ hooks الخاصة بك.
  • لم يُلتقَط التعديل. يعيد Claude Code عادةً تحميل الإعدادات تلقائيًا. إن لم يظهر الـ hook بعد بضع ثوانٍ، فأعد تشغيل الجلسة.

022. وافق على الثقة بمساحة العمل

في الجلسة التفاعلية، يحجب Claude Code الـ hooks من جميع ملفات الإعدادات، بما فيها ملفك ~/.claude/settings.json، إلى أن توافق على نافذة الثقة بمساحة العمل لذلك المجلد. فإن أغلقت تلك النافذة دون موافقة، أو كنت في مجلد لم تفتح فيه Claude Code من قبل، فلن تعمل الـ hooks هناك. شغّل claude في ذلك المجلد ووافق على النافذة.

033. تأكد من أن الحدث يقع في الوقت الذي تظنه

كثير من الإشعارات "المعطّلة" مسألة توقيت في الحقيقة. وفقًا لمرجع الـ hooks من Anthropic:

Hookمتى يُطلَق
Notification مع permission_promptانتظر طلب الإذن نحو ست ثوانٍ دون أن تكتب شيئًا. كل ضغطة مفتاح تعيد ضبط المؤقت.
Notification مع idle_promptبعد نحو 60 ثانية من انتهاء Claude، إن لم تكتب شيئًا ولم يكن هناك وكيل يعمل في الخلفية.
Stopفي كل مرة ينتهي فيها Claude من الرد، لكن ليس عند المقاطعة. أما أخطاء API فتُطلق StopFailure بدلًا منه.
PermissionRequestلحظة أن يوشك Claude Code على طلب إذنك.

لذا إن اختبرت hook من نوع Notification وأنت تكتب في الـ terminal، فقد لا يُطلق أبدًا. انتقل إلى نافذة أخرى وانتظر. وإن أردت تنبيهًا فور انتهاء الدور، فاستخدم Stop؛ ويشرحه دليل Stop hook.

تحقق أيضًا من وضع الأذونات. تبدأ الإصدارات الحديثة من Claude Code الجلسات التفاعلية في الوضع التلقائي، حيث يوافق مصنِّف على معظم الإجراءات دون سؤالك. وغياب طلب الإذن يعني غياب إشعار permission_prompt وعدم تنفيذ hook PermissionRequest. لاختبار تنبيهات الأذونات، اضغط Shift+Tab حتى يعرض شريط الحالة الوضع اليدوي، ثم اطلب من Claude تنفيذ شيء يحتاج إلى موافقة. تجد التفاصيل في شرح أوضاع الأذونات.

الـ matchers حساسة لحالة الأحرف كذلك؛ فالـ matcher bash في PermissionRequest لن يطابق الأداة Bash.

044. نفّذ أمر الـ hook بنفسك

انسخ الأمر من /hooks ونفّذه في terminal مع مدخلات تجريبية:

echo '{"hook_event_name":"Stop","cwd":"/tmp","last_assistant_message":"done"}' | ./my-hook.sh
echo $?

أخطاء شائعة:

  • command not found: استخدم مسارًا مطلقًا للسكربت، أو ${CLAUDE_PROJECT_DIR} للسكربتات الموجودة في المشروع.
  • السكربت لا يفعل شيئًا إطلاقًا: اجعله قابلًا للتنفيذ باستخدام chmod +x ./my-hook.sh.
  • jq: command not found: ثبّت jq، أو حلّل JSON باستخدام Python أو Node.js.

055. اقرأ سجل التصحيح

شغّل Claude Code باستخدام claude --debug. لن يظهر شيء إضافي في الـ terminal؛ إذ يُكتب السجل في ~/.claude/debug/<session-id>.txt. ولتحديد المسار بنفسك، استخدم claude --debug-file /tmp/claude.log ونفّذ tail -f /tmp/claude.log في terminal آخر. وإن كانت الجلسة قيد التشغيل بالفعل، فإن /debug يفعّل التسجيل ويخبرك بمكان السجل.

ابحث عن الأسطر التي تبدأ بـ Hooks:. يذكر كل منها الحدث والأمر وكيف انتهى (finished with status 0 أو timed out أو failed to start) والمدة التي استغرقها. ولمزيد من التفاصيل حول المطابقة، اضبط CLAUDE_CODE_DEBUG_LOG_LEVEL=verbose.

هناك مشكلتان لا تظهران إلا هنا:

  • ملف تعريف الـ shell يطبع شيئًا. إن كان ~/.bashrc أو ~/.zshrc ينفّذ echo ويحمّله الـ shell، فسيظهر ذلك النص قبل مخرجات JSON الخاصة بالـ hook، فيعاملها Claude Code كنص عادي. ابحث في السجل عن Hook output does not start with {. وغلِّف مخرجات ملف التعريف بـ if [[ $- == *i* ]]; then ... fi كي لا تُنفَّذ إلا في الـ shells التفاعلية.
  • لا يوجد terminal للكتابة إليه. على Mac وLinux، تعمل hooks الأوامر دون terminal متحكِّم، لذا يفشل بصمت أي hook يحاول قرع الجرس أو كتابة رموز escape إلى /dev/tty. استخدم بدلًا من ذلك أمر إشعارات سطح المكتب، أو الإعداد preferredNotifChannel المدمج في Claude Code، والمشروح في دليل جرس الـ terminal.

066. تحقق من نظام التشغيل

إذا أظهر سجل التصحيح أن الـ hook انتهى بالحالة 0 ولم يظهر لك شيء، فهذا يعني أن نظام التشغيل أخفى الإشعار. تأكد من أن التطبيق الذي يرسل التنبيه مسموح له بعرض الإشعارات، وأن وضع التركيز Focus (على Mac) أو عدم الإزعاج (Windows) أو مفتاح عدم الإزعاج في سطح مكتب Linux متوقف. وعلى Linux، يجب أن تكون خدمة إشعارات (notification daemon) قيد التشغيل.

تجد الأوامر الخاصة بكل منصة في أدلة macOS وWindows وLinux.

07إذا كنت تستخدم Claude Code Notifier

Claude Code Notifier أداة مستقلة (ليست من إنتاج Anthropic) تثبّت برنامجًا صغيرًا هو ccn على هيئة hooks في Claude Code. كل ما سبق ينطبق عليها أيضًا، لأن ccn مجرد hook كغيره. ابدأ بفحوصاته الخاصة:

  1. ccn doctor يفحص الـ hooks وبيانات الاعتماد والاتصال بالخادم واكتشاف وجودك. أصلح أي مشكلة يبلّغ عنها أولًا.
  2. ccn test يرسل إشعارًا تجريبيًا. إذا وصل، فالمشكلة في الحدث أو في أحد الإعدادات، لا في مسار الإرسال.
  3. ccn devices يعرض الهواتف المقترنة بهذا الكمبيوتر. إذا لم يظهر أي هاتف، فأعد الاقتران باستخدام ccn pair؛ ويشرح دليل الاقتران الخطوات.
  4. ccn config show يعرض الإعدادات الفعلية. تأكد من تفعيل notify_on_done وnotify_on_permission وnotify_on_question، ومن أن quiet_hours لا تشمل الوقت الحالي. وتصل الإعدادات التي تغيّرها على الهاتف إلى الكمبيوتر عبر ccn sync.

بعض السلوكيات تبدو أعطالًا لكنها مقصودة:

  • أنت أمام لوحة المفاتيح. إذا كتبت شيئًا خلال آخر 30 ثانية، فلا يُنتظر رد من الهاتف ويسألك الـ terminal كالمعتاد. ومع تفعيل quiet_when_present (الوضع الافتراضي)، لا يتلقى الهاتف شيئًا ما دمت في الـ terminal الذي يعمل فيه Claude، ويتلقى بطاقة معلومات إذا كنت نشطًا في تطبيق آخر.
  • تنبيهات مكررة أو مفقودة على Mac. لا تشغّل تطبيق شريط القوائم القديم لـ Mac مع ccn على الجهاز نفسه.
  • انقطاع طويل. إذا لم يُستخدم هاتف أو كمبيوتر لمدة 60 يومًا، يحذف الخادم اقترانه، فتحتاج إلى الاقتران من جديد.

على الهاتف نفسه، تأكد من السماح بإشعارات التطبيق، ومن أن وضع التركيز Focus (iPhone) أو عدم الإزعاج (Android) لا يكتمها. على Android، قد يؤخر تحسين البطارية إشعارات بعض التطبيقات؛ فإذا وصلت التنبيهات متأخرة، اسمح للتطبيق بالعمل دون قيود من إعدادات البطارية. وإذا عدّلت settings.json يدويًا، فسيخبرك ccn doctor هل لا تزال الـ hooks الخاصة به موجودة. ويحدّث ccn upgrade الأداة إلى أحدث إصدار.

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

لماذا لا يعمل Notification hook إلا أحيانًا؟

النوعان permission_prompt وidle_prompt مضبوطان على توقيت يبدو فيه أنك غائب. ينتظر permission_prompt نحو ست ثوانٍ دون كتابة، وينتظر idle_prompt نحو 60 ثانية بعد أن ينتهي Claude. وإذا كنت تكتب، يتأجلان. استخدم PermissionRequest أو Stop للحصول على إشارة فورية.

أين أجد سجل التصحيح في Claude Code؟

شغّل claude --debug وسيُكتب السجل في ~/.claude/debug/<session-id>.txt. استخدم claude --debug-file <path> لاختيار المكان، أو /debug داخل جلسة قيد التشغيل.

الأمر ccn test يعمل لكن الإشعارات الفعلية لا تصل. لماذا؟

مسار الإرسال سليم، فابحث في الإعدادات والتوقيت. راجع notify_on_* وquiet_hours في ccn config show، وتذكّر أنه لا يُرسل شيء ما دمت في الـ terminal مع تفعيل quiet_when_present، وتحقق من وضع الأذونات في Claude Code.

Claude Code Notifier احصل على إشعار push على هاتفك عندما ينتهي Claude Code أو يحتاج إليك، ثم وافق أو ارفض أو أجب من هناك. أداة سطر الأوامر ccn مجانية على Mac وWindows وLinux.
نزّل لنظام iOS نزّل لنظام Android ثبّت ccn

أدلة ذات صلة

  • شرح hooks في Claude Code: كل حدث والغرض منهما هي hooks في Claude Code، وأين توضع في settings.json، وكيف تعمل الـ matchers والمدخلات ورموز الخروج، وما الغرض من كل حدث.
  • Notification hook في Claude Code: متى يُطلَق وكيف تستخدمهمتى يُطلَق Notification hook في Claude Code، وما معنى permission_prompt وidle_prompt، والمدخلات التي يتلقاها، ولماذا ينتظر قبل الإطلاق.
  • اربط هاتفك بـ Claude Code على Mac أو Windows أو Linuxاقرن هاتفك بـ Claude Code في دقيقة: ثبّت ccn، ثم امسح رمز QR أو اكتب رمزًا من 6 أرقام. خطوات لأنظمة Mac وWindows وLinux.
  • ساعات الهدوء ووضع عدم الإزعاج لإشعارات Claude Codeأوقف إشعارات Claude Code ليلًا أو أثناء الاجتماعات: ساعات هدوء في الـ hook، ووضع التركيز Focus وعدم الإزعاج على الهاتف، وخيار quiet_hours في ccn.
claude-code-notifier

Claude Code Notifier تطبيق مستقل تابع لجهة خارجية. وهو غير تابع لشركة Anthropic, PBC ولا معتمد أو مموّل منها. "Claude" و"Claude Code" علامتان تجاريتان لشركة Anthropic, PBC.

التطبيقات تطبيق iOS تطبيق Android ccn لأنظمة macOS وWindows وLinux كل الأدلة
قانوني سياسة الخصوصية شروط الخدمة لغات أخرى © 2026 touchtap. جميع الحقوق محفوظة. شركة TouchTap Ltd مسجلة في إنجلترا وويلز، رقم الشركة 13942589.