Get a push notification when your script finishes
You started a long build, a migration, a training run. Now you're checking the terminal every four minutes like it's a kettle. Here's the fix, start to finish, in about a minute.
Setup (once)
curl -fsSL https://pinged.fyi/install | sh
fyi new --save
fyi new --save creates your topic — four secret words — and prints a QR
code. Install the pinged.fyi app on your phone, tap + → Join → Scan, scan
the terminal. Done: you now own a private channel from any machine to your
pocket. No account, free.
The patterns
Notify on finish:
./long-build.sh && fyi "build done ✅"
Notify on success or failure (the one you actually want):
./long-build.sh && fyi "build done ✅" || fyi --priority high "build FAILED ❌"
High priority renders red in the app and pushes through louder.
Time it:
t0=$SECONDS; make -j8; fyi "make finished in $((SECONDS-t0))s"
Cron jobs — get pinged only when something's wrong:
0 3 * * * /opt/backup.sh || /usr/local/bin/fyi --priority high "nightly backup FAILED"
On a server without the CLI? It's just HTTP:
curl -d "deploy finished" https://pinged.fyi/t/your-four-secret-words
From Python, at the end of a training run:
import urllib.request
urllib.request.urlopen(urllib.request.Request(
"https://pinged.fyi/t/your-four-secret-words",
data=f"training done — loss {loss:.4f}".encode()))
Why not just email / Slack / a dashboard?
Email is where notifications go to die, Slack needs a workspace and a webhook and an app config, and dashboards need you to look at them. A push notification is the only channel that finds you. The whole point of pinged.fyi is that the cost of adding one is a single line.