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

إشعارات Claude Code على macOS

آخر تحديث 31 أكتوبر 2026 · قراءة في 6 دقيقة
في هذه الصفحة 01ما يفعله Claude Code تلقائيًا 02hook للإشعارات باستخدام osascript 03اعرف لحظة انتهاء Claude 04اعرض الرسالة الفعلية 05terminal-notifier: انقر للعودة إلى الـ terminal 06Focus وعدم الإزعاج 07أين يأتي دور Claude Code Notifier 08الأسئلة الشائعة

على macOS، يرسل Claude Code إشعارًا على سطح المكتب تلقائيًا في Ghostty وKitty وiTerm2 (يتطلب iTerm2 تفعيل إعدادات التنبيه)، لكن Apple Terminal ومعظم الـ terminals الأخرى لا تحصل على شيء. للحصول على إشعار في أي terminal، أضف hook من نوع Notification يشغّل osascript -e 'display notification ...' إلى ~/.claude/settings.json، وhook من نوع Stop إن أردت أيضًا أن تعرف لحظة انتهاء Claude. اسمح بالإشعارات لتطبيق Script Editor في إعدادات النظام، وإلا سيفشل أمر osascript دون أي رسالة.

01ما يفعله Claude Code تلقائيًا

يطلق Claude Code حدث إشعار عندما ينهي مهمة أو ينتظر إذنًا ويبدو أنك بعيد عن الـ terminal. ما تراه يعتمد على الـ terminal، وفقًا لـدليل الـ terminal من Anthropic:

الـ Terminalالسلوك الافتراضي
Ghostty، Kittyإشعار في macOS
iTerm2إشعار في macOS بعد تفعيل إعدادات التنبيه
Apple Terminalلا صوت. في أحسن الأحوال جرس صامت يظهر كوميض للنافذة أو قفز لأيقونة Dock إن سمح الملف الشخصي بذلك
غيرها (terminal الخاص بـ VS Code وWarp وغيرهما)لا شيء

في iTerm2، افتح Settings > Profiles > Terminal، وفعّل Notification Center Alerts، ثم انقر Filter Alerts وشغّل Send escape sequence-generated alerts. تحقق أيضًا من أن iTerm2 مسموح له بإرسال الإشعارات في System Settings > Notifications.

في Apple Terminal يمكنك على الأقل الحصول على صوت. اضبط "preferredNotifChannel": "terminal_bell" في ~/.claude/settings.json وفعّل Audible bell ضمن Settings > Profiles > Advanced. يشرح دليل جرس الـ terminal هذا الخيار بالتفصيل.

للتنبيه المدمج حدود: لا يعمل إلا عندما يظن Claude Code أنك بعيد، ولا يخبرك إلا بأن شيئًا ما حدث، ولا يصل أبدًا إلى خارج الحاسوب.

02hook للإشعارات باستخدام osascript

يعمل الـ hook في كل terminal، بما فيها terminals بيئات التطوير. هذا مثال macOS من دليل الـ hooks لدى Anthropic. أضفه إلى ~/.claude/settings.json مع الإبقاء على أي مفاتيح موجودة لديك:

{
  "hooks": {
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

اكتب /hooks في Claude Code لتتأكد من ظهوره ضمن Notification.

إذن Script Editor

ينشر osascript الإشعارات باسم Script Editor. إن لم يكن لدى Script Editor إذن بالإشعارات، يفشل الأمر بصمت ولا يطلب macOS الإذن. شغّل هذا مرة واحدة في Terminal:

osascript -e 'display notification "test"'

لن يظهر شيء في المرة الأولى. افتح System Settings > Notifications، وابحث عن Script Editor، وفعّل Allow Notifications. شغّل الأمر مجددًا وسيظهر الإشعار التجريبي.

متى يُطلَق

الـ matcher الفارغ يعمل مع كل أنواع الإشعارات. أهم نوعين هما permission_prompt (انتظر Claude نحو ست ثوانٍ موافقتك ولم تكتب شيئًا) وidle_prompt (انتهى Claude منذ نحو 60 ثانية ولم تكتب شيئًا بعدها). يسرد دليل Notification hook كل الأنواع وتوقيتها.

03اعرف لحظة انتهاء Claude

ينتظر idle_prompt دقيقة. لتُبلَّغ فورًا، أضف hook من نوع Stop، يعمل عندما ينهي Claude دوره. لا يقبل Stop أي matcher:

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude has finished\" with title \"Claude Code\" sound name \"Glass\"'"
          }
        ]
      }
    ]
  }
}

