पेज · Claude Notifications
/notify-config — manage notification channels
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`.
This skill edits the user's notification config at ~/.claude-notifications/config.json (or the project-local override at <project>/.claude-notifications.json).
Steps
-
Read current config first. Always:
bashNever overwrite without seeing what's there.
-
Merge new channel block into existing JSON. Use
jqso you don't lose other channels:bash -
Set
enabled: falseto disable instead of removing the block — preserves credentials for re-enabling. -
Test immediately after a change:
bash
Channel cheat sheet
| Channel | Required fields |
|---|---|
slack | webhook_url (Incoming Webhook from api.slack.com) |
discord | webhook_url (Server Settings → Integrations → Webhooks) |
email | smtp_url, smtp_user, smtp_password, from, to[] — Gmail needs an app password |
whatsapp | provider: callmebot → phone + apikey (text "I allow callmebot" to +34 644 51 95 23 to get one) |
provider: twilio → account_sid, auth_token, from, to[] | |
desktop | nothing required — works out of the box. voice.enabled for spoken alerts. |
webpush | provider: ntfy → just a unique topic. Install ntfy app on phone, subscribe to topic. |
provider: pushover → user_key + app_token | |
webhook | urls[] — your own endpoint |
Event routing
A channel sees an event when either:
- the channel's
eventsarray contains that event name (or"*"), or - the top-level
events.<name>array names the channel.
Default to ["notification", "stop"] — never ["*"] unless the user explicitly asks. pre-tool and post-tool fire many times per turn.
Events: notification, stop, subagent-stop, session-start, session-end, user-prompt, pre-tool, post-tool, manual.
Credentials hygiene
- Project config (
<project>/.claude-notifications.json) is fine for routing rules but never put secrets there — it can be committed. - Put creds in
~/.claude-notifications/config.json(chmod 600) orCN_*env vars. - If the user pastes a webhook URL or token in chat, write it to user config and tell them where it landed so they can rotate later.
When done
Confirm with one line: which channels are now enabled and which events fire them. No long recap.