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

إشعارات push لـ Claude Code باستخدام ntfy (افعلها بنفسك)

آخر تحديث 31 أكتوبر 2026 · قراءة في 6 دقيقة
في هذه الصفحة 01الخطوة 1: اختر topic واشترك فيه 02الخطوة 2: سكربت hook (لـ Mac وLinux) 03الخطوة 3: اربطه في settings.json 04Windows (PowerShell) 05الحفاظ على الخصوصية 06أين يأتي دور Claude Code Notifier 07الأسئلة الشائعة

لتلقّي إشعارات push من Claude Code عبر ntfy، ثبّت تطبيق ntfy على هاتفك، واشترك في topic باسم يصعب تخمينه، ثم أضف hook إلى Claude Code ينفّذ curl -d "message" https://ntfy.sh/your-topic. يُعلمك hook ‏Notification عندما يحتاج Claude إلى إذن أو ينتظرك، ويُعلمك hook ‏Stop لحظة انتهاء الدور. الطريقة مجانية، وتستغرق نحو عشر دقائق، وتعمل على Mac وWindows وLinux.

01الخطوة 1: اختر topic واشترك فيه

لا يتطلب ntfy أي تسجيل. يُنشأ الـ topic عند أول نشر أو اشتراك فيه، ويستطيع أي شخص يعرف اسمه قراءته. وتنص وثائق ntfy نفسها على أن الـ topic بمثابة كلمة مرور، لذا اجعله طويلًا وعشوائيًا، مثل claude-7f3k9q2xw4mz. يمكن أن تحتوي أسماء الـ topics على أحرف وأرقام وشرطات سفلية وشرطات، بحد أقصى 64 حرفًا.

ثبّت تطبيق ntfy (من App Store أو Google Play أو F-Droid)، واضغط +، ثم اشترك في الـ topic الخاص بك على ntfy.sh.

تحقّق من عمله من الـ terminal:

curl -H "Title: Test" -d "Hello from my computer" https://ntfy.sh/claude-7f3k9q2xw4mz

يُفترض أن يهتز الهاتف خلال ثانية أو ثانيتين. على Windows، يأتي curl.exe مضمّنًا في Windows 10 و11 ويقبل السطر نفسه.

02الخطوة 2: سكربت hook (لـ Mac وLinux)

يمرّر Claude Code إلى كل hook كائن JSON عبر الإدخال القياسي. يشترك الحدثان في حقول مثل cwd وhook_event_name. ويضيف Notification الحقلين message وnotification_type، بينما يضيف Stop الحقل last_assistant_message، وهو نص آخر رد من Claude. يحوّل هذا السكربت أيًّا منهما إلى إشعار push مقروء. يحتاج السكربت إلى jq (brew install jq، أو apt install jq على Debian وUbuntu).

احفظه باسم ~/.claude/ntfy-notify.sh ثم نفّذ chmod +x ~/.claude/ntfy-notify.sh:

#!/bin/sh
TOPIC_URL="https://ntfy.sh/claude-7f3k9q2xw4mz"

input=$(cat)
event=$(printf '%s' "$input" | jq -r '.hook_event_name')
project=$(basename "$(printf '%s' "$input" | jq -r '.cwd')")

if [ "$event" = "Stop" ]; then
  title="Claude finished: $project"
  body=$(printf '%s' "$input" | jq -r '(.last_assistant_message // "Done") | .[0:300]')
  priority=3
else
  title="Claude needs you: $project"
  body=$(printf '%s' "$input" | jq -r '.message // "Needs your attention"')
  priority=4
fi

curl -s -H "Title: $title" -H "Priority: $priority" -H "Tags: robot" \
  -d "$body" "$TOPIC_URL" > /dev/null
exit 0

تتراوح الأولوية من 1 (الأدنى) إلى 5 (عاجل). يضيف Tags رمزًا تعبيريًا إلى الإشعار؛ فمثلًا robot يعرض وجه روبوت.

03الخطوة 3: اربطه في settings.json

أضف الـ hooks إلى ~/.claude/settings.json. إذا كان الملف يحتوي مسبقًا على كائن hooks، فأضف هذه الأحداث داخله بدلًا من استبداله.

