Free and open source. For Macs with Apple silicon on macOS 13 or later. Requires Claude Code.
Live demo · nothing runs on your Mac
Relay's Agents view: a Lead, two workers and Scout in a grid of terminal panes, each worker in its own git branch. Type into any prompt and that agent answers.
Click into any pane and type. Or try one:
Claude Code
Codex
Gemini CLI
Cursor Agent
Any shell
Watch one goal become a team.
Try it: give the lead a goal, watch it split the work into tasks, then run the workers. Everything waits for your review.
Give the lead a goal. It plans tasks and starts a worker in a fresh worktree for each one.
Review and merge. Read every diff, merge what's good, discard the rest.
Built for the way agents really work.
Every pane is a real terminal running the agent's own CLI, so Claude Code keeps your login and your subscription. Relay adds what's missing around it: a plan, a place for each worker, and the final say for you.
16agents and shells in one grid, each showing if it's working, idle or needs you.
4agent CLIs out of the box: Claude Code, Codex, Gemini and Cursor.
1git worktree for every worker, so no two agents edit the same files.
0API keys. It drops them before an agent starts, so you stay on your plan.
Why not just open a few terminals?
You can run Claude Code in a few tabs, and it's the same agent in Relay. The difference is what happens between the tabs.
Several terminalsRelay
Files
Several terminalsEvery session edits the same folder, so one agent can overwrite another's work.
RelayEach worker gets its own git worktree and branch, so they never clash.
Planning
Several terminalsYou split the work and brief each tab. The sessions don't know about each other.
RelayA lead agent splits a goal into tasks on a shared Board and starts a worker for each.
Talking
Several terminalsYou copy and paste between tabs.
RelayAgents message each other or read each other's chat. Messages are signed, show in the pane, and are rate-limited.
Status
Several terminalsYou click through tabs to see who's done.
RelayOne grid shows who's working, idle or needs you, and a notification tells you when one does.
Review
Several terminalsYou find each branch and diff it yourself.
RelayEvery worker's diff is in one Review tab. You merge or discard.
Cost
Several terminalsYou run /cost in each session.
RelayEach Claude pane shows its context and cost so far. Spend keeps the history.
Who did what
Several terminalsYou keep track in your head.
RelayThe Graph shows who started whom and who messaged whom.
The agent
Several terminalsThe claude CLI with your login.
RelayThe same claude CLI with your login and plan. Nothing new to learn.
For one quick job on its own, a single terminal is fine. Relay pays off when several agents work on the same project.
Plan. Build. Review. Merge.
One window for the whole loop, from a goal to code on your branch.
Lead agent and Board
Give it a goal. Watch it split the work.
The lead writes tasks on a shared board and starts a worker for each one. Agents comment on their cards and move them to Review when they're done.
To do 2
Claude Code⑂ search
Codex⑂ order-email
In progress 2
Claude Code⑂ wishlist-ui
Claude Code⑂ wish-tests
Review 1
Claude Code⑂ wish-api
Done 1
Gemini CLI⑂ rounding
Drag a card to a column, or click it and then a column. Arrow keys move a focused card.
Graph
See who's doing what, live.
Every agent is a node. Lines show who messaged whom and who started whom, and new messages travel along them. Drag one around, or click it to read its terminal.
MessagesStartedDrag a node · click for its terminal
read only
Spend
Know what every day cost.
Your Claude Code use at API list prices, with 35 days of history and a breakdown by model, hour, project and session.
Today$13.58217 replies
This week$45.29
This month$119.73
Today · $13.58
Today by token type
Input$0.03
Cache write$7.25
Cache read$2.26
Output$4.04
Sample data · estimated at API list prices
Artifacts
The pages your agents make, kept.
Reports, checklists and charts land in one place. Sort them into folders, open them in a browser, or publish one to GitHub Pages in a click.
Relay runs on your Mac. Beyond the agents you start, it only reaches GitHub: to check for a new release, and to publish a page when you ask.
Local only
The server listens on 127.0.0.1. Every request needs this install's secret and must come from Relay's own page.
A key per agent
Each agent gets its own token that only reaches its board tools. The master secret never goes in its config.
You stay in charge
Agents start in "Ask me" mode. A lead can't type into or stop others without your OK, and merging always asks.
The Mac app uses the hardened runtime, with Electron's run-as-Node and inspector switches turned off. One honest caveat: an agent with shell access runs as you, so it can read what you can. Real isolation would need a separate macOS user.
Where it stands.
What's stable, what's still settling, and what's next. The full list is in the README.
Token meter on each Claude pane, workers on Sonnet (since 1.8.3)
Release builds on GitHub Actions, with a signed attestation (since 1.9.0)
Experimental
Lead upkeep: auto-compact and hand-over (off by default)
Voice input (Mac app only, on-device)
Codex, Gemini CLI and Cursor Agent panes (no board tools yet; Gemini and Cursor untested)
Task Notes link (needs the Task Notes app)
Browser version, npm start
Planned
Apple notarization (no date yet)
Hooks that tell the lead when something is done, like a PR merging
A Windows app
Questions? Answers.
What do I need to run it?
A Mac with Apple silicon on macOS 13 (Ventura) or later, and Claude Code installed and signed in. Codex, Gemini CLI and Cursor Agent are optional: install any of them and they show up in the New menu. They run in their own panes with your own logins, but only Claude Code agents get the board's tools.
How is this different from a few Claude Code terminals?
It runs the same claude CLI, with your login. What it adds: a git worktree for each worker, a lead that plans on a shared Board, agents that can message each other, one grid for status, one Review tab for every diff, and cost per pane. For one quick job, a single terminal is fine. See the comparison.
How do I know the download is safe?
Check its SHA-256 against GitHub's, look at how it's signed, and compare the app's code with the source at that version. The verify guide has every command, and what we found when we ran them on 1.8.2.
Does it need an API key, or cost anything extra?
No. Relay is free and MIT-licensed, and agents run in real terminals with your own CLI logins, so Claude Code uses your normal subscription. The Spend view shows what the same work would cost at API prices, so you can see where it went.
macOS says Relay can't be opened / not verified
That's expected on first launch. Relay is open source and unsigned, because it isn't enrolled in Apple's developer program yet, so macOS can't verify who made it. Either of these fixes it:
Click Done, open System Settings → Privacy & Security, scroll down and click Open Anyway next to Relay, then confirm.
The board, settings and secret are in ~/Library/Application Support/Relay (or …/Agent Desk if you used Relay when it was called Agent Desk). Agent worktrees and screenshots go in .agent-desk/ inside each project, which is kept out of git.
How does it update?
The version pill next to the logo checks GitHub releases. When a newer one is out it says Update, and one click downloads the new .dmg to your Downloads folder.
Can I build it myself, or run it on an Intel Mac?
You can build it yourself: clone a release tag, then run npm ci and npm run app. npm start runs it in your browser instead, and npm run dist builds a .dmg. Build it yourself has the exact steps. There's no Intel download, and building on an Intel Mac hasn't been tested.
Get Relay.
Open a repo. Give the lead its first goal. Review what comes back.