Patch into one window.

Every agent CLI on your Mac, running as a live terminal, routed to the project it works on.

Try it in the playgroundmacOS app · coming soon

Coming soon · Patchbay is not yet available to download

Pro is $5/month and not open yet

Apple silicon · macOS 13+ · nothing leaves your Mac unless you sign in or check for updates

patchbay~/code/patchbay

drag a cable from an agent onto a project

⌘⇧DPatching Claude Code into patchbay — its own process group, its own worktree.Working
// runs the CLIs already installed on your Macclaudecodexgeminicursor-agentdeepseekollama$SHELL
the window, one part at a time

It builds itself
as you scroll.

Four parts. Scroll through them, or click a part to jump.

patchbay 4 agentsStop all+ Terminal
Migration 0031
14 / 18 tables
Limit resets
2h 41m
Bundle
312 kB −18

~/code/patchbay
no terminals yet

Claude Codepb/claude-widgetsWorking
✱ Drafting the refresh scheduler… ⎿ Read service/widgets.rs (412 lines) ⎿ Edit service/refresh.rs (+86 −12) ⎿ Bash cargo test -p patchbay-core 36 passed · 0 failed>
CodexNeeds approval
reviewing the diff+ CREATE TABLE IF NOT EXISTS+ widget_runs(id TEXT PRIMARY KEY, …? Apply this change? [y/n]
GeminiWaiting
✔ Rewrote the widgets READMEAnything else before I stop?>
ShellExited
❯ pnpm verifylint · typecheck · clippy✓ 1081 tests passed
part 1 of 4
playground

Try it here.

Spawn terminals, add widgets, insert a snippet. The real interface, with sample output — no agent is started, nothing runs on your machine.

// play an arrangement
patchbay
Installed on this Mac
0 panes · 0 widgets

~/code/patchbay
no terminals yet — start one above

↵ insert
Fix PR conflicts

Resolve the merge conflicts in the most recent PR, run the tests, and push the fix.

Ship itsends

Commit all changes, push to a new branch, and open a PR.

Start next task{{ }}

Pull main, create feature/{{task}}, and start on it.

Review this diff

Read the diff on this branch and list what would break in production.

Write the tests

Add tests for the code you just changed, and run them.

An empty window and a folder. Start an agent — nothing here runs for real.
task handoff

One agent stops.
The next one picks it up.

A limit, a finished plan, a dead end — hand the task over instead of retyping it.

  • Drafted from facts. Task, folder, branch, log path. Never from the screen.
  • You press Send. No timer, no status, ever starts an agent.
  • Or into a new worktree — fresh branch, uncommitted work carried across.
demo · handoff
Claude Code
plan · work account
Waiting
Codex
review · default
Not started
Claude Code was working on: widget refresh scheduler (ADR 0030)Its log: ~/Library/Logs/…/0f3a.logRun git status and git diff in the worktreebefore you change anything.
Minimize the sourcenever automatic
Claude is waiting on you. Its task is still in the pane.
accounts

Two logins.
Same agent. Same window.

One config directory per account, handed to the CLI as one variable at launch.

  • You log in, in the terminal. No credential is ever read or copied.
  • Labels and paths only, in a 0700 directory of Patchbay's own.
  • Switching restarts the pane — and offers to hand the task across.
demo · switch account
Claude CodeWorkPersonal
CLAUDE_CONFIG_DIR→ ~/Library/Application Support/…/accounts/claude/2f
Running as Work.
voice dictation

Hold a key.
Say the task.

Long prompts are faster spoken. Hold ⌘⇧D, talk, let go.

  • Entirely on this Mac. Recognition and clean-up both run on-device.
  • Off until you turn it on. No key monitor, no microphone asked for.
  • It never submits. The text waits in the prompt. Esc cancels.
demo · dictation
⌘⇧Dheld down

Armed. Hold the key to dictate.

Look at the widget refresh scheduler andtell me why a run outlives its workspace.▌
Off by default. No monitor installed, no microphone asked for.
snippets

Stop retyping
“commit, push, open a PR”.

One prompt library for every workspace and every agent. ⌘P, pick, done.

  • Works across CLIs, and writes into none of their folders.
  • Fill in the blanks. {{task}} is asked for as it inserts.
  • Arrives as one block, never ten half-submitted lines.
demo · ⌘P
p r⌘P
Fix PR conflicts

Resolve the merge conflicts in the most recent PR, run the tests…

Ship itsends

Commit all changes, push to a new branch, open a PR…

Start next task{{ }}

Pull main, create feature/{{task}}, and start working on…

Claude CodeWaiting
✔ Pushed 3 commits · nothing left to do> Resolve the merge conflicts in the most recent PR, run the tests, and push the fix.
Focused pane: Claude Code, waiting.
custom widgets

Let the agents
keep score.

A strip under the toolbar, set up per project, filled by the agents themselves.

  • Fourteen types, each with a full card and a compact chip.
  • Read-only. A widget shows its value. It cannot touch a pane.
  • Refreshed on a schedule, if you ask — a headless turn in its own process group.

Pick a type — the card beside it is the real one, with example data.

demo · progress bar
Full card
Compact chip

One 30 px chip when
the strip is collapsed.

The value is kept on this Mac, and survives a restart.

Empty. Nothing to show until an agent reports.
the rest of the panel

What else is wired in.

Git worktrees

Its own branch, its own checkout, on your confirmation.

Workflows

Claude plans, Cursor builds, Codex reviews. Saved, reusable.

Delegation

A planner asks for an executor. You press Start.

Status worth trusting

From each CLI's own hooks. A word and a shape.

Local models

Ollama as a pane, and for Patchbay's own background work.

Light and dark

Both first-class, down to the terminal palette.

pricing

Free to start. Pro when you grow.

Two plans. Pro is $5 a month, billed monthly, with a 30-day free trial that starts when you create a Patchbay account. A trial needs an account; signed out, you stay on Free.

  • Free

    $0

    • All agents, git worktrees, task handoff, local models and themes
    • A Patchbay account
    • Up to 3 terminals per workspace and 3 workspaces
    • Keeps the 3 starter snippets
  • Pro

    $5 / month

    Monthly only. 30-day free trial.

    • Everything in Free, plus:
    • Widgets and workflows
    • Creating new custom snippets
    • Voice dictation
    • Up to 16 terminals per workspace and unlimited workspaces

    Upgrading is not open yet.

Downgrading never deletes anything. Your workspaces, workflows and snippets stay.

Nothing leaves your Mac unless you sign in.

non-negotiables

Your workflow stays yours.

Six promises about your machine, your files and your keys — written as invariants the build enforces, so a violation blocks the commit rather than shipping.

I-1

Never orphan a process

SIGHUP to the whole group, two seconds, then SIGKILL.

I-6

No network, unless you opt in

Strict CSP, no analytics, no remote fonts. Two exceptions: an opt-in check against GitHub for new versions, and signing in to a Patchbay account. No sync, no telemetry.

I-7

No secrets, no output, stored

Terminal output lives in memory only. Logs carry ids and timings.

I-8

Your files are read-only

Except a git worktree you asked for. Nothing else is written.

I-2

⌘-only shortcuts

Ctrl, Esc, Option and plain keys always reach the terminal.

I-3

Your real login shell

$SHELL -l -i — your PATH, your version managers, your aliases.

Give your agents
one window.

Patch them in.

Try it in the playground
A dark room: one desk, one display running Patchbay, someone in an armchair facing it. A cable drops from the button above into the display, and each pulse down it patches another agent into the window.
4 agents patched · one display · one windowmacOS app · coming soon

Coming soon · Patchbay is not yet available to download

Pro is $5/month and not open yet

Apple silicon · macOS 13 and later · nothing leaves your Mac unless you sign in or check for updates