When Phone Approval of Coding Agents Earns Its Complexity
The dream is to approve coding agent decisions from your phone while in line for coffee. The reality is that most agents do not need real-time approval, and the ones that do are usually blocked on context your phone cannot give them.
When phone approval is the wrong answer
If your agent runs finish in under fifteen minutes, you do not need phone approval. You need to wait. Setting up a phone tunnel for short runs adds complexity to a workflow that did not have a problem.
If your agents run autonomously and post PRs without asking, you do not need phone approval. You need a review queue. Phone approval does not help review. It only helps unblock.
Phone approval pays off in exactly one scenario: long autonomous runs where the agent hits a decision it cannot make alone, and the cost of waiting until you are back at the laptop is larger than the cost of the tunnel.
The decision criteria
Use phone approval when all three are true.
One: the run is long. More than thirty minutes from spawn to PR. Shorter runs do not justify the setup.
Two: the agent asks for input. If your agent never asks, there is nothing to approve. The setup is dead weight.
Three: you are away from the laptop often enough. Once a week is not enough. Multiple times a day is.
If any of those is false, the tunnel costs more than it saves.
What the tunnel actually requires
The pieces are not exotic. You need an SSH client on the phone (Blink, Termius, or similar). You need a way to reach the machine running the agent (Tailscale, a static IP, or a jump host). You need the agent running in a session that outlives any one client.
The first two are phone-side setup. The third is the same pattern as the laptop-decoupling problem. If your agent dies when the laptop sleeps, phone approval does not work, because there is nothing to approve.
The unblock loop
When the agent blocks on a decision, you do three things from the phone.
herdr agent list # which agent is asking
herdr agent read <name> # what it is asking
herdr agent send-keys <name> ... # your answerThe agent does not know you are on a phone. It sees the same keystrokes it would see from the laptop. The tunnel is transparent to the agent, which is the whole point.
What phone approval does not solve
Phone approval does not replace review. An agent that asked for and received your approval mid-run still needs code review when the PR opens. Approval is permission to continue. It is not endorsement of the result.
Phone approval also does not work for decisions that require reading code. The phone screen is too small to read a diff carefully. If the agent's question requires diff review, the answer is to wait, not to approve from a phone.
Decide before you build
Before you set up a phone-to-agent tunnel, list the last five times an agent blocked waiting for you. If fewer than two of them happened while you were away from the laptop, the tunnel is a solution to a problem you do not have.
Recommended for you
- CollaborationHerdrClaude Code
How I Stopped Losing Track of Which Agent Owns Which Task
Three agents in one workspace is where you stop knowing which agent owns which PR. One task, one branch, one worktree, one agent fixes it.
- CollaborationClaude CodeAmp
Why I Stopped Running Parallel Agents in the Same Repo
Agents sharing one workspace collide on branches, state, and review diffs. Sibling worktrees with a fresh base branch fix all three. Here is the setup.
- CollaborationHerdrClaude Code
When to Map One Agent to One Worktree to One Branch
Sharing a workspace across agents feels efficient but is the most expensive shortcut in a multi-agent workflow. Here is when one-to-one mapping earns its overhead.
- CollaborationHerdrClaude Code
I Tried Running Four Agents in Parallel. Twenty Minutes of Silence Is Where It Broke.
Three agents pushed branches on schedule. The fourth stalled on a quota ceiling and I did not notice for twenty minutes. The fix was inspectable agents, not better ones.
Enjoyed this article?
Subscribe for new articles. No spam. Unsubscribe anytime.