macOS menu bar · Cursor
Every Cursor session, at a glance.
Perch sits in your menu bar and watches every Cursor session on your Mac — cursor-agent in a terminal and agents inside the IDE, from one install. Live state, the git branch each one is on, and how much of your plan you’ve used.

How it works
One hook install, both surfaces
One install
cursor-agent and the IDE, together
Perch writes a chain-safe hook into your Cursor config once, and it covers both surfaces — the cursor-agent CLI in a terminal and agent sessions inside Cursor itself. Perch labels which is which on every row, so a fleet of both reads clearly.
Liveness
A session that ends really ends
Neither of Cursor's end-of-session signals is reliable on its own, so Perch runs a watchdog alongside them and falls back to scanning Cursor's own chat records. The result is that finished sessions disappear instead of sitting there forever pretending to run.
Jump
Back to where it's running
One click on a CLI session lands in the exact terminal pane — Warp, iTerm2, Ghostty or Terminal.app. An IDE session opens the project in Cursor.
Worktrees
Four sessions in one repo, and you can tell them apart
cursor-agent --worktree creates a worktree per session, which is a good way to work and a terrible thing to monitor: every row resolves to the same repository name and they render identically. Perch shows the git branch on each row, read live from the checkout itself, so parallel sessions are distinguishable at a glance.
Read from the repository rather than from Cursor, which reports no branch at all — so it stays correct when you switch mid-session, and works in worktrees, where the naive approach fails precisely where it matters most.
Usage
Included and API, on every screen you own
Both bars, plus the reset
Cursor bills on a billing cycle rather than rolling windows, so Perch shows your Included and API usage against that cycle, with the date it ends. Your plan label sits beside them.
There when Cursor isn’t
The reading is stored, so the bar survives quitting Cursor and relaunching Perch. It clears at the end of your billing period rather than guessing a zero for a period nothing has looked at.
On the phone and the watch
The same bars ride along to Perch Companion and the Apple Watch app, so you can check your remaining usage without opening the Mac.
Opt-in, and off by default
These are the only Cursor numbers that need your account, so they’re behind a switch. Everything else on this page works with it off.
What it doesn’t do
Cursor gives less away than the other two. Here’s where
Perch was built against Claude Code first, and not everything ports. Rather than let you find these out after paying:
No remote approvals
Cursor has no event that means “asking a human”, so there is no “needs you” state to send anywhere. Wiring it to the hook that does exist would alert you on every auto-approved command. Claude Code and Codex have this; Cursor doesn’t.
No token totals in Stats
Cursor doesn’t persist per-turn counts, so nothing can total them after the fact. You still get sessions, active days, streaks and the heatmap.
No per-session cost
Deferred, not impossible — under Auto there’s no model name to price against, and a made-up number is worse than a blank.
Delegates sit side by side
Cursor never fires its own subagent hooks, so background work shows as sibling rows rather than nested under its parent.
No per-model breakdown
Under Auto, Cursor reports its model as “default”, so there’s no model name to attribute a session to and nothing for a breakdown to split.
Everything else is there
Live state, the CURSOR badge on Mac and phone, git branch, jump-to-session, usage, streaks and the heatmap, launch at login, and the same one-time license.
Stats
Sessions, streaks and a year of days
A contribution heatmap, current and longest streak, your longest session and busiest day, and a running count of sessions and active days. Filter to Cursor alone, or set it against Claude Code and Codex side by side.

Pricing
Pay once, keep it
Solo
- 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
Team
- 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
FAQ
Questions Cursor users ask
Can I approve Cursor permission prompts from my phone?
Does it work with the Cursor IDE or only the CLI?
Why does Stats show sessions and days for Cursor but no tokens?
Is there a per-session cost figure for Cursor?
Do the usage bars need my Cursor login?
Does my code leave my Mac?
Running Claude Code or Codex too? Perch watches all three from one menu bar.