{
  "hooks": {
    "Notification": [
      {
        "matcher": "permission_prompt",
        "hooks": [
          { "type": "command", "command": "~/.claude/ntfy-notify.sh" }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          { "type": "command", "command": "~/.claude/ntfy-notify.sh", "async": true }
        ]
      }
    ]
  }
}

يتيح "async": true لـ hook ‏Stop الإرسال في الخلفية، فلا تؤخّر الشبكة البطيئة Claude أبدًا. ابدأ جلسة Claude Code جديدة، لأن الـ hooks تُحمَّل عند بدء الجلسة.

Stop أم idle_prompt؟

يُطلَق Stop لحظة انتهاء Claude، حتى لو كنت جالسًا أمام لوحة المفاتيح. إن وجدت ذلك مزعجًا، فاحذف كتلة Stop واستخدم الـ matcher ‏permission_prompt|idle_prompt بدلًا منها. تذكر وثائق Anthropic أن idle_prompt يُطلَق بعد نحو 60 ثانية من انتهاء Claude، وفقط إن لم تكتب شيئًا منذ ذلك الحين، وأن permission_prompt يُطلَق بعد انتظار طلب الإذن نحو ست ثوانٍ دون أي ضغطة مفتاح. وهكذا تحصل مجانًا على مرشّح تقريبي لـ"فقط عندما أكون بعيدًا". يغطي دليل Notification hook ودليل Stop hook كل الحقول والتوقيتات.

04Windows (PowerShell)

على Windows، احفظ هذا باسم %USERPROFILE%\.claude\ntfy-notify.ps1. لا يحتاج إلى تثبيت أي شيء إضافي:

$in = [Console]::In.ReadToEnd() | ConvertFrom-Json
$project = Split-Path $in.cwd -Leaf

if ($in.hook_event_name -eq 'Stop') {
  $title = "Claude finished: $project"
  $body = [string]$in.last_assistant_message
  if ($body.Length -gt 300) { $body = $body.Substring(0, 300) }
  $priority = '3'
} else {
  $title = "Claude needs you: $project"
  $body = [string]$in.message
  $priority = '4'
}

Invoke-RestMethod -Method Post -Uri 'https://ntfy.sh/claude-7f3k9q2xw4mz' `
  -Headers @{ Title = $title; Priority = $priority } `
  -Body ([Text.Encoding]::UTF8.GetBytes($body)) | Out-Null

ثم استخدم مُدخل الـ hook هذا بدلًا من أسطر command أعلاه:

{
  "type": "command",
  "shell": "powershell",
  "command": "powershell -NoProfile -ExecutionPolicy Bypass -File \"$HOME\\.claude\\ntfy-notify.ps1\""
}

إذا كنت تشغّل Claude Code داخل WSL، فاستخدم سكربت Mac وLinux بدلًا من ذلك؛ فـ WSL يُعدّ Linux من منظور الـ hook.

05الحفاظ على الخصوصية

يمرّ كل ما في إشعار الـ push عبر خادم ntfy، وعلى ntfy.sh يستطيع أي شخص يعرف اسم الـ topic قراءته. تتضمن رسالة Stop أعلاه بداية رد Claude، وقد تحتوي على كود أو أسماء ملفات. إليك ثلاث طرق لتشديد الحماية:

  1. أرسل أقل. استبدل نص Stop بسلسلة ثابتة مثل "Done" واترك اسم المشروع وحده في العنوان.
  2. استخدم access token. يقبل ntfy الترويسة -H "Authorization: Bearer tk_..." في أي عملية نشر. على خادمك الخاص، اضبط auth-default-access: "deny-all"، وأنشئ مستخدمًا بـ ntfy user add، وأنشئ token بـ ntfy token add.
  3. استضف خادمك الخاص. يمكن استضافة ntfy ذاتيًا. ولضمان التسليم الفوري إلى تطبيق iPhone، توصي وثائق ntfy بضبط upstream-base-url: "https://ntfy.sh"، الذي لا يمرّر إلى ntfy.sh سوى معرّف الرسالة وhash للـ topic كي يوقظ الهاتف؛ ثم يجلب التطبيق الرسالة من خادمك.

