How it works
Follow one question from a script to your phone and back. Press Run, then answer on the phone.
One Prompt, from the script to your phone and back
$ ./deploy.sh v2.4
Asking: Deploy v2.4 to production?
Waiting for an answer…
{"state": "answered", "value": "Deploy"}
Deploying v2.4.
Bellnod
Waiting for a Source.
Deploy v2.4 to production?
Deploy sent, signed with this iPhone’s key.
- 1
The script asks
One POST with the question and its answers.
- 2
Bellnod pushes it
Stored, then pushed to every paired iPhone.
- 3
You answer
Tap a button on the notification.
- 4
The answer goes back
Signed on the phone, handed to the waiting script.
Before the first call
Two things you do once: one on this site, one in the app.
Create a Source
Name it and pick its type. Its token is shown once, so copy it into the script’s environment.
- Script
- A shell script, a cron job, a CI step, an AI agent. It sends Messages and reads your answers.
- Runner
- The Bellnod binary on your machine, installed with one command. It runs an action only after an answer signed by your iPhone.
Pair your iPhone
Open Devices on the site and scan the QR code with the app. The code works once, for ten minutes.
Every paired iPhone gets the pushes and can answer. Revoke one and its answers are refused.
The same thing, in code
One POST to ask. One GET to wait for the answer: with wait=50 it holds up to 50 seconds and returns the moment you answer. Still pending? Ask again.
curl https://bellnod.jonathan.pt/v1/prompts \
-H "Authorization: Bearer $BELLNOD_TOKEN" \
-H "Content-Type: application/json" \
-d '{"body": "Deploy v2.4 to production?",
"answers": ["Deploy", "Not now"]}'curl "https://bellnod.jonathan.pt/v1/prompts/$ID?wait=50" \
-H "Authorization: Bearer $BELLNOD_TOKEN"{
"state": "answered",
"value": "Deploy",
"via": "notification_button",
…
}How loud each one is
The Source chooses, Message by Message. You can still mute a Source or turn on Quiet mode.
| Priority | On your phone |
|---|---|
| passive | Lands quietly in the Notification Center. No sound. |
| active | A normal notification. The default. |
| time_sensitive | Breaks through Focus, for the things that cannot wait. |
Ask your scripts to ask you.
Registration is closed for now.