Skip to content

Black Friday: 40% off the Perch licence for the first 500 orders until 1 Dec, $17.40 instead of $29, with code BLACKFRIDAY2026. The deal

Nine agents working. One is waiting on you.

Perch sits in your menu bar and keeps watch over every coding-agent session on your Mac, across all nine it supports — then taps you on the shoulder the moment one needs a decision. Approve it from the notification on your iPhone, with your Mac locked on the desk — or add Perch Pro to read the whole conversation and type your reply straight into the session.

  • One-time $29
  • Lifetime license
  • iPhone app included
  • macOS 13 or later
The Perch panel open from the macOS menu bar: four agent sessions with live state, model, context window and spend, one showing its task checklist mid-run, plus Claude, Codex, Cursor and Devin usage limits

The actual app — live state, context & spend per session

The Perch Companion iPhone app: checkout-flow needs you, waiting 1:18 on approval for npm run migrate, above two running sessions, an idle Cursor session and Claude's usage bars with a mark at even pace

api-gateway needs approval

Bash · npm run db:migrate
now
DenyApprove

Perch Companion — the iPhone app, included

Step away. Keep typing.

Every license includes Perch Companion, the iPhone app. Kick off a long refactor and go make coffee: your phone mirrors the whole fleet, raises a Live Activity while agents work, and pings you when one blocks. Allow and Deny are on the alert itself — Face ID, one tap, done — and a multiple-choice question is a tap through. With Perch Pro you can also read the whole conversation and type a new instruction into the session, then watch the turn pick up again.

Get it on the App Store — freeThe licence lives on your Mac, so pairing is all it needs. How approving from your phone works.
  • Perch – Agent Monitor
  • Included with every license
  • iOS 18 or later

Included

  • Live fleet mirror — every session and state, in your pocket, with a clock on each one that’s waiting on you
  • A Live Activity that starts itself the moment agents get to work — session rows, timers ticking live, task progress on your lock screen
  • Allow and Deny on the permission alert — Allow asks for Face ID first, then the app connects and confirms on screen, or says plainly if the window closed
  • Approvals arrive with a draining countdown, in the Dynamic Island too — one alert each, and a tap you can feel when one lands and when your Mac confirms the answer
  • The whole command, every line, before you allow it — and no one-tap Allow on one too long for the lock screen to show
  • “Allow and don’t ask again” when Claude Code suggests a rule — the same rule its terminal would save
  • Answer Claude’s multiple-choice questions with a tap — off by default, in Settings → Notifications
  • Answer on your Mac, and the “needs you” alert clears from your phone, even while it’s locked
  • Claude Code’s background tasks, counted on its row on your phone and your watch
  • A mark on Claude Code’s and Codex’s usage bars where even pace would be, so you can see when you’re ahead of your limit
  • Made for iPhone Duo — unfold it, and the fleet and the session you pick sit side by side
  • A warmer look taken from the app icon, in light or dark, and a fleet that keeps its order: tap anywhere on a row to open it, and quiet sections fold away
  • Pairs over your LAN, or anywhere via your own Tailscale tailnet — end-to-end encrypted, with a step-by-step connection check when it won’t connect

With Perch Pro

  • Type a full reply back into any agent’s own composer, and read the conversation for every one but OpenCode and Muse Code
  • Conversations that scan: a run of tool calls folds into one line, like “Read 2 files and ran a command”, and Stop sits next to Send
  • Tap a notification, and the conversation it’s about opens
  • Stop a turn that’s going wrong: Claude Code, Codex, OpenCode, Antigravity, Droid, Amp and Muse Code. Devin’s interrupt key was measured and does something else; Cursor’s hasn’t been measured yet
  • Your Mac stays locked the whole time — text arrives through tmux, herdr, Rex or the agent’s own server or plugin, and none of them needs the screen

Typing is a Perch Pro feature, and it has to be switched on in Settings separately — paying for Pro is not the same as consenting to remote input. It also needs the session running in tmux, herdr or Rex — Perch won’t type at a pane it can’t name, so a session in none of them gets no composer rather than a dead one. Droid needs tmux or Rex.

Codex, OpenCode and Amp are the exceptions: Perch talks to Codex’s and OpenCode’s own servers, and to Amp through its plugin, each of which addresses the session by id instead of whatever the screen happens to be showing. Codex needs nothing extra in its default mode, and neither does OpenCode 2; OpenCode 1 needs starting with --port, and Amp needs restarting once after Perch 0.5.139 installs its plugin.

Perch Companion on iPhone Duo

Made for iPhone Duo.

Unfold it, and your sessions and a conversation sit side by side: the fleet keeps its own column, and the session you pick opens beside it, so you can read one agent while watching the rest. Lists keep to a readable width on the wide screen. Fold it, and the outer display works like any iPhone, approvals included.

