Send Notification
Overview
Sends a deliberate push notification to Les's phone via his self-hosted ntfy
(https://ntfy.lmorchard.com, topic cc-claude). Use for on-request, intentional
alerts — separate from the automatic per-turn Stop and needs-input Notification
hooks in ~/.claude/hooks/, which fire on their own and can't be tuned per-message.
Reach for this when Les wants to walk away and be pulled back at a specific moment, or wants an alert louder/quieter than the automatic ones.
How
Run the helper; it shares the hook's credentials (~/.claude/hooks/notify.env):
~/.claude/skills/send-notification/send.sh --priority high --title "Build passed" --tags white_check_mark "All 142 tests green on main"
For a "ping me when X happens" request: do/await the work, then send at the moment X actually happens — not when the request is made.
Priority — match the urgency in Les's words
| Les says… | --priority |
ntfy effect (Android) |
|---|---|---|
| "urgent", "emergency", "wake me", "asap" | urgent |
Loud + bypasses some DND |
| "alert me", "flag", "important", "heads-up" | high |
Vibrate + sound |
| "ping", "notify", "let me know" | default |
Normal notification |
| "fyi", "note", "quietly", "no rush" | low |
Silent, no vibrate |
Default to high for "alert"-flavored asks and default for plain "ping me". When in
doubt between two levels, pick the lower one — false-urgent alerts train Les to ignore them.
Tags (optional, render as emoji before the title)
white_check_mark done · warning needs attention · rotating_light urgent/broken ·
hourglass waiting · tada finished-big. Run with no tag if none fits.
Common mistakes
- Sending at request time instead of event time — "ping me when the deploy finishes" means send after the deploy, not now.
- Over-escalating priority — reserve
urgentfor genuinely drop-everything events. - Forgetting this is one-way — Les can't reply to a push; put the answer/context in the message body, don't ask a question expecting a response there.
- Editing the topic/token here — they live in
~/.claude/hooks/notify.env; this script reads them.