TerminalsiTerm2

Every agent in iTerm2, one click from its pane.

Perch keeps every coding agent session on your Mac in the menu bar. Click one running in iTerm2 and it finds the pane across every window, tab and split, and brings it forward.

iTerm2 with Perch

Lands on
The exact pane
How
iTerm2's reveal link
Permission
None
Needs
iTerm2 3.5 or later
Inside tmux
Window and pane first

How the jump works

iTerm2 finds the pane by its own id

The pane's id, not its position

iTerm2 gives every session a permanent id, and Perch's hooks record it as the agent starts. A click hands it back to iTerm2, which searches every window, tab and split for it. A pane you've since dragged elsewhere is still found.

No permission to grant

The reveal link opens like any other link, so there's no “Perch would like to control iTerm2” prompt for the jump. iTerm2 has accepted these links since 2021.

Checked before it's opened

The id passes through a file in your home folder, so Perch checks it has exactly the shape iTerm2 uses before building the link, and again on the click.

Answering

Answering an agent that runs in iTerm2

Approvals don't care which terminal

Allow and Deny on your iPhone, Apple Watch and Mac notification work the same in iTerm2 as anywhere else, for Claude Code, Codex, OpenCode and Devin. They travel through the agent itself, not the terminal.

Reply from the Mac notification

When an agent asks a question, type the answer into the notification. Perch focuses the exact pane, checks iTerm2 is in front and the agent is still there, then types it. That needs Accessibility access for Perch.

Typing from your phone, inside tmux

Replies and Stop from the iPhone need a pane Perch can address without the screen: run the agent inside tmux or herdr in iTerm2, and the Mac can stay locked. Codex in its default mode and OpenCode need neither.

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

Worth knowing

The conditions, named

Amp and Antigravity ask once

Perch finds those two by scanning, and macOS 26 hides another app's environment, where iTerm2's id lives. So Perch finds their pane by its terminal device instead, through AppleScript, which asks once for Automation access.

Very old iTerm2 raises the app

Builds from before mid-2021 open the link but can't follow it, so a click brings iTerm2 forward and leaves the pane to you. Never a dead click.

Inside tmux, the pane comes first

If the agent runs in tmux inside iTerm2, the id iTerm2 gave the pane belongs to the tmux client, not the agent. Perch tells tmux to select the agent's window and pane, then raises iTerm2.

A busy iTerm2 can't freeze Perch

The jump runs in the background and gives up after five seconds on a terminal that doesn't answer, so the menu bar never hangs waiting for it.

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

iTerm2 and Perch, specifically

Does Perch work with iTerm2?
Yes. Every agent session running in iTerm2 shows in Perch's menu bar with its live state, and a click lands in the exact pane through iTerm2's own reveal link — across windows, tabs and splits, with no permission prompt.
Do I still need iTerm2's bell or trigger tricks for Claude Code notifications?
No. Perch hears from Claude Code's own hooks the moment it needs you, so the alert reaches your menu bar, a Mac notification, your iPhone and your Apple Watch without any iTerm2 profile setup. Clicking it lands in the pane that asked.
Do I need to give Perch any permission for iTerm2?
Not for the jump. Typing a reply from a Mac notification into an iTerm2 pane needs Accessibility access. Amp and Antigravity sessions, which Perch finds by scanning, are focused through AppleScript and ask once for Automation access.
Can I approve Claude Code from my phone while it runs in iTerm2?
Yes. Approvals go through Claude Code's hooks, not the terminal, so Allow and Deny work from your iPhone and Apple Watch whatever terminal the session is in, with the one-time licence alone.

Perch lands precisely in Warp, Rex, Ghostty, Terminal.app and Codex Desktop too, and inside tmux, herdr and Zellij. Every terminal Perch supports.