Perch Companion unfolded on iPhone Duo: on the left the fleet, with checkout-flow waiting on approval for npm run migrate, docs-site and weather-api running; on the right the docs-site conversation, its tool calls folded into lines like Read 2 files and ran a command, a Working 1:38 pill, and Stop beside the reply field
Unfolded: the fleet beside a conversation. Reading and replying are Perch Pro.
Perch Companion folded, on iPhone Duo's outer display: an approval sheet for checkout-flow with 43 seconds left to answer, the command npm run migrate -- --env staging, and Deny and Allow buttons
Folded: an approval on the outer display.

Perch on Apple Watch

The fleet, on your wrist.

Raise your wrist to see how many agents are running, which sessions need you, and what each one is doing right now — no phone in hand. A Smart Stack widget surfaces the count before you even open the app.

  • Included with every license
  • watchOS 11 or later
The Perch Apple Watch app: 1 needs you, with checkout-flow waiting 1:11 on an approval, above docs-site running an edit

Included

  • Running count and live session states, glanceable in a second
  • Approve or deny from your wrist — the whole loop, no phone in hand
  • Answer an agent’s multiple-choice question with a chooser
  • A tap on the wrist when a new session needs you
  • Double Tap to confirm a decision you’ve already armed
  • On the watch face: a gauge for your tightest usage window, and a live timer for how long the top session has waited
  • Smart Stack widget puts the fleet — and your stats digest — in your watch face rotation
  • Ask Siri “how many agents need me in Perch”
  • Ships inside the iPhone app — nothing separate to find on the App Store — and pairs through your phone on the same encrypted link

With Perch Pro

  • Dictate a reply to an agent
  • Stop a turn that’s going wrong
  • Each offered only where your Mac says it can land, the same rules as on the iPhone
The Perch Stats dashboard: a year-long contribution heatmap colored per provider, above all-time totals — 1.4B tokens, 1,235 sessions, a 32-day longest streak and the favorite model

Stats — your year in agents

Every session you've ever run, counted.

Perch keeps a local history of every run and turns it into a dashboard: a contribution heatmap of your agent days, and an honest account of what you spend your tokens on. It reads your own files on your own Mac — nothing is uploaded to build it.

  • A per-day heatmap, colored by the agent you ran that day
  • Total tokens, sessions, and active days — all-time, 30 days, or 7
  • Current and longest streak, so you can see the run you're on
  • Longest session, most-active day, favorite model and the breakdown behind it
  • Filter to one agent at a time — and read the digest on your phone and watch

Storage

See what your agents left on disk

Agents make worktrees and build folders faster than anyone deletes them. A pane in Settings lists both, across every repository your agents work in, with what each one costs you in space and what you would lose by removing it.

Every worktree, and what it holds

Including the ones you made by hand. Each shows its size, when it was last used, which agent made it, and what you’d lose: uncommitted files, commits on no branch, and commits that were never pushed.

Moved to the Trash, only when it’s safe

Perch won’t move a worktree that’s locked, open in a session or an editor, or holding work it can’t account for. Commits on no branch are saved to a perch/saved/ branch first, and you can put it back from the Trash until you empty it.

Build folders, listed and left alone

node_modules, Swift’s .build, Rust’s target, Xcode’s build folders and DerivedData, by size and by when the project was last used. Only folders git ignores make the list. Perch deletes none of them: Show in Finder, and the removing is yours.

Health

Know when it’s the service, not your setup

When an agent stalls, the fault can be on your Mac, in an out-of-date CLI, or on the vendor’s servers. Perch watches the last two for you, so an outage doesn’t cost you twenty minutes of debugging your own setup.

Outages, from the vendor’s own page

Perch reads the official status pages of Claude Code, Codex, Amp, Devin (Windsurf’s page) and Droid. When the part your agent uses is down, a red banner in the dropdown says so and links to the incident. A slowdown or maintenance shows as a small icon beside that agent’s usage, and every open problem is listed in Settings → General → Integrations. For Claude Code and Codex, the dropdown also notes when this Mac has seen three turns fail on server errors within five minutes, which can come before the vendor posts anything. Is Claude Code down?

Updates, with the command to run

Settings shows the version of Claude Code, Codex, Amp, Droid and OpenCode on your Mac. When a newer one is out on the channel you installed it from, a dot on the gear tells you, and Settings gives the command for that channel, such as brew upgrade opencode. A tool that updates itself is flagged only once a release has been out for a day.

Read anonymously, installed by you

