Quick start (ntfy.sh — free)
ntfy.sh is the recommended option. No account required, fully open source.Install the ntfy app
Download from ntfy.sh:
- iOS: App Store
- Android: Google Play or F-Droid
Subscribe to a unique topic
Open the app and subscribe to a topic like
my-peon-notifications or alice-coding-alerts.Topics are public by default. Use a random/unique name to avoid collisions (e.g.,
peon-a8f3d9c2).Pushover setup
Pushover is a paid service ($5 one-time) with richer notification features.Create a Pushover account
Sign up at pushover.net and install the app.
Register an application
- Go to pushover.net/apps/build
- Create an app named “PeonPing”
- Copy the API Token
Get your User Key
Find it on your Pushover dashboard.
Telegram setup
Create a bot
- Message @BotFather on Telegram
- Send
/newbotand follow the prompts - Copy the bot token (looks like
110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw)
Get your chat ID
- Message your bot (send any text)
- Visit:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates - Find
"chat":{"id":123456789}in the response
Mobile commands
| Command | Description |
|---|---|
peon mobile ntfy <topic> | Enable ntfy notifications |
peon mobile pushover <user> <token> | Enable Pushover |
peon mobile telegram <token> <chat_id> | Enable Telegram |
peon mobile on | Enable mobile notifications |
peon mobile off | Disable mobile notifications |
peon mobile status | Show current config |
peon mobile test | Send a test notification |
Event mapping
Mobile notifications fire on these events:| Event | Notification |
|---|---|
| Task completes | ”Project: task complete” |
| Permission needed | ”Project: approval required” |
| Error occurs | ”Project: error” |
| Rate limit hit | ”Project: rate limit” |
Session start and spam events do NOT trigger mobile notifications.
Independent controls
Mobile notifications work independently from desktop notifications and sounds:| Config Key | Controls | Affects Sounds | Affects Desktop | Affects Mobile |
|---|---|---|---|---|
enabled | Master audio switch | ✅ Yes | ❌ No | ❌ No |
desktop_notifications | Desktop popups | ❌ No | ✅ Yes | ❌ No |
mobile_notify.enabled | Phone push | ❌ No | ❌ No | ✅ Yes |
- Keep sounds but disable desktop popups:
peon notifications off - Keep desktop popups but disable sounds:
peon pause - Enable mobile push without desktop popups: set
desktop_notifications: falseandmobile_notify.enabled: true
Configuration
Mobile settings live inconfig.json:
Privacy & security
ntfy
- Messages are not encrypted by default
- Anyone who knows your topic can subscribe to it
- Use a random topic name:
peon mobile ntfy peon-$(uuidgen | head -c 8) - For better privacy, self-host ntfy or use access control
Pushover
- Messages are encrypted in transit (HTTPS)
- Pushover stores messages on their servers (see privacy policy)
Telegram
- Bot API uses HTTPS
- Messages are stored on Telegram servers
- Bots can’t initiate conversations — you must message the bot first
Troubleshooting
No notifications received (ntfy)
- Check the topic name:
peon mobile status - Test manually:
curl -d "Test" ntfy.sh/YOUR_TOPIC - Verify app is subscribed to the correct topic
- Check app notification permissions
No notifications received (Pushover)
- Verify keys:
peon mobile status - Test the API manually:
- Check monthly quota (7,500 messages/month on free tier)
No notifications received (Telegram)
- Verify bot token and chat ID:
peon mobile status - Test manually:
- Make sure you’ve sent at least one message to the bot
Advanced: Custom notification server
You can point PeonPing to your own notification endpoint by editing the notification logic inpeon.sh (around line 800+). Look for the send_mobile_notification function.