# إشعارات Claude Code: تنبيه على Slack أو Discord أو واتساب أو بالصوت

> إشعارات Claude Code عن طريق الـHooks: إضافة مفتوحة المصدر ومجانية تبعتلك على Slack وDiscord والإيميل وواتساب والصوت أو Web Push لما المهمة تخلص أو يحتاجك.

*2026-10-19T12:49:01Z*

# إشعارات Claude Code: تنبيه على Slack أو Discord أو واتساب أو بالصوت

أي حد بيشغّل Claude Code على مهمة طويلة عارف الموقف: تبدأ المهمة، تروح تشتغل في حاجة تانية، ومش عارف هل خلصت من عشرين دقيقة ولا واقفة مستنية ردك.

**Claude Notifications** إضافة مفتوحة المصدر لـClaude Code بتحل ده. بتسمع لأحداث الـHooks في Claude Code وتبعتها للقنوات اللي تختارها: Slack أو Discord أو الإيميل أو واتساب، أو إشعار على سطح المكتب بصوت اختياري، أو Web Push، أو أي Webhook عندك.

![غلاف المقال: إشعارات Claude Code](https://notifications.fadymondy.com/uploads/sites/75fee555-861d-4fd2-a230-87330aba3018/media/claude-code-notifications-launch-ar.png)

## المشكلة

المهام الطويلة في Claude Code ليها حالتين بيعدّوا في هدوء:

- المهمة **خلصت** وإنت ما أخدتش بالك.
- هو **وقف عشان يسألك سؤال**، ومفيش حاجة حصلت لحد ما رجعت للـTerminal.

التانية أغلى. التشغيل مش بايظ، هو بس مستنيك، والوقت ماشي.

## بتشتغل إزاي؟

Claude Code فيه [Hooks](https://docs.claude.com/en/docs/claude-code/hooks)، يعني أوامر بيشغّلها عند أحداث معينة. الإضافة بتسجّل Hook لكل حدث في `hooks/hooks.json`، وكلها بتنادي سكريبت واحد هو `scripts/notify.sh <event>`، والسكريبت ده:

1. يقرا JSON بتاع الـHook من stdin ويحوّله لعنوان ونص؛
2. يحدد القنوات المطلوبة للحدث ده؛
3. يشغّل كل القنوات المفعّلة بالتوازي، وكل قناة ليها حد أقصى 5 ثواني؛
4. يسجّل النتيجة ويخرج بـ0، فقناة بطيئة أو بايظة عمرها ما توقّف Claude.

الأحداث اللي تقدر توجّهها: `notification` و`stop` و`subagent-stop` و`session-start` و`session-end` و`user-prompt` و`pre-tool` و`post-tool` و`manual`. أغلب الناس محتاجة اتنين بس: `stop` (خلص) و`notification` (محتاجك). والـREADME بيحذّر إن `pre-tool` و`post-tool` و`user-prompt` بيشتغلوا مرات كتير في الدور الواحد، فسيبهم مقفولين إلا لو عايز الدوشة دي.

## القنوات

| القناة | بتعمل إيه | الإعداد |
|---|---|---|
| `desktop` | إشعارات أصلية على macOS وLinux وWindows، وتنبيه صوتي اختياري | مفيش |
| `slack` | بتنشر في قناة عن طريق Incoming Webhook | رابط Webhook |
| `discord` | بتنشر عن طريق Webhook | رابط Webhook |
| `email` | SMTP أو `sendmail` | بيانات SMTP |
| `whatsapp` | عن طريق Twilio أو CallMeBot | حساب Twilio أو مفتاح CallMeBot |
| `webpush` | إشعار على الموبايل عن طريق ntfy.sh أو Pushover أو سيرفر VAPID بتاعك | Topic أو مفاتيح Pushover أو Webhook |
| `webhook` | POST بصيغة JSON لعنوانك مع توقيع HMAC | رابطك |

دي سبع قنوات جاهزة. وتقدر تضيف غيرهم: حط ملف `.sh` في `~/.claude-notifications/channels/` والـDispatcher هيستخدمه. الـREADME فيه الشكل الكامل للعقد: يقرا متغيرات زي `CN_TITLE` و`CN_BODY`، ويخلص في 5 ثواني، ويخرج بـ0 لو مفيش إعداد.

## البداية

التثبيت (من الـREADME):

```bash
git clone https://github.com/fadymondy/claude-notifications ~/.claude/plugins/claude-notifications
```

بعدين فعّلها في `~/.claude/settings.json`:

```json
{
  "plugins": ["claude-notifications"]
}
```

أعد تشغيل Claude Code وهتتسجّل الـHooks من `hooks/hooks.json`. المستودع كمان فيه `marketplace.json` لو تفضّل تضيفه كـPlugin Marketplace.

محتاج `bash` إصدار 3.2 أو أحدث، و`jq` و`curl`. إشعارات سطح المكتب بتستخدم `osascript` و`say` على macOS، و`notify-send` مع `spd-say` أو `espeak` على Linux، وPowerShell على Windows.

### Slack في بلوك واحد

أسهل طريق: شغّل `/notify-setup slack` جوه Claude Code. أو عدّل `~/.claude-notifications/config.json` بنفسك:

```json
{
  "channels": {
    "slack": {
      "enabled": true,
      "webhook_url": "https://hooks.slack.com/services/T000/B000/XXXXXXXX",
      "channel": "#claude",
      "events": ["notification", "stop"]
    }
  }
}
```

لما Claude يخلص (`stop`) أو يطلب إدخال (`notification`)، Slack هيبعتلك. ماتحطش روابط الـWebhook الحقيقية في ملفات المشروع: ملف `.claude-notifications.json` الخاص بالمشروع مخصص لقواعد التوجيه بس، وكل بيان اعتماد بيقبل متغير بيئة زي `CN_SLACK_WEBHOOK_URL`.

### أضف تنبيه صوتي

```json
{
  "channels": {
    "desktop": {
      "enabled": true,
      "voice": { "enabled": true, "rate": 180, "style": "title" },
      "sound": "Funk",
      "events": ["notification", "stop"]
    }
  }
}
```

على macOS، لو سيبت `voice.name` فاضي هيستخدم صوت النظام اللي اخترته من إعدادات Accessibility. والـ`style` بيحدد المنطوق: `title` أو `body` أو `both`.

### أوامر Slash ومهارات وAgent

- `/notify <title> | <body>` يبعت إشعار فورًا.
- `/notify-test [channel]` يجرّب كل القنوات المفعّلة أو قناة واحدة.
- `/notify-setup [channel]` يمشّيك على إعداد قناة.
- تلات مهارات (`notify` و`notify-config` و`notify-channel`) وAgent اسمه `notification-manager` بيساعدوك في تعديل الإعدادات أو بناء قناة جديدة أو معرفة ليه مفيش إشعار بيوصل.

### وجّه الأحداث للقنوات

فيه طريقتين، والخريطة العليا هي الأقوى:

```json
{ "events": { "stop": ["slack", "desktop"], "notification": ["desktop"] } }
```

## تطبيق الـTray الاختياري

فيه كمان تطبيق Electron في الـTray لأنظمة macOS وWindows وLinux. بيخليك تشغّل وتقفل القنوات من القايمة، وتعدّل بيانات الاعتماد في فورم، وتبعت اختبار لكل قناة، وتشوف مصفوفة التوجيه، وتتابع السجل لحظة بلحظة. بيقرا ويكتب نفس ملف `config.json` بتاع الـDispatcher، فالاتنين دايمًا متزامنين. ملفات التثبيت الجاهزة في [صفحة Releases](https://github.com/fadymondy/claude-notifications/releases)، أو ابنيه من مجلد `app/`.

## حدود لازم تعرفها

- الإضافة بتشوف بس اللي Claude Code بيكشفه عن طريق الـHooks. تقدر تعرف إن المهمة وقفت أو محتاجة انتباهك، مش اللي بيحصل جواها.
- واتساب بيمر على Twilio أو CallMeBot، فلازم يكون عندك حساب أو مفتاح عند واحد منهم.
- كل قناة بتتقطع عند 5 ثواني، فالـWebhook البطيء جدًا ممكن يتسقط. الأخطاء بتتسجّل في `~/.claude-notifications/logs/notify.log` بدل ما توقفك.
- الأحداث الكتيرة (`pre-tool` و`post-tool` و`user-prompt`) هتغرّق القناة لو فعّلتها.

## لو الإشعارات ساكتة

```bash
tail -f ~/.claude-notifications/logs/notify.log
```

السجل بيوريك أنهي حدث اشتغل، وأنهي قنوات اتطابقت، وأنهي واحدة فشلت. الأسباب المعتادة: مصفوفة `events` في القناة مش فيها الحدث، أو Webhook بتاع Slack أو Discord بيرجّع 404، أو macOS حاجب الإشعارات عن Terminal، أو `voice.enabled` ناقصة. والأمر `claude --debug hooks` بيأكد إن Claude Code شايف الـHooks.

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

**أعرف إزاي لما Claude Code يخلص؟** Claude Code بيطلق Hook اسمه Stop لما يخلص رده. الإضافة بتسمعه وتبعت حدث `stop` للقنوات اللي فعّلتها.

**أعرف إزاي إنه مستني ردي؟** وجّه حدث `notification` لقناة. الـHook ده بيشتغل لما Claude Code يحتاج انتباهك.

**بتشتغل على Windows وmacOS وLinux؟** أيوه. تطبيق الـTray بيتبني للتلاتة، وإشعارات سطح المكتب بتستخدم الآلية الأصلية لكل نظام. والـDispatcher محتاج bash و`jq` و`curl`.

**هي مجانية؟** مفتوحة المصدر برخصة MIT.

**أقدر أضيف قناة مش موجودة؟** أيوه. حط سكريبت bash في `~/.claude-notifications/channels/`، أو شغّل `/notify-channel build me a Telegram channel` وسيب الـAgent يبنيها.

## الخطوة الجاية

- اعرف ليه عملتها: [ليه بنيت Claude Notifications](https://fadymondy.com/ar/blog/why-i-built-claude-notifications).
- شوف الكود على [GitHub](https://github.com/fadymondy/claude-notifications).
- الإطلاق على [Product Hunt](https://www.producthunt.com/products/claude-notifications).
- موقع المنتج: [notifications.fadymondy.com](https://notifications.fadymondy.com).

---

Source: https://notifications.fadymondy.com/ar/blog/claude-code-notifications-slack-discord-whatsapp-voice