Each check is an anonymous read with no login, cookie or identifier, and nothing about your sessions. Only agents you use on this Mac are checked, never while it sleeps, and versions once a day. Perch never installs or updates anything, and each check can be turned off. The privacy policy has the details.

Built for the parallel-agent workday

While they work

The whole fleet, one glance

Every session, its state, and how long it's been there — running, waiting, idle, done — in colors you can read across the room, each row marked with the agent that owns it.

Sessions show their own name

A conversation appears under the title you gave it — or the one the agent wrote for it — instead of the folder it happens to run in. Two sessions in the same project are finally told apart.

Claude Code rows say more

Read from the status line Perch sets up for it: the pull request a session's branch has open, with its review state — “PR #1234 approved”, or “changes requested”. The permission mode it runs in: auto, manual, plan, accept edits or bypass, and “fast” in fast mode. And once a session has sat for about an hour, “cache cold · 39k to rebuild”: Claude's cache has expired, so your next message pays to rebuild it.

Task lists, tracked to the last item

Perch reads the agent's own checklist, so a long run reads as “task 4 of 5” with the current step named — on the Mac, and on your lock screen.

Background agents count as working

When the main thread hands off to subagents, the session stays running instead of falsely going idle — so the “finished” ping lands when the work is actually done.

Usage, limits, and spend

Per-session context and cost, and per-model limit bars on by default — 5-hour and weekly windows read straight from the provider, so they keep moving when a session goes idle. Today's spend, your plan, credit balance, and a heads-up before you run out.

When one needs you

Approvals — and answers — in one click

Permission prompts surface the moment they appear. Approve or deny without hunting for the right terminal, and answer when an agent asks a question: pick from Claude's choices, or type a line back where an agent asks for text.

Allow, and stop asking

When Claude Code suggests a rule with its permission prompt, a third button sits beside Allow and Deny: allow this, and save the rule so it stops asking. The button names the rule and where it goes — “Bash(sw_vers) in this project” — and it is exactly the rule the terminal's own “don't ask again” would save, nowhere wider. OpenCode 2 gets the same button. On the Mac notification, your phone and your watch.

Answer from your pocket

Allow and Deny sit on the notification itself — Face ID, one tap, and the decision reaches your Mac while it sits locked on the desk. Tap through Claude's multiple-choice questions the same way. Add Perch Pro and you can read the whole conversation and type a new instruction straight into the session.

Jump straight to the session

One click lands you inside the session, not just the app: the exact pane in Warp, iTerm2 and Rex, the exact split in Ghostty, the exact tab in Terminal.app, the conversation inside Codex Desktop. Inside tmux or Zellij it selects the right window and pane first. Eight more terminals open by name, and an unrecognised one is opened best-effort.

Out of your way

It tells you when it isn't current

When your Mac sleeps every agent pauses with it, so Perch stops presenting the last thing it saw as live. One line as it goes to sleep, one while it re-checks on waking, and one if checks stop landing for any other reason. Your phone and watch say how old the view is instead of spinning. And if you'd rather it didn't doze off mid-task, an opt-in holds off idle sleep while an agent is verifiably running — closing the lid still sleeps the Mac, as it should.

9 agents, one fleet

Hooks report state instantly and install themselves — one install per agent, covering CLI, desktop and IDE alike; a transcript scan catches sessions started before Perch. Claude Code, Codex, Cursor, Devin, OpenCode, Amp, Antigravity, Droid and Muse Code, side by side in the same list.

Never slows an agent

Reporters are fire-and-forget with a hard send timeout, and fail open on every path. A hook will never stall your session.

Quiet, native, signed

A pure-Swift menu bar app that stays light while your whole fleet works — no Electron, no daemon farm. Notarized by Apple, and updated over a signed Sparkle feed you can inspect.

More agents joining the fleet. Tell us which one you run.

  • Cline
  • Kilo Code

Local-first, by architecture

Stays on your Mac

Session state, transcripts, usage, and cost live in local files — the app reads them over a Unix socket. Close Perch and nothing phones home.

Leaves only if you opt in

Pairing your iPhone sends fleet snapshots to it — encrypted, over your LAN or your own tailnet. Push alerts pass transiently through a relay that stores only a hashed license identity.

Verifiable

The trust boundaries and threat model are documented publicly, and every update ships notarized with a signed appcast you can inspect.

Pay once for the fleet. Subscribe for the conversation.

Buy the Mac app once and keep it, or subscribe to Perch Pro and get it along with the conversation view for as long as you subscribe. Solo and Team are lifetime licences with all updates included; checkout is handled by Polar, and Pro by the App Store.

Solo

$29one-time

Black Friday, first 500 orders until 1 Dec

$17.40 instead of $29 with code BLACKFRIDAY2026

  • 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

