Bellnod

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

$ ./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.sh now

Deploy v2.4 to production?

Deploy sent, signed with this iPhone’s key.

  1. 1

    The script asks

    One POST with the question and its answers.

  2. 2

    Bellnod pushes it

    Stored, then pushed to every paired iPhone.

  3. 3

    You answer

    Tap a button on the notification.

  4. 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.

1. Ask
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"]}'
2. Wait for the answer
curl "https://bellnod.jonathan.pt/v1/prompts/$ID?wait=50" \
  -H "Authorization: Bearer $BELLNOD_TOKEN"
Response
{
  "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.

PriorityOn your phone
passiveLands quietly in the Notification Center. No sound.
activeA normal notification. The default.
time_sensitiveBreaks through Focus, for the things that cannot wait.

Ask your scripts to ask you.

Registration is closed for now.

Sign in