Agents in tmux, answerable from your phone.

Run your agents in tmux or herdr, and your iPhone can type into the agent’s own pane and stop a turn while your Mac stays locked. A click selects the right window and pane.

tmux with Perch

Lands on
The agent's window and pane
Phone replies
tmux and herdr
Stop
Claude Code, Codex, Antigravity, Droid
Zellij
The jump only
Permission
None

How the jump works

The multiplexer first, then the terminal

tmux selects the pane

A click tells the tmux server to select the agent's window and pane, then raises the terminal showing that tmux client — even though tmux hides which terminal that is from everything inside it.

Checked against the live process

The pane is found fresh on each click, from the agent's process and the moment it started. A process id the system has handed to something new can never focus a stranger's pane.

herdr and Zellij too

In herdr, Perch switches to the agent's pane over herdr's socket. In Zellij, one command switches to the agent's tab and pane. Either way the terminal around it comes forward next.

Answering

Typing into the agent's own pane

Reply from your iPhone

With Perch Pro, type a full message, line breaks and all, and it goes into the agent's own pane through tmux or herdr. Nothing touches the keyboard or the screen, so the Mac can stay locked on the desk.

Stop a turn that's going wrong

For Claude Code, Codex, Antigravity and Droid, each measured before it was offered. OpenCode's Stop goes through its own server, wherever it runs. Devin's and Amp's interrupt keys do something else, so they get none.

Reply from the Mac notification

An answer typed into a Mac notification goes to the session's own pane through the multiplexer, not to whichever pane happens to be active — and needs no Accessibility access, since nothing is typed on screen.

How approving from your iPhone works, and every alert Perch can send you.

Worth knowing

The conditions, named

Zellij gets the jump, not replies

Perch can switch Zellij to the agent's pane, but can't deliver text to that pane alone: a reply would land in whichever pane is focused. So under Zellij, Perch refuses replies rather than guess.

No reply or Stop while a prompt is up

At an approval prompt Enter means Yes and Escape means No, so while an agent waits on a permission or a question, Perch offers neither. Answer the prompt with Allow or Deny first.

Droid needs tmux specifically

Droid's Allow and Deny were measured in tmux, so that's the only place Perch presses them; its replies and Stop work in tmux or Rex. A Droid session in herdr is watched, and answered at the terminal.

Never into a shell

Print modes such as claude -p or codex e have no prompt: text sent to them would wait and then run in the shell. Perch refuses those sessions, and re-checks the agent is still in the pane before every send.

Pay once for the fleet. Subscribe for the conversation.

Solo

$29one-time
  • Lifetime license — pay once, keep it
  • One Mac at a time; deactivate in-app to move
  • iOS companion, push alerts & Live Activities included
  • Notarized app with signed automatic updates
Buy Perch — $29

Team

$29per seat, one-time · 2+ seats
5
seats × $29 = $145
  • A license key for every teammate — not one shared key
  • Assign and revoke seats by email from your customer portal
  • Your seat is claimed on purchase; invite the rest by email
  • Same lifetime license and updates on every seat
  • Perch Pro is separate — each teammate who wants it subscribes in the iPhone app
Buy 5 seats — $145

Pro

Most popular
$4.99per month

or $29 a year

Launch price until 15 November, then $49 a year

  • A Mac app licence included, for as long as you subscribe — nothing separate to buy
  • Read your agents’ conversations from your iPhone, and reply straight back into the session
  • Works with your Mac locked, from anywhere your phone can reach it*
Get it on the App Store

Free to download. Pro is an in-app purchase.

* What Pro can reach depends on the agent and on where its session is running. Replying needs the session inside tmux, herdr or Rex (Droid, tmux or Rex) — Codex in its default mode and OpenCode use their own local servers instead — and it has to be switched on in Settings, because paying for Pro is not the same as consenting to remote input. Reading a conversation works wherever the session runs. Each agent’s own page says exactly what it supports, and what it doesn’t.

Questions

tmux and Perch, specifically

Can I reply to Claude Code running in tmux from my iPhone?
Yes, with Perch Pro — a subscription bought in the iPhone app. Your message goes into the agent's own tmux pane, multi-line included, and your Mac can stay locked. Typing has to be switched on in Perch's Settings as well, because paying for Pro isn't consent to remote input.
Why do replies from the phone need tmux or herdr?
Because Perch won't type into a pane it can't name without the screen. tmux and herdr can deliver text to a specific pane while the Mac is locked; a plain terminal tab can only be typed into by pressing keys on screen. Rex does the same through its own server, and Codex in its default mode and OpenCode take replies through their own servers.
Does clicking a session switch my tmux window?
Yes. Perch tells tmux to select the agent's window and pane, then raises the terminal showing that client. In Zellij it switches to the agent's tab and pane; in herdr, to its pane.
Do approvals from my phone need tmux?
No, except for Droid. Claude Code, Codex, OpenCode and Devin approvals go through the agent itself, so Allow and Deny work wherever the session runs. Droid has no hook that can hold a decision, so its Allow and Deny are keys Perch presses in tmux, after checking the dialog is still up.

Perch lands precisely in Warp, iTerm2, Rex, Ghostty, Terminal.app and Codex Desktop. Every terminal Perch supports.