By fadymondy
Multi-channel notification system for Claude Code — email, Slack, Discord, WhatsApp, desktop (with voice), web push, and generic webhooks. Routes Claude Code hook events anywhere.
Interactive setup — walks through enabling notification channels and writes ~/.claude-notifications/config.json
Test all enabled notification channels by firing a manual event through each
Send a notification through configured Claude Code notification channels
Build a custom notification channel handler — Telegram, Microsoft Teams, Pushbullet, SMS via a non-Twilio provider, internal company chat, anything. Use when the user wants notifications somewhere the built-in channels don't support, or wants to fork an existing channel for a different API shape.
Configure Claude Code notification channels — enable Slack/Discord/email/WhatsApp/desktop voice/web push, set credentials, route specific events to specific channels. Use when the user wants to "set up notifications", "add a Slack webhook", "turn on voice", "stop notifications for X event", or otherwise manage `~/.claude-notifications/config.json`.
Send a one-shot notification through the configured Claude Code notification channels. Use when the user asks to "notify me when X", "send a message", "ping Slack/Discord/me", or wants Claude to push an arbitrary status update through whichever channels they've enabled. Routes through the same dispatcher Claude Code hooks use, so it respects per-channel and per-event config.
Executes bash commands
Hook triggers when Bash tool is used
Modifies files
Hook triggers on file write and edit operations
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Uses power tools
Uses Bash, Write, or Edit tools
Uses power tools
Uses Bash, Write, or Edit tools
A Claude Code plugin that sends notifications anywhere — Slack, Discord, email, WhatsApp, desktop (with voice via say), web push, and generic webhooks — driven by Claude Code's hook events. Ships with an optional Electron tray app for one-click channel toggling and visual configuration.
When Claude finishes a task, gets stuck waiting for input, or runs a tool you care about, this plugin fans the event out to whichever channels you've enabled. You walk away from the terminal and still get pinged.
| Channel | Purpose | Required setup |
|---|---|---|
desktop | Native banners (macOS / Linux / Windows). Optional spoken alerts via say. | None — works out of the box |
slack | Posts to a Slack channel via Incoming Webhook | Webhook URL |
discord | Posts to a Discord channel via webhook | Webhook URL |
email | Sends email via SMTP or sendmail | SMTP creds |
whatsapp | WhatsApp via Twilio or CallMeBot | Twilio account or CallMeBot apikey |
webpush | Phone/web push via ntfy.sh, Pushover, or your own VAPID server | ntfy topic, Pushover keys, or webhook |
webhook | Generic JSON POST to your own endpoint with HMAC signing | Your URL |
| custom | Drop a .sh in ~/.claude-notifications/channels/ and it works | One bash file |
Voice notifications use say on macOS, spd-say/espeak on Linux. Pick a voice, rate, and template.
# Clone or install via Claude Code's plugin system once published
git clone https://github.com/fadymondy/claude-notifications ~/.claude/plugins/claude-notifications
Then enable it in your Claude Code settings (~/.claude/settings.json):
{
"plugins": ["claude-notifications"]
}
Restart Claude Code. The hooks register automatically from hooks/hooks.json.
Three layers, last wins:
${CLAUDE_PLUGIN_ROOT}/config/default.json (don't edit)~/.claude-notifications/config.json (edit this)<project>/.claude-notifications.json (routing rules only — never put secrets here)Easiest path: run /notify-setup <channel> from inside Claude Code. It walks you through one channel at a time.
Or copy the example and edit:
mkdir -p ~/.claude-notifications
cp examples/config.example.json ~/.claude-notifications/config.json
chmod 600 ~/.claude-notifications/config.json
$EDITOR ~/.claude-notifications/config.json
{
"channels": {
"slack": {
"enabled": true,
"webhook_url": "https://hooks.slack.com/services/T000/B000/XXXXXXXX",
"channel": "#claude",
"events": ["notification", "stop"]
}
}
}
That's it. When Claude finishes (stop) or asks for input (notification), Slack pings.
{
"channels": {
"desktop": {
"enabled": true,
"voice": {
"enabled": true,
"name": "",
"rate": 180,
"style": "title"
},
"sound": "Funk",
"events": ["notification", "stop"]
}
}
}
style picks what gets spoken: title, body, or both. Or set text to a custom template — {title}, {body}, {project}, {event} are substituted.
Natural human voices on macOS. Leave voice.name blank and the plugin uses your System Voice — whatever you've picked in System Settings → Accessibility → Spoken Content → System Voice. Pick a Siri voice there (Voice 1-5, named Ava / Tom / Zoe / etc. depending on macOS version) and notifications will sound like Siri. The plugin doesn't try to second-guess your choice.
To download a Siri voice: System Settings → Accessibility → Spoken Content → System Voice → click the dropdown → Manage Voices… → pick a variation (American/British/Australian/etc.) → tap a voice's cloud icon to download → click Done.
To override the system voice for just Claude notifications, set voice.name to an exact entry from say -v '?'.
Drive 17 web apps (Gmail, Slack, WhatsApp, Discord, Telegram, X, GitHub, Linear, Jira, GCal, Cal.com, Google Meet, Zoom, GCP, Claude.ai, OpenAI, Perplexity) from inside a Claude Code conversation. Uses a local Chrome extension + the claude-twin desktop app — nothing leaves your machine.
GitHub Issues as a project-management system — plans, features, bugs, evidence-gated lifecycle, PR-driven review. Mirrors Orchestra MCP / Studio PMS workflow but stores everything natively on GitHub.
npx claudepluginhub fadymondy/claude-notifications --plugin claude-notificationsMulti-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.
Memory compression system for Claude Code - persist context across sessions
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.