Every CLI agent,in one window.

AgentRelay is a native macOS workspace. Codex, Claude Code, GitHub Copilot CLI, Pi, Hermes and your own CLIs run side by side on one canvas, with an editor, a Git client, a browser and notes in the same window. Quit the app and the agents keep working.

Download for macOS

macOS 14 or later · Apple Silicon (arm64) · free

Version 1.1.20 · build 44 · published

A demo with a fictional project. The status in each window header shows who is working and who has finished; clicking a path in the output opens the file in the editor at the right line. On the right is the experimental Supervisor.

Ready out of the box Codex Claude Code GitHub Copilot CLI Pi Hermes and your own CLI

A terminal that understands agents.

Every window is a real terminal with true color and your font. Around it is what you miss when agents live in Terminal or iTerm tabs.

See who is working and who has finished

AgentRelay watches each agent’s screen and labels its window: Working while it thinks or runs commands, Idle or Done when it is waiting for you. It observes activity; it does not verify the result.

Activity timeline

Coloured bars show when each agent was working: ranges from 5 minutes to 24 hours, with the total time on the right. The history is stored locally and survives a restart.

Paths in the output are clickable

A path, a file:// link or an OSC 8 link opens in the built-in editor at the right line and column, next to the agent on the same canvas.

One prompt, several agents

⌘-click window buttons to pick recipients, and Message sends them all the same text. A multiline field, a history of up to 100 prompts and recall with ↑ and ↓.

Drop images in

A screenshot or several images from Finder become quoted paths. Spaces in file names break nothing.

A path bar and chat export

Click to copy the working folder path; double-click to open a new terminal there. For Codex, Claude Code and Copilot CLI you can copy the whole chat from their logs or open it in the editor.

Scrolling and selection

The wheel scrolls terminal history, tmux history or goes to the CLI itself: set it per CLI and per window. A selection follows the pointer past the window edge and copies exactly.

Your font, your colors

The bundled Iosevka or any monospaced font; ⌘+ and ⌘− resize text everywhere. Five palettes, nine editable colors, light and dark themes, transparency and blur.

Quit the app. The agents keep working.

Each agent lives in its own tmux session, not inside the window. AgentRelay only attaches to it, so after a restart the cards return to their places and show the same processes again.

tmux is already inside. No separate install: AgentRelay ships its own build for Apple Silicon.

The honest limits. Restarting the Mac ends the agent processes, and the card offers to start the CLI again. Plain terminals reopen a fresh login shell in the same folder after a restart.

Order on the canvas in one click.

Windows snap to the canvas edges and to each other, and a shared edge drags both neighbours at once. There are five layouts on the toolbar; pressing one again reverses the order. Groups of windows can live in named workspaces.

An editor and Git next to the agent.

Review the agent’s work without leaving the window: files open on the same canvas, and the Git panel shows the history and diff of the active window’s project.

Editor and Quick Open
Syntax highlighting, ⌘S, find in file and markers for uncommitted lines. ⌘P finds a file by name in the project. Unsaved changes and files modified elsewhere never get overwritten silently.
History, graph and blame
A commit graph with branches and tags, filters by author, text, path and date, file history, blame, and diffs with 3, 10 or full context.
Staging down to the line
Stage and unstage a file, a hunk or single lines. Commit and amend; Git hooks run and errors stay visible.
Branches, remotes, stash
Branches and tags, fetch, pull (fast-forward only), push, stash, merge, rebase, cherry-pick, revert and reset, with confirmation for risky steps. No force push.
Conflicts and worktrees
The conflict inspector shows the base and both sides; resolve in the editor or by picking a side. A worktree is created from the panel, and an agent session can start in it right away.
Review together with the agent
Capture a baseline before a task and see what changed afterwards. The panel drafts a review request, a commit explanation or conflict help: it lands in the composer, and you send it.

Pull requests, GitHub comments and CI are not built in. This is a local Git client and a light editor, not an IDE: there is no autocomplete and no debugger.

A browser, files, notes and tickets alongside.

Side panels do not multiply windows, and their state is stored with the workspace.

Browser ⇧⌘B

Tabs, an address bar and saved sign-ins to the right of the canvas. An agent can drive tabs only with a separate permission, and a banner and a Stop button show while it does.

No extensions, ad blocking or password manager.

Files ⇧⌘E

A tree and a quick list of the project folder: type filters, Git badges, previews and Quick Look. Rows can be dragged into a terminal.

View only: files are not created, renamed or deleted.

Notes ⌥⌘N

A mini notepad: global, workspace and project notes kept in plain text files.

Plain text, with no formatting or search.

Tickets

A Notion database or Jira Cloud: the sprint and the backlog next to the code, with status changes from the panel.

Connect with your own Notion token or a Jira sign-in.

Experimental feature

Supervisor: a plan, executors, independent review.

