Every Codex conversation, one click away.
Perch keeps every Codex session on your Mac in the menu bar, the desktop app’s and the CLI’s. Click a Desktop one and the app opens that exact conversation.
Codex Desktop with Perch
- Lands on
- The exact conversation
- How
- Codex's own codex:// link
- Permission
- None
- Needs
- The Codex desktop app
- CLI sessions
- Their terminal pane
How the jump works
Codex has a link for every conversation
The conversation, not the window
The desktop app answers a codex://threads link by opening that thread. Perch uses the session's own thread, the one you started, rather than one of the helper agents working under it.
Known from Codex's own records
Codex writes down where each session came from. Perch reads it from the session's record and from its first hook event, so a Desktop session can be opened from its first moments, not only after a later scan.
Checked before it's opened
The thread id comes from a file Codex writes in your home folder, so Perch accepts plain hex and dashes only, and builds the link itself. An edited file can't turn a click into some other link.
On the row
Desktop and CLI, side by side
Labelled, every row
Each Codex row says whether it's the desktop app or the CLI, so you know before you click whether you're opening a conversation or a terminal pane.
Only your conversations
The desktop app runs short background threads of its own. Perch leaves them out, so they don't show up as extra idle Codex rows, some of them labelled “/”.
One strip of usage
The desktop app and the CLI share your account, so they share one set of rate-limit bars, your plan label and your credit balance in the strip.
How approving from your iPhone works, and every alert Perch can send you.
Worth knowing
The conditions, named
No app, no conversation
Perch only opens the link when macOS has an app to hand it to. Without the desktop app installed, a click shows the project's folder in Finder instead.
A session with nothing to open
A Desktop session that never wrote a conversation, like the app warming up a plugin, has no thread to open, so a click shows its folder. That's correct rather than a miss.
Codex in an editor isn't sent the link
Codex sessions started from another app, such as an editor extension, never get the desktop link, so a click can't open a conversation in the wrong app.
Claude Desktop raises the app
Claude Desktop has no link that focuses a running conversation: the one that exists imports a copy as a new one. So Perch brings Claude Desktop forward and goes no further.
Pay once for the fleet. Subscribe for the conversation.
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
- Perch Pro is separate — each teammate who wants it subscribes in the iPhone app
Pro
Most popularor $29 a year
Launch price until 15 November, then $49 a year
- 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*
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 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. Each agent’s own page says exactly what it supports, and what it doesn’t.
Questions
Codex Desktop and Perch, specifically
Does Perch work with the Codex desktop app?
Does clicking open a new conversation?
Do I need to give Perch any permission?
What can Perch do for Codex beyond the jump?
Perch lands precisely in Warp, iTerm2, Rex, Ghostty and Terminal.app too, and inside tmux, herdr and Zellij. Every terminal Perch supports.