إذا كان Claude Code يعمل على خادم بعيد، فإن الـ hook نفسه يعمل هناك دون تعديل، ما يجعل ntfy خيارًا مناسبًا لـ الإشعارات عبر SSH.

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

للتنبيهات أحادية الاتجاه، يُعدّ الإعداد أعلاه حلًا متكاملًا ولن نحاول إقناعك بالعدول عنه. لكنه يقتصر على إعلامك. فعندما يخبرك الإشعار بأن Claude يحتاج إلى إذن، تظل الجلسة منتظرة حتى تعود إلى لوحة المفاتيح.

يدعم ntfy أزرار إجراءات ترسل طلب HTTP، لذا يمكنك بناء مسار للرد بنفسك: hook من نوع PermissionRequest ينشر الطلب، وينتظر الرد على topic ثانٍ، ثم يعيد قرارًا. وبعض المشاريع مفتوحة المصدر تفعل ذلك تمامًا (راجع المقارنة).

يقدّم Claude Code Notifier هذا المسار جاهزًا. بعد إقران هاتفك، يمكنك السماح لمرة واحدة، أو السماح طوال الجلسة، أو رفض الإذن، واختيار إجابة عندما يطرح Claude سؤالًا، وإرسال التعليمة التالية بعد انتهاء Claude، وكل ذلك من الهاتف. كما يتحقق من وجودك: إذا كتبت شيئًا خلال آخر 30 ثانية، يسألك الـ terminal كالمعتاد ولا ينتظر شيء على الهاتف. وإذا كنت بعيدًا، ينتظر الـ terminal إجابتك حتى حدّ أقصى تحدده، ويتوقف عن الانتظار لحظة لمسك لوحة المفاتيح. يعمل ccn على Mac وWindows وLinux؛ راجع صفحة ccn والأسعار لتطبيقات الهاتف.

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

هل ntfy مجاني لإشعارات Claude Code؟

لا يحتاج النشر والاشتراك على ntfy.sh إلى حساب، والخادم متاح للجميع. كما يوفّر ntfy فئة مدفوعة ويمكن استضافته ذاتيًا. راجع موقع ntfy نفسه لمعرفة الحدود الحالية.

لماذا لا يُطلَق hook ‏ntfy لديّ؟

ابدأ جلسة Claude Code جديدة بعد تعديل settings.json، لأن الـ hooks تُحمَّل عند بدء التشغيل. ثم نفّذ سطر اختبار curl يدويًا، ومرّر JSON تجريبيًا إلى السكربت، مثل echo '{"hook_event_name":"Stop","cwd":"/tmp/x"}' | ~/.claude/ntfy-notify.sh. وتغطي قائمة استكشاف الأخطاء بقية الحالات.

هل يمكنني الرد على Claude Code من إشعار ntfy؟

ليس بمجرد النشر العادي. يمكن لأزرار إجراءات HTTP في ntfy إرسال طلب، لكنك تحتاج إلى hook ينتظر الإجابة ويحوّلها إلى قرار يفهمه Claude Code.

هل أتلقى إشعار push لكل أنواع الإشعارات؟

فقط للـ matchers التي تحددها. احذف matcher من مُدخل Notification لتلقّي جميع الأنواع، بما فيها مربعات حوار المصادقة وMCP.

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

أدلة ذات صلة

  • مقارنة بين جميع طرق تلقي إشعارات Claude Codeمقارنة بين التنبيهات المدمجة والـ hooks الخاصة بك وntfy وwebhooks تطبيقات المحادثة وميزة Remote Control من Anthropic وتطبيقات الإشعارات، من حيث ما يمكن لكل منها فعله وما لا يمكنه.
  • أرسل إشعارات Claude Code إلى Telegram أو Slack أو Discordسكربت hook واحد ينشر تنبيهات Claude Code إلى بوت Telegram أو incoming webhook في Slack أو webhook في Discord، على Mac وWindows وLinux.
  • 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-notifier

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

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