From claude-notifications
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.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-notifications:notifyThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Run the plugin's dispatcher in `manual` mode to fire a notification through every channel enabled for the `manual` event (or every enabled channel if `manual` is unrouted).
Run the plugin's dispatcher in manual mode to fire a notification through every channel enabled for the manual event (or every enabled channel if manual is unrouted).
/notify <title> | <body>
/notify --title "Build done" --body "All 47 tests pass" --level success
/notify --level warn "Disk almost full"
Pipe-separated form: everything before the first | is the title, everything after is the body.
Build a JSON payload and pipe it to the dispatcher. Always run from the plugin root or pass CLAUDE_PLUGIN_ROOT.
CLAUDE_PLUGIN_ROOT="${CLAUDE_PLUGIN_ROOT:?run from inside Claude Code}" \
bash "$CLAUDE_PLUGIN_ROOT/scripts/notify.sh" manual <<EOF
{"title":"$TITLE","body":"$BODY","level":"$LEVEL"}
EOF
level is one of info | warn | error | success and changes the color/emoji on Slack/Discord/web push. Default is info.
To send to a single channel only (bypassing routing), set CN_FORCE_CHANNELS:
CN_FORCE_CHANNELS=slack,desktop bash "$CLAUDE_PLUGIN_ROOT/scripts/notify.sh" manual <<< '{"title":"...","body":"..."}'
(If the user asks for a "channel-only" send and CN_FORCE_CHANNELS isn't honored yet, edit scripts/notify.sh to support it — it's a 4-line change reading the env var into channels.)
Tail the log and confirm dispatch:
tail -5 ~/.claude-notifications/logs/notify.log
Don't lecture the user about which channels fired — they configured them. Just confirm "sent" and stop.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub fadymondy/claude-notifications --plugin claude-notifications