macOS menu bar · Claude Code

Every Claude Code session, at a glance.

Perch sits in your menu bar and watches every Claude Code session on your Mac — CLI, Claude Desktop, and the terminal inside your editor. When one stops for a permission prompt, it taps you on the shoulder, and you approve it from the menu bar, your iPhone, or your wrist.

Get Perch — $29One-time purchase · macOS 13 or later
The Perch panel open from the macOS menu bar, showing four agent sessions with live state, model, context window and spend

How it works

Three ways in, none of them a config file you edit

Claude Code exposes more about a running session than any other agent Perch supports, and Perch reads all of it.

Hooks

perch-report, installed for you

Perch writes its hooks into your Claude Code settings itself — no config to edit, and chain-safe, so hooks you already have keep firing. State changes land the instant they happen: starting, running, waiting on you, done. Remove them from Settings and nothing of Perch is left behind.

Status line

Your context and cost, read at the source

Perch can install a Claude Code status line, and chains to an existing one rather than replacing it. That's where per-session context and exact spend come from — the same numbers Claude Code itself reports, not an estimate reconstructed from token counts.

Transcript scan

Sessions that started before Perch did

A scan of ~/.claude/projects picks up work already in flight the moment you launch Perch, so the first thing you see is your actual fleet rather than an empty panel waiting for the next hook to fire.

Approvals

The prompt finds you, wherever you are

Allow or deny, from anywhere

A permission prompt reaches the menu bar, your iPhone and your Apple Watch at once. Answer on whichever is nearest and the session moves on — no hunting for which terminal it was.

Type an answer back

When Claude asks a question rather than for permission, reply straight from the notification. Perch puts the keystrokes into the session that asked.

Subagents count as working

Perch tracks nested subagents, so a session that has handed off to background work stays running instead of going falsely idle — and the “finished” ping lands when the work is really done.

The checklist, tracked

Perch reads Claude’s own to-do list, so a long run reads as “task 4 of 5” with the current step named — on the Mac, and on your lock screen as a Live Activity.

Stale prompts stand down

If you answered in the terminal yourself, Perch notices and drops the “needs you” state rather than nagging about a decision you already made.

Straight to the session

One click on a CLI session lands in the exact pane it’s running in — Warp, iTerm2, Ghostty or Terminal.app. Claude Desktop sessions raise the app.

Usage, limits and spend

Know how much runway is left, before you hit the wall

5-hour and weekly windows

Both limit windows as progress bars, with the reset time beside each — as a countdown or a clock, whichever you prefer. They read from the provider, so they keep moving while a session sits idle.

Per-model weekly bars

Opt in with a read-only OAuth grant and each model gets its own bar, so you can see which one is eating the week. Off by default, and everything else works without it.

Exact cost, not an estimate

Per-session spend and today’s total come from Claude Code’s own reporting rather than a token-count reconstruction — the figure Perch shows is the figure you pay.

A warning before you run out

Perch tells you when a window drops under ten percent, and surfaces a rate limit the moment you hit one — on the Mac and as a push to your phone.

Stats

A year of Claude Code, in one panel

Total tokens, sessions and active days; a contribution heatmap; current and longest streak; your longest session and busiest day; your favourite model and a full per-model breakdown. Filter to Claude alone, or set it against the other agents you run.

The Mac computes a digest and sends it on, so the same numbers are on your iPhone and your Apple Watch.

The Perch stats panel showing a contribution heatmap, streaks, and a per-model token breakdown

Pricing

Pay once, keep it

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

FAQ

Questions Claude Code users ask

Do I have to edit my Claude Code settings by hand?
No. Perch installs its hooks for you and chains onto anything already configured, so an existing setup keeps working. Removing the integration from Settings takes the hooks back out.
Will it clobber my status line?
No — if you already run one, Perch chains to it rather than replacing it, and yours still renders. The status line is also optional: skip it and you keep live state, approvals and usage, but give up the exact per-session context and cost figures that only it reports.
Does it work with Claude Desktop, or only the CLI?
Both, and Perch labels which is which on every row. One difference worth knowing: clicking a CLI session lands you in the exact pane it’s running in, while a Claude Desktop session raises the app — Anthropic hasn’t shipped a per-session link for Desktop yet. See the jump-to-session FAQ for the full list of terminals.
Can it slow Claude Code down?
No. The reporter is fire-and-forget behind a hard send timeout and fails open on every path — if Perch isn't running, isn't reachable, or errors outright, your session carries on unaffected. A hook that can stall an agent is worse than no hook.
Where do the weekly per-model bars come from?
They're opt-in and use a read-only OAuth grant against your Anthropic account, which is the only place that number exists. Leave it off and you still get the 5-hour and weekly windows Claude Code reports locally — you just don't get the per-model split.
Does my code leave my Mac?
No. Session state, transcripts and usage stay local. Data leaves only for features that require it: your paired iPhone (encrypted, over your LAN or your own tailnet), the push relay, and Polar for license checks.

Running Codex or Cursor too? Perch watches all three from one menu bar.