Get a push notification when your script finishes

August 12, 2026

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.

Try it in 30 secondscurl -fsSL pinged.fyi/install | sh

Free push notifications for scripts, servers and AI agents. No account.