Two months ago I asked here how people stay aware of what their agents are doing, and @getosmo replied with something that has been quietly rearranging my roadmap since.
I had been treating "can you undo it" as the line for when an agent should stop and ask. He took that apart. Irreversibility over-fires and under-fires, he said. It over-fires on things that cannot be undone but that nobody cares about, like the agent writing a log line. It under-fires on the ones that really hurt: a mass email to 50k users, or a migration you can only roll back after downtime. "Reversible on paper, ruinous in practice."
Novel concept. What's the latency like from agent request to phone notification?
Pushary
@zerotox
Good question, two parts to it. The part we control, agent request to push dispatched, is a few hundred milliseconds, the hook posts the request and the server fires the notification right away. The part we don't, push dispatched to your lock screen, rides Apple's and Google's push pipelines, usually a second or two but not something anyone can guarantee to the millisecond.
So end to end it's typically a couple of seconds in normal conditions, and the variable bit is the platform push layer, not us. The setup actually sends a test push and confirms delivery, so you can see your own real number instead of taking mine. And if a push is ever slow, the agent just keeps waiting on its timeout rather than moving on, so latency never turns into a missed decision.
Liso
Congrats on the launch man, almost overtook us too aha)
Is this essentially an app on mac and on iphone?
Pushary
@evgeny_timofeev
Haha appreciate it man, good luck with yours too )
Not quite an app on both ends. On the Mac side there's no desktop app, it's a one-command CLI that hooks into the agent you already run, Claude Code, Codex, whatever. On the phone side yes, it's a real native app, iPhone and Android, and there's a web version too if you'd rather not install anything. The agent keeps running on your machine, the phone is just where the decisions reach you.
Very nice idea! Nothing more annoyting than coming back to an agent thats been idle due to a small permission request. There should be categories in terms of minor or major permission/change requests - some requests really do require proper review before approving.
Upvoted!
Pushary
@kristaps_karnitis
Thanks Kristaps, and you're describing what's already under the hood.
The low-stakes stuff like reads auto-approves, so you never walk back to an agent frozen on something trivial. The risky class is handled differently on purpose: destructive commands get held for a real decision even when a broader rule would have waved them through, so "delete everything" can't slip past on a general allow.
You set the line per tool. Reads auto, edits under src escalate, rm -rf denied, whatever matches how you work. Minor flows through, major waits. Appreciate the upvote.
GrowMeOrganic
A feature I would request is approve with Face ID confirmation for high-risk actions. :D
Pushary
@iamanantgupta
Good news Anant, on iOS that already ships. Approving is gated behind Face ID or your passcode today, so a tap alone never approves, and high-risk calls go a step further and drop the one-tap approve entirely so you have to open the app and read the full context before you can say yes. The one place it's still on the list is Android, where the notification-level unlock isn't native yet, so we're adding an in-app biometric confirm there. Half your request is live, the other half is the next build. :)
Documentation.AI
Interesting take on the build. I was solving this with Slack messages, but lock screen approvals sound much smoother.
Pushary
@roopreddy
Thanks Roop! And you don't have to give up Slack, it's a supported channel too, so approvals can land there, on your lock screen, or both. The difference from raw Slack messages is what happens at the message: it's an actual approve or deny in place, gated by policy so only the real decisions reach you, and every one is logged. A Slack ping tells you something happened, this lets you decide it without leaving where you are. Same idea you were already building, just with the decision built into the surface.
Nice framing — the phone approval loop is the part I’d actually use.
One small thing I’d want as a builder: not just Yes/No, but a quick risk label for why the agent is blocked — file write, shell command, dependency install, payment/API action, etc. When I’m away from the terminal, the hard part is knowing whether I’m approving a harmless unblock or changing the risk profile of the run. The audit trail could make that decision reviewable later.
Pushary
This nails an unglamorous bottleneck: the agent is often fast enough, but the permission loop is not. The audit trail matters as much as the lock-screen approval because small teams need to know exactly what got approved while work kept moving.
Pushary
@krekeltronics
Thanks Patrick, that's exactly the framing. The agent was never the slow part, the human loop was, and most tools optimize the wrong half.
On the audit piece, agreed it carries as much weight as the tap. Every decision writes to an immutable record: what was asked, what got answered, when, and from which surface, bound to the request so it can't drift after the fact. For a small team that's the difference between "the agent did something" and "here's exactly what was approved while everyone kept moving." It exports too, so it holds up when someone actually asks.