← Back to brief

reference push notifications

memory · reference_push_notifications.md

Architecture (shipped 2026-04-22)


Scheduled task (live-ea, nightly-consolidation, etc.)
  ↓ detects RED item
bash notify.sh "title" "message" "priority"
  ↓ reads NTFY_TOPIC from ~/Library/Application Support/SkyRun/.env
  ↓ HTTP POST
https://ntfy.sh/skyrun-joseph-{secret-topic}
  ↓ push via Apple push infrastructure
Joseph's iPhone — ntfy app delivers notification
  ↓ tap notification
https://brief.josephbowens.com (PWA loads in Safari)

Files

Why ntfy.sh vs Web Push

ntfy.sh is a free, open-source push-notification service with a native iOS app. Chose it over full Web Push because:

Future upgrade path: swap notify.sh for a Pages Function + Web Push if/when the ntfy app gets annoying. All callers use the same bash notify.sh interface — no skill changes required.

iPhone setup (one-time)

1. App Store → install ntfy (by Philipp Heckel, free, no sign-up) 2. Open ntfy → Subscribe to topic → enter: skyrun-joseph-5e7212721177 3. Optional: set custom icon for the topic (tap the topic → settings) 4. Allow notifications when prompted Done. Future push notifications arrive as standard iOS notifications.

What triggers a push (by skill)

live-ea (every 20 min business hours)

nightly-consolidation (11pm daily)

Sends ONE aggregate morning-brief summary push:

Future triggers (wire as needed)

Priority → iOS behavior mapping

Safety

Testing

bash
bash "$HOME/Library/Application Support/SkyRun/notify.sh" "Test" "Hello from SkyRun" default
tail -1 ~/Library/Logs/skyrun-notify.log

Should see: YYYY-MM-DDTHH:MM:SSZ default [200] Test — Hello from SkyRun

Wiring status