For Claude Code and Codex, on macOS

Your agents, at a glance.

perch
Editing Surface.swift · perch
Claude now
gener8-appnow
perch1m 04s
i8l-ops12s
Night Drive
Music
66°
Chicago6:49 AM
CloudyH:75° L:66°

Perch turns the notch into a status light for your coding agents. It ripples orange while a turn runs, turns red when an agent needs permission and goes green when it finishes, so you stop switching tabs to check.

Download for macOS Coming soon to the Mac App Store
Built for
Claude Code Codex herdr Notch MacBooks External displays
Four states

Orange is working. Red needs you.

The glyph is a 5×5 dot matrix, measured frame by frame off a 60fps recording. While an agent works, a wave runs out from the centre and back every 2.8 seconds. The colour tells you whether to look up.

From the notch

Approve it without finding the tab.

When Claude Code asks to run a command, Perch shows the command in the island. Allow or deny it there and the agent carries on. The terminal prompt stays where it was, so nothing depends on Perch being open.

Tied to the request. Each answer carries the ID of the prompt it belongs to, so a late click cannot approve the next one.
Fails open. If you do not answer before the deadline, the hook steps aside and the terminal asks as usual.
Your session names. Sessions show the names you gave them in herdr, never a bare folder name.
gener8-app
Needs permission · Bash
Claude
Commandnpm test
Allowed. gener8-app is running again. The terminal prompt closed on its own.
0.0%
CPU at idle, with every dot still animating
3 tiers
Rest in the menu bar, a card on hover, the shelf on click
2 builds
Sandboxed for the Mac App Store, notarized for direct download
One island for the agents and screens you already use
Claude Code Codex herdr MacBook notch Island on any display Every Space
How it works

Install it. Keep working.

Perch listens to the hooks Claude Code and Codex already fire. There is no API key, no account and no polling of your terminal.

>_ ~/dev/perch
$ open ~/Applications/Perch.app
✓ Perch running · idle CPU 0.0%
✓ hooks added to ~/.claude/settings.json
✓ session names read from herdr
$ claude "tighten the hover card spacing"
● perch · working
WorkingClaude
perch
Edit · SessionCard.swift
Needs youCodex
gener8-app
Bash · npm test
One click down

The list stays clean.

Click the island and the shelf opens. Each session gets one row with its name, a state dot and elapsed time. The current tool, token counts and quota windows are there too, one more click in.

Three things per row. Name, state and elapsed time, and nothing else competing for your eye.
Detail on demand. Click a row for the tool, its target, token and cache figures, and your 5 hour and 7 day windows.
The rest of the notch. Now Playing, weather and your next calendar event sit under the list.
Bashnpm testWaitingfor your answer22.4k in1.2k out5h window38% used
perch1m 04s
EditSessionCard.swiftCache91% hit48.2k in3.1k out7d window12% used
Finishedafter 4m 12sAgentCodex31.0k in2.4k outLast toolWrite
Idlesince 3mLast toolRead9.8k in0.6k outCache88% hit
Night Drive
Music
66°
Chicago6:49 AM
CloudyH:75° L:66°
Design reviewin 25 min
4 sessions · 1 needs you
Why Perch

The agent finished ten minutes ago. You found out just now.

Checking on agents by hand means switching tabs, scanning panes and guessing which prompt is waiting. Perch puts the answer at the top of the screen, where you already look.

Checking by hand
Switch to terminal 3 to see if it finishedagain
Scan four panes for a permission prompt11 min
Work out which folder is which sessiondaily
Pay for a menu bar suite to get one lightmonthly
With Perch
$ open Perch.app
  • Agent state at a glance, in colour
  • Allow or deny from the notch
  • Your herdr session names
  • 0.0% CPU at idle
  • Mac App Store and notarized builds
  • Reduced Motion turns every pulse still
No account and no API key
Built to stay on screen

Quiet enough to leave running all day

Perch sits above everything you do, so it has to cost nothing when nothing is happening and stay out of the way when something is.

0.0%
CPU at idle. The ripple is a keyframe list handed to the render server once, not a timer redrawing the screen 120 times a second. A first build cost 10%.
Rest in the bar, a card on hover, the list on click. Token counts, tool names and quotas all exist, and all of them live one level down.
From the Perch design rules
5×5
Dots, with a wave measured off a 60fps screen recording
2.8s
For the wave to cross the grid and come back
Sandboxed
No home-directory access, Apple Events or Accessibility in the App Store build
No admin
Installs to ~/Applications on a managed work Mac
Get Perch

One island, two builds

Free for 7 days, then $14.99 once. No subscription, no account. The direct build also picks up the features the App Store sandbox cannot reach.

Mac App Store
Sandboxed

Installs and updates through the App Store. The build for a work Mac that only allows store apps.

  • Claude Code and Codex status
  • Allow and deny from the notch
  • No home-directory access
Coming soon to the Mac App Store
Direct · notarized
Full build

Signed with Developer ID, notarized and stapled, so Gatekeeper opens it without a warning.

  • Everything in the App Store build
  • Features the sandbox blocks, as they ship
  • Installs to ~/Applications without admin
Download for macOS Buy a license · $14.99
Notarized by AppleNo account
Homebrew
Cask

For Macs you set up from a Brewfile. The same notarized build as the direct download.

  • Same build as direct download
  • Upgrades with the rest of your casks
  • Scriptable for new machines
Coming soon

Put your agents in the notch.

Download Perch, start a Claude Code turn and look at the top of your screen.

Download for macOS Coming soon to the Mac App Store