Describe a goal in the Supervisor chat and it proposes a plan of stages. You approve the start, executors work in separate worktrees, and a reviewer independently checks the exact commit. On by default; turn it off in Settings → Supervisor.

  1. Goal

    Describe the task in the chat or with the /plan command.

  2. Plan

    Stages, criteria, roles, CLIs and dependencies are visible before anything starts.

  3. Approval

    Nothing starts without your confirmation, and an approved plan is frozen.

  4. Execution

    An executor is an ordinary window on the canvas, usually in its own worktree.

  5. Review and Verified

    A separate reviewer checks exactly that commit. Up to three fix cycles, then it calls you.

16 fixed roles
Executors (Executor, Architect, Designer, Investigator, Writer and more) and checkers (Reviewer, Design reviewer, Security reviewer, Acceptance tester). A role can have its own CLI, model and effort.
Verified means evidence
An agent’s report proves nothing by itself: the app checks the commit against the criteria, runs the verification command itself and requires an independent review.
A “Waiting for you” list
Everything that needs you sits in one list and counter; when AgentRelay is not frontmost, you get a notification.
Pull request handoff
When a task is Verified and its report links a draft PR, the app can mark it ready for review through gh. It never merges.
Managed backendsexperimental
Optionally, executors and reviewers run through the CLI’s own protocol instead of a terminal: Codex App Server, Claude stream-json, Copilot SDK RPC, Pi RPC, Hermes ACP.

The honest limits. Supervisor is experimental: the quality of the split into stages depends on the model, a worktree is not a sandbox, and an executor’s permissions are set by its CLI. There is no automatic merge, no multi-repository plans and no scheduled runs.

Local automation for outside AI clients.

Off by default. Turn on Allow MCP access in Settings → Automation, pick one project, and a trusted client can create a limited number of agents and talk to them.

  • list_sessionsmetadata of the selected project’s sessions
  • create_sessionstarts the chosen CLI in the authorized folder; you see the window
  • send_inputtext plus Enter into a session created under this authorization
  • read_outputthe terminal tail, up to 16,000 characters

Driving the browser panel is a separate permission (Allow browser control); while an agent acts, the panel shows a banner and a Stop button.

  • Local only. The endpoint listens on 127.0.0.1 and is protected by a fresh token. The agentrelay-mcp bridge is already bundled, so you need no Python or Node.
  • Limits. Up to 4 created sessions and 256 accepted inputs per authorization; a retry with the same request_id is not duplicated.
  • Visible and revocable. Created agents appear on your canvas, and you can revoke access at any time.
  • What it cannot do. Stopping or closing windows, Git and editor writes are not open to an outside client; windows that were already running show up to it as metadata only.
  • Not a sandbox. MCP limits do not restrict what the CLIs themselves can do with files and the network.

Small things that save time.

When there are five agents and three branches, you need to find the right window fast and keep your context.

A bar of all windows
Every session, terminal and editor gets a button #number client project branch. Click it to bring a window forward and expand a minimized one.
Any CLI
A name, an executable, arguments and environment variables; built-in CLIs can be overridden too. AgentRelay looks for CLIs in Homebrew, npm, Bun, Cargo, Volta and asdf, and asks for a path if it finds none.
Switch the CLI or duplicate
Restart a window with another agent or in another folder without losing its place on the canvas. Duplicate opens a new session of the same CLI in the same project.
Named workspaces
Groups of windows with their own project folder: switch without stopping sessions, move windows between groups or open a workspace in a separate macOS window.
Frameless mode
⇧⌘F removes the frames of session and editor windows, leaving a clean canvas with small gaps.
Appearance and accessibility
Light and dark themes, VoiceOver labels, Reduce Motion support and help text on controls.

Everything from the keyboard.

The main shortcuts. The full list is in the app menus.

New session
⌘N
Quick Open
⌘P
Next window
⌃Tab
Window by number
⌘1–9
Canvas layouts
⌃⌥1–5
Git panel
⇧⌘G
Browser
⇧⌘B
Files
⇧⌘E
Timeline
⇧⌘T
Notes
⌥⌘N
Frameless mode
⇧⌘F
Settings
⌘,
AgentRelay icon: three terminal windows joined into one network

Three steps to your first agent.

A free native macOS app, signed and notarized by Apple.

Download for macOS

System requirements

  • Apple Silicon (arm64)
  • macOS 14 or later
  • Bundled tmux
  • Sparkle updates
  1. Download the archive

    AgentRelay-macOS.zip is a build for Apple Silicon (arm64).

  2. Move it to Applications

    Unzip the archive and drag AgentRelay into Applications. When a new version ships, the app offers to update itself.

  3. Pick a folder and start an agent

    Click New session, choose a project and a CLI. Install Codex, Claude Code and other agents separately; tmux is already included.

  • AgentRelay does not install the CLI agents or carry over their sign-in: each CLI is set up and updated on its own.
  • The app checks the signed Sparkle feed itself and offers to update; silent install is off by default.
  • MCP access and browser control by agents stay off until you turn them on yourself.