Every agent on its own branch
Run as many agents as you like on one repo. Every chat gets its own Git worktree and branch, so they never step on each other's files. Mission Control shows them side by side and flags the one waiting on you.
Claude Code, Codex, Cursor, and OpenCode, running as one team in one window.
bridge-harness · feat/worktree-lifecycle
Their write scopes overlap, so each worker gets its own worktree rather than sharing yours.
A branch and a checkout of its own, cut from the task worktree.
.worktrees/worker-2f9a · feat/usage-rollups · main @ 8d0babeAdopt merges this worker's changes into your workspace. Discard deletes them.
Bridge drives the agent CLIs you already pay for.
And many more harnesses coming soon.
Run as many agents as you like on one repo. Every chat gets its own Git worktree and branch, so they never step on each other's files. Mission Control shows them side by side and flags the one waiting on you.
Change model or provider inside one conversation, Codex to Claude Code to Cursor, without starting over. The provider session restarts; your history stays where it is. Nobody else lets you do this.
When an agent needs a site you're logged into, it asks. Approve it and the agent drives a throwaway copy of your session: it can click through a deploy preview or a dashboard, and you can take over at any point. The copy is thrown away when the turn ends.
Every message, plan, tool call, and delegation lands in a local log that only ever grows. When the context window fills, Bridge compacts the model's view and leaves the log alone, so a restart picks up from a verified checkpoint instead of a blank page.
Tests run first. Then a reviewer from a different model family has to sign off, and a review from the family that wrote the code is thrown out. Claude's work gets checked by Codex, and the other way round.
Preferences, decisions, and constraints get saved as you work and come back in any later chat, whichever agent is running and whichever repo it's in. Every reply shows which memories it used.
Narrow work goes to a cheap tier and only the hard parts reach an expensive one. Tokens, cost, and cache savings break out per harness and per model, so the routing pays for itself visibly.
A native desktop control room for supervised coding-agent work. It connects local Git repositories to structured Codex, Claude Code, and OpenCode sessions, isolates concurrent tasks in worktrees, and keeps durable local history so agent activity stays inspectable and recoverable.
Bridge does not embed a provider terminal UI. Each provider's native process and event protocol is translated into one event model and rendered as structured UI. Work is isolated per worktree, delegation passes through a policy engine, and history survives a restart.
Codex, Claude Code, and OpenCode. Each adapter reports its availability and capabilities before a session starts, and a missing CLI shows that adapter as unavailable instead of blocking startup.
You bring your own provider access. Bridge never collects, proxies, migrates, or deletes a vendor credential. Claude models additionally need Node 18 or newer on your PATH, because Claude runs through the Agent SDK in a Node sidecar.
The download page has macOS (Apple Silicon) and Linux (x86_64) options. Each button opens the latest stable package when available, or the release page if that platform has not been published yet. Check the release notes for requirements and known limitations.
Yes. Bridge is MIT licensed, so you can read it, fork it, and ship your own build. Third-party code inside it keeps its own terms.
Bridge's append-only local conversation store. Each entry has an immutable identity, a parent entry, a semantic event kind, and visibility rules for context projection. It is local history rather than a tamper-proof or replicated evidence ledger.
Capability availability, write scope, worktree isolation, concurrency, delegation depth, retry limits, per-turn budgets, and approvals. Routing and learning may rank the candidates it already allows, and nothing else may widen a permission.
Yes. A daemon owns the data directory and speaks newline-delimited JSON-RPC over a Unix socket, and the bridge exec --json one-shot attaches to it for a single call or one turn streamed as JSONL events.
In a local data directory owned by exactly one daemon, with the session forest in SQLite. Database paths, snapshots, adapter availability, and runtime health are all visible in the in-app health view.