يقبل sound name أي صوت في /System/Library/Sounds، مثل Glass أو Ping أو Hero. إن أردت صوتًا فقط، فاستخدم afplay /System/Library/Sounds/Glass.aiff كأمر. المزيد عن هذا الحدث في دليل Stop hook.

04اعرض الرسالة الفعلية

تستقبل الـ hooks بيانات JSON عبر الإدخال القياسي. يحتوي إدخال Notification على حقل message، مثل "Claude needs your permission". يمكن لسكربت صغير وضع هذا النص في الإشعار. احفظ هذا باسم ~/.claude/hooks/notify-mac.sh:

#!/bin/bash
msg=$(jq -r '.message // "Claude Code needs your attention"')
osascript -e 'on run argv' \
  -e 'display notification (item 1 of argv) with title "Claude Code"' \
  -e 'end run' "$msg"

تمرير النص كوسيط بدلًا من وضعه داخل نص AppleScript يعني أن علامات الاقتباس في الرسالة لا يمكنها كسر الأمر. اجعله قابلًا للتنفيذ بـ chmod +x ~/.claude/hooks/notify-mac.sh واضبط أمر الـ hook على ~/.claude/hooks/notify-mac.sh. يحتاج السكربت إلى jq (استخدم brew install jq إن فشل jq --version).

05terminal-notifier: انقر للعودة إلى الـ terminal

النقر على إشعار osascript يفتح Script Editor، وهو ليس المكان الذي تريده. يتيح لك terminal-notifier اختيار التطبيق الذي يظهر في المقدمة:

brew install terminal-notifier
terminal-notifier -title "Claude Code" -message "Claude has finished" -sound default -activate com.googlecode.iterm2

استخدم com.apple.Terminal لـ Apple Terminal، أو bundle ID الخاص بمحررك. يوضع الأمر نفسه في حقل command للـ hook. اسمح بالإشعارات لـ terminal-notifier في إعدادات النظام في المرة الأولى.

06Focus وعدم الإزعاج

كل هذه إشعارات macOS عادية، لذا قد يخفيها وضع Focus. إن اختفت في أوقات معينة، فتحقق من System Settings > Focus واسمح للتطبيق الذي ينشرها (Script Editor أو terminal-notifier أو الـ terminal). ولإشعارات تحترم ساعاتك الخاصة بدلًا من ذلك، راجع ساعات الهدوء وعدم الإزعاج.

07أين يأتي دور Claude Code Notifier

الـ hooks أعلاه حل جيد إن كنت جالسًا أمام جهاز Mac وتريد تنبيهًا بسيطًا فقط. لكنها لا تكفي عندما تبتعد، لأن إشعار Mac لا يصل إليك في المطبخ ولا يمكنه الرد على Claude.

Claude Code Notifier أداة مستقلة (من صنع TouchTap، وليس Anthropic) مبنية على الـ hooks نفسها. تعمل أداة سطر الأوامر المجانية ccn على Mac وWindows وLinux. ثبّتها على جهاز Mac بالأمر:

curl -fsSL https://claudecodenotifier.com/install.sh | sh

أو باستخدام Homebrew: brew trust --formula touch-tap/tap/ccn && brew install touch-tap/tap/ccn. تضيف الأداة مدخلات الـ hook الخاصة بها إلى ~/.claude/settings.json، دون المساس ببقية الملف، مع الاحتفاظ بنسخة احتياطية. بعدها تعرض إشعار macOS عندما ينتهي Claude أو يحتاج إذنًا أو يطرح سؤالًا، دون الحاجة إلى شبكة أو هاتف.