Black Friday, first 500 orders until 1 Dec

$17.40 instead of $29 a seat with code BLACKFRIDAY2026

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 through Black Friday, until 1 Dec, then $49 a year. The app applies it, no code needed.

  • 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 Amp its plugin — 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, for every agent but OpenCode and Muse Code. Each agent’s own page says exactly what it supports, and what it doesn’t.

Prices in USD, tax included.

Before you buy

What do I need to run Perch?
A Mac on macOS 13 or later, and at least one of Claude Code, Codex, Cursor, Devin, OpenCode, Amp, Antigravity, Droid or Muse Code. The iOS companion is optional and needs iOS 18 or later.
Will Perch slow my Mac down?
No. Perch is a native Swift app, and how much work it does while your fleet runs was rebuilt specifically to bring it down — it redraws once for a burst of activity rather than once per event, and stopped re-reading transcripts and history it had already read. It costs close to nothing while your sessions sit idle. Your agents are a separate question with a separate answer: the hooks that report state are fire-and-forget with a hard send timeout and fail open on every path, so an agent never waits on Perch, and never stalls if Perch is not running at all.
Does it work with the Mac locked, or the lid closed?
Locked, yes — everything. Agents keep running, hooks keep firing, alerts keep arriving, and approving from your phone works end to end, because none of it touches the screen. Asleep, no — and a laptop with the lid closed and no external display is asleep. Nothing can work then, but nothing is missed either: the agent is frozen too, and your phone and watch say “Mac went to sleep” instead of showing a stale fleet. If your Mac tends to doze off mid-task, there is an opt-in in Settings that holds off idle sleep while an agent is verifiably running and through an approval window; it never overrides the lid.
Which terminals does the one-click jump land in?
Warp, iTerm2, Rex and Ghostty take you to the exact pane or split, Terminal.app to the exact tab, and Codex Desktop to the conversation. A session inside tmux or Zellij gets its window and pane selected first, then the terminal is raised. Rex, Superlogical’s terminal, brings the agent’s pane forward; to have it switch to that session as well, turn on Remote Control in Rex’s Settings, under Rex Server. Eight more — kitty, WezTerm, Alacritty, Hyper, Tabby, VS Code, Cursor, Windsurf — get raised by name, as does Claude Desktop, and a terminal Perch doesn’t recognise is opened best-effort. Ghostty and Terminal.app ask once for Automation permission the first time you jump; the rest need none. Two things worth knowing: Anthropic hasn’t shipped a per-session link for Claude Desktop yet, and Ghostty exposed the property this relies on just after 1.3.1 — until its next release it raises the app instead, then starts landing in the split with no update to Perch. All terminals, and what each one gets. Running something that isn’t on the list? Tell us.
How does the license work?
One key activates one Mac at a time. Moving machines is one click — deactivate in the app and the seat frees up instantly. Keys never expire, and updates are included.
How do team seats work?
You pick the number of seats at checkout, and your own seat is claimed automatically — your key is waiting the moment you pay. The rest you invite by email from your Polar customer portal, under Orders → your order → Seat Management. Each teammate claims their own license key, so a five-seat order covers you plus four teammates. Invites expire after 24 hours, but you can resend them, and you can revoke and reassign a seat at any time.
Does my code leave my Mac?
The menu bar experience is entirely local — session state, transcripts, and usage never leave your machine. Data leaves only for features that need it: your paired iPhone (encrypted, LAN or your own tailnet), the push relay (transient alert contents, hashed license identity), and Polar for license checks. Perch also reads public status pages and release feeds, to say when an agent’s service is down or its CLI has an update — anonymous requests that carry nothing about you or your sessions.
Does Perch tell me when Claude Code is down?
Yes. Perch reads the official status pages of Claude Code, Codex, Amp, Devin and Droid, and when the part your agent uses is down, a red banner in the dropdown says so and links to the incident. Lesser trouble — a slowdown, maintenance, an incident being watched — shows as a small icon beside that agent's usage, and every open problem is listed in Settings → General → Integrations. So when a session stalls, you know whether it's the service or your setup.
How do I get the iPhone app?
It’s on the App Store, free — Perch – Agent Monitor. Download it and pair it with your Mac: the licence lives on the Mac, so there is nothing extra to buy and no invite to wait for. It needs iOS 18 or later, and the Apple Watch app ships inside the same download.
Is there a trial?
Not yet — Perch unlocks with a license key. The Mac app is a one-time $29 and stays yours; Perch Pro, which adds the conversation view and replies from your phone, is a subscription bought in the iPhone app. If either doesn't fit your workflow we'll refund it.
I hit a problem — where do I get help?
Open an issue on GitHub — “Report an Issue” inside the app lands in the same place.