AI News HubLIVE
In-site rewrite3 min read

Show HN: A private pager for your AI agent loops

ask-a-human is a private pager system that alerts your phone when an AI agent needs human input to proceed. It uses end-to-end encryption via Magic-Wormhole-style pairing, requires no accounts or API keys, and integrates with any MCP-compatible agent.

SourceHacker News AIAuthor: alexandroskyr

ask-a-human: a private pager for agent loops default referrer policy). --> above pins it before paint (no FOUC), so there's no theme-toggle script here. A localStorage-based

Works with your agents

Claude Code Codex Cursor Copilot Gemini Any MCP client

If it speaks MCP, it can reach you. Same one-line config, zero extra setup.

This is what lands on your phone.

Pair once. After that, when an agent can't decide on its own, it rings your phone and waits: a yes or no, a choice, or a quick reply.

New agent

wants to pair

Open ask-a-human.ai/app on your phone and type the 10-character code it printed to connect.

ABCDE-23456 type it in the app

svg]:size-7" data-astro-cid-j7pv25f6>

Claude Code

stuck on a risky deploy

All tests pass, but this release also runs a migration that drops orders.coupon_code on prod. Ship it?

Approve Decline

svg]:size-7" data-astro-cid-j7pv25f6>

Codex

blocked, needs your call

main has been red for 20 min and 3 deploys are stuck behind it. How do I unblock it?

Revert it Hotfix forward Hold, I'll look

svg]:size-7" data-astro-cid-j7pv25f6>

Cursor

needs your words

A customer is escalating in the support thread and demanding a refund I'm not allowed to approve. How should I reply?

Type your reply… Send

Wall to phone to “keep going,” in seconds.

: the arrows are decorative, so keeping them out of list semantics avoids a mismatched item count for screen readers. -->

1 Agent hits a wall it shouldn't pass alone

↓ →

2 Sealed in a wormhole

↓ →

3 Buzzes your phone

↓ →

4 You tap: approve, decline, or reply

↓ →

5 Agent unblocks and rolls on

Why we built this

We run a lot of agents. Like a hundred of them, in loops, full-auto, full permissions, mostly while we're asleep or away from the keyboard. That's the whole point: they're not supposed to need us. Until, every so often, one of them does.

And when an agent on full-auto hits the one step it shouldn't take alone, it has no way to reach us. It can't pause a hundred loops and wait by the door. So the choices were both bad: babysit every step and kill the automation, or let it rip and hope nothing touches prod while we sleep. We wanted a third option. Let them all run wide open, and give the rare one that's stuck a way to tap us on the shoulder.

So we built a pager. Copy-paste one MCP server into your agent, pin this site to your iPhone home screen, and that's it. Nothing to install, no account, no API key. When any of your agents needs a yes or no, a choice, or a quick reply, it pings your phone and waits. A hundred agents, one place, one buzz at a time.

And it's private by design. The messages travel through a magic wormhole, end-to-end encrypted, so the relay in the middle is blind. We don't track anything, there's no database, and we pay for the hosting ourselves, all of it. No data to sell, no funnel, no catch. We built it because we needed it, and our only goal is for it to spread.

For the curious

The crypto bit.

Pairing is a Magic-Wormhole-style SPAKE2 handshake: that short code turns into a strong shared key, and even if someone shoulder-surfs it they get exactly one online guess before it's useless. After that, every message is sealed with NaCl secretbox (XSalsa20-Poly1305). The relay only ever sees base64(nonce‖ciphertext) and which room is talking to which, never the contents.

relay phone, with the SPAKE2 shared key the relay never sees. Theme-aware (fill-*/stroke-* map to design tokens), pure SVG. -->

SPAKE2 · RFC 9382

ristretto255 · RFC 9496

magic-wormhole

Built so it can't betray you.

Not a privacy policy you have to trust. A design that can't betray you. No accounts to breach, no database to leak, no logs to subpoena. The relay is RAM-only: restart it and you simply re-pair. And if you still don't trust us, the source is right there and you can host your own relay with --relay / --public-relay.

Content-blind relay

The server only ever sees base64(nonce‖ciphertext) and which room talks to which. It's a dumb pipe: never the data, never a decision.

SPAKE2 pairing

A short pairing code becomes a strong shared key via a Magic-Wormhole-style SPAKE2 handshake. No relay-in-the-middle can read or forge it.

End-to-end encrypted

Your agent and your phone hold the keys. Approvals are sealed on one side and opened on the other. Nowhere in between.

No DB, open-source

RAM-only, no accounts, no database. Restart means re-pair. Self-host the relay and web with a flag, or read every line on GitHub.