إن ربطت هاتف iPhone أو Android، تصلك الأحداث نفسها كإشعارات push، ويمكنك السماح بإذن أو رفضه، أو اختيار إجابة لسؤال Claude، أو إرسال التعليمة التالية من الهاتف. إن كتبت شيئًا خلال آخر 30 ثانية، يسألك الـ terminal كالمعتاد ولا ينتظر شيء على الهاتف. راجع ربط الهاتف وصفحة ccn. تتطلب تطبيقات الهاتف اشتراكًا أو شراءً مدى الحياة؛ راجع الأسعار.

إن أضفت ccn، فاحذف hooks الـ osascript الخاصة بك وإلا سترى إشعارين لكل حدث. يوجد أيضًا تطبيق أقدم لشريط القوائم في Mac؛ لا تشغّله مع ccn على جهاز Mac نفسه.

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

لماذا لا يُظهر hook الخاص بـ osascript أي شيء؟

في أغلب الأحيان لا يملك Script Editor إذنًا بإرسال الإشعارات، فيتجاهل macOS الإشعار دون أي رسالة خطأ. شغّل osascript -e 'display notification "test"' مرة واحدة، ثم اسمح لـ Script Editor من System Settings > Notifications. إذا استمرت المشكلة، فتأكد من أن وضع Focus غير مفعّل وأن /hooks يعرض الـ hook الخاص بك.

هل يرسل Claude Code إشعارات macOS دون أي إعداد؟

نعم، في Ghostty وKitty، وفي iTerm2 بعد تفعيل تنبيهات Notification Center فيه. أما Apple Terminal والـ terminal المدمج في بيئات التطوير فلا تصلها إشعارات سطح المكتب افتراضيًا، لذا استخدم hook أو ccn فيها.

كيف أتلقى إشعارًا فور انتهاء Claude، لا بعد دقيقة؟

استخدم hook من نوع Stop. فإشعار idle_prompt لا يُطلق إلا بعد نحو 60 ثانية من انتهاء Claude، وبشرط ألا تكون قد كتبت شيئًا، بينما يعمل Stop في نهاية كل دور.

هل يمكنني سماع صوت بدلًا من رؤية لافتة إشعار؟

نعم. استخدم afplay /System/Library/Sounds/Glass.aiff أمرًا للـ hook، أو أضف sound name "Glass" إلى أمر osascript لتحصل على الاثنين معًا.

هل يمكنني الموافقة على طلب إذن من إشعار macOS؟

ليس باستخدام osascript أو terminal-notifier، فهما يعرضان نصًا فقط. الرد على طلب إذن من خلال hook يتطلب الحدث PermissionRequest؛ راجع الرد على طلبات الإذن من hook أو وافق من هاتفك باستخدام Claude Code Notifier.

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

أدلة ذات صلة

  • Notification hook في Claude Code: متى يُطلَق وكيف تستخدمهمتى يُطلَق Notification hook في Claude Code، وما معنى permission_prompt وidle_prompt، والمدخلات التي يتلقاها، ولماذا ينتظر قبل الإطلاق.
  • الـ Stop hook في Claude Code: نفّذ أمرًا عندما ينتهي Claudeكيف يعمل الـ Stop hook في Claude Code، وما المدخلات التي يتلقاها، وكيف تنفّذ أمرًا عندما ينتهي Claude، وكيف تجعل Claude يواصل العمل بأمان.
  • الإشعارات المدمجة في Claude Code: جرس الـ terminal والإعداد preferredNotifChannelكيف تعمل التنبيهات المدمجة في Claude Code، وما وظيفة كل قيمة من قيم preferredNotifChannel، وكيفية إعداد iTerm2 وApple Terminal وKitty وGhostty وtmux.
  • إشعارات Claude Code لا تعمل؟ إليك قائمة تحققالـ hooks لا تُنفَّذ أو لا يصلك تنبيه عند انتهاء Claude Code؟ اتبع قائمة التحقق هذه، بدءًا من /hooks وسجل التصحيح وصولًا إلى ccn doctor وccn test.
claude-code-notifier

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

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