Claude Code · Codex · Cursor · Devin · OpenCode

Five 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 5 it supports — then taps you on the shoulder the moment one needs a decision. Approve it from your Mac, or from your phone.

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 showing two running agent sessions with model, context and cost, plus Claude and Codex usage limits

api-gateway needs approval

Bash · npm run db:migrate

now
DenyApprove

Perch Companion — the iPhone app, included

Step away. Perch taps your shoulder.

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 on a permission — with Approve and Deny right on the notification, from the couch or from the coffee shop.

  • Live fleet mirror — every session and state, in your pocket
  • Approve, deny, or type an answer back — without unlocking your Mac
  • A Live Activity that starts itself the moment agents get to work — session rows, timers ticking live, task progress on your lock screen
  • Approvals arrive with a draining countdown, in the Dynamic Island too
  • Pairs over your LAN, or anywhere via your own Tailscale tailnet — end-to-end encrypted

Included with every license · iOS 18 or later (optional companion)

The iPhone app isn't on the App Store yet — after you buy, we send your invite to it within 24 hours.

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.

  • Running count and live session states, glanceable in a second
  • Approve or deny from your wrist — the whole loop, no phone in hand
  • Smart Stack widget puts the fleet — and your stats digest — in your watch face rotation
  • Pairs through your iPhone — same encrypted link, nothing extra to set up

Included with every license · watchOS 11 or later

The Perch Apple Watch app: a '2 running' summary above two live agent sessions — cv-jetson on TaskUpdate and perch reading a file
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

What you get

Built for the parallel-agent workday

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.

Approvals — and answers — in one click

Permission prompts surface the moment they appear. Approve or deny without hunting for the right terminal, and type a reply straight back when an agent asks a question.

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.

Jump straight to the session

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

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.

5 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 and OpenCode, 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. Notarized by Apple, updated over a signed Sparkle feed — no Electron, no daemon farm.

Jump to the exact session

  • Warp

    exact pane

  • iTerm2

    exact pane

  • Ghostty

    exact split

  • Terminal.app

    exact tab

  • Codex Desktop

    exact conversation

Coming soon

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

  • Cline
  • Gemini CLI
  • Kilo Code

Privacy

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.

Pricing

Pay once. Keep watch forever.

No subscription. Every license is lifetime, includes the iOS companion and all updates, and checkout is handled by Polar.

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
Buy 5 seats — $145

Prices in USD, tax included.

Questions

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 or OpenCode. The iOS companion is optional and needs iOS 18 or later (optional companion).
Which terminals does the one-click jump land in?
Warp, iTerm2 and Ghostty take you to the exact pane or split, Terminal.app to the exact tab, and Codex Desktop to the conversation. 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. 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.
How do I get the iPhone app?
Perch Companion isn't on the App Store yet. After your purchase, we send an invite to the iOS app (via TestFlight) to your checkout email within 24 hours. The Mac app works on its own in the meantime.
Is there a trial?
Not yet — Perch unlocks with a license key. It's a one-time $29, not a subscription, and if it 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.