Start · Your account · The track · Dashboard · AgentBench · Docs
AgentBridge is a control tower for AI coding agents. It plans the work, hands each task to the right agent, keeps every agent on its own branch, checks the result itself, and then stops at a red signal until you say go.
The three rules
|
|
|
|
And one honest question: does multi-agent collaboration actually beat a single agent? AgentBench exists to measure it, not to assume it.
Start in a minute
pip install agentbridge-core # the agentbridge command
pip install agentbridge-bench # optional: AgentBench (installs agentbridge-core too)
AgentBridge ships as two packages:
| Package | Command | What it is |
|---|---|---|
agentbridge-core |
agentbridge |
The orchestrator you use day to day. |
agentbridge-bench |
agentbridge-bench |
AgentBench, the evaluation harness. Installs agentbridge-core too. |
From source (for development)
git clone https://github.com/yoonjae26/AgentBridge.git
cd AgentBridge
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]" -e packages/agentbridge-bench
Then, inside any git repository with at least one commit:
agentbridge init # writes agentbridge.yaml
agentbridge providers check # who is on duty?
agentbridge run "Add a hello() function" --provider mock
agentbridge report <task_id> # what changed, what passed
agentbridge tasks approve <task_id> # green signal: merge
The built-in mock provider needs no account. Requirements: Python 3.12+, Git 2.38+.
Bring your own account
On your machine. Install Claude Code,
run claude once and log in with your account (or set ANTHROPIC_API_KEY). Then
agentbridge providers check should show claude … available, and --provider claude
does the rest. AgentBridge only checks that credentials exist; it never reads or
stores them.
In a locked-down container (recommended for untrusted tasks)
The container sees only the task worktree: no ~/.claude, no home directory, no other
environment variables. The root filesystem is read-only, all capabilities are dropped,
and the container is deleted after each run.
- Build the image (Docker; on Windows, Docker inside WSL works):
docker build -t agentbridge-claude:latest -f examples/container/Dockerfile.claude examples/container
- Create a token for your account with
claude setup-token. Anyone holding it can spend your quota, so treat it like a password. - Keep it in the current shell only, so it disappears when the window closes:
$env:CLAUDE_CODE_OAUTH_TOKEN = Read-Host -MaskInput "Claude token" # PowerShell
read -rs CLAUDE_CODE_OAUTH_TOKEN && export CLAUDE_CODE_OAUTH_TOKEN # bash / zsh
- Switch it on in your local
agentbridge.yaml(the token never goes here):providers: claude: container: enabled: true command: [docker] # Windows + WSL: [wsl, docker] token_env: CLAUDE_CODE_OAUTH_TOKEN # or ANTHROPIC_API_KEY
If Docker or the token is missing, AgentBridge refuses to run instead of falling back to the host. Full privacy model: docs/security.md.
The track
Every objective travels the same line. The only stop that needs a human is the one that matters.
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#0B1220','primaryTextColor':'#E8EDF7','primaryBorderColor':'#5E6E8C','lineColor':'#8A94A6','fontFamily':'ui-monospace, Menlo, Consolas, monospace'}}}%%
flowchart LR
O([objective]) --> P[PLAN<br/>task graph]
P --> R[ROUTE<br/>capability match]
R --> I[ISOLATE<br/>worktree per task]
I --> V[VERIFY<br/>lint · types · tests · review]
V -->|pass| A{{YOU APPROVE}}
V -->|fail| F[stopped]
A -->|approve| M[MERGE]
A -->|reject| K[branch kept]
classDef signal fill:#FFB000,stroke:#FFB000,color:#0B1220,font-weight:bold
classDef go fill:#3DDC97,stroke:#3DDC97,color:#0B1220
classDef stop fill:#2A1620,stroke:#E5484D,color:#FFB4B8
class A signal
class M go
class F stop
| Station | What happens |
|---|---|
| Plan | The objective becomes a dependency graph (single, standard, or an agent-written JSON plan). |
| Route | Each task goes to a provider that declares the capability it needs: mock, Claude Code, Google Antigravity (manual handoff) or any CLI agent. |
| Isolate | One git worktree and branch per task. Overlapping edits and merge conflicts are detected before they hurt. |
| Verify | Diff, scope, Ruff, Mypy, Pytest and a heuristic review, optionally in a no-network Docker sandbox. |
| You approve | tasks approve / tasks reject, from the CLI or the dashboard. |
| Merge | Only into a clean checkout on the right branch, after a conflict-free dry run. |
State machine
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#0B1220','primaryTextColor':'#E8EDF7','primaryBorderColor':'#5E6E8C','lineColor':'#8A94A6'}}}%%
stateDiagram-v2
direction LR
[*] --> PENDING
PENDING --> READY: dependencies done
READY --> QUEUED
QUEUED --> RUNNING
RUNNING --> QUEUED: retry
RUNNING --> VALIDATING
RUNNING --> INTERRUPTED: process lost
VALIDATING --> WAITING_FOR_APPROVAL
VALIDATING --> FAILED
WAITING_FOR_APPROVAL --> INTEGRATING: approve
WAITING_FOR_APPROVAL --> CANCELLED: reject
INTEGRATING --> SUCCEEDED
INTERRUPTED --> VALIDATING: resume (work found)
SUCCEEDED --> [*]
Invalid transitions are rejected in code, and every change is stored as an event.
Dashboard
pip install "agentbridge-core[dashboard]" # FastAPI + Uvicorn
agentbridge dashboard # http://127.0.0.1:8765/
A local control room with live updates: task counts and the approval queue, run plans and dependency graphs, coloured diffs, failing validation output, tokens and estimated cost, and Approve / Reject / Cancel behind a confirmation. Localhost only; every action needs a per-session token. More.
AgentBench
Does multi-agent collaboration improve software-engineering task completion compared with a single agent, and when?
12 deterministic tasks across 8 categories: bug fixing, features, refactoring, test
generation, docs, code review, dependency updates and repository analysis. Acceptance
tests stay hidden from the agent until it has finished. Published as the
agentbridge-bench package; agentbridge benchmark … runs
the same commands once it is installed.
agentbridge-bench run smoke -c mock-oracle -c mock-noop # free harness check
agentbridge-bench run core -c claude-single -c claude-multi -n 3
| Harness control | Runs | Success |
|---|---|---|
mock-oracle writes the reference solution |
12 | 100 % |
mock-noop changes nothing useful |
12 | 0 % |
antigravity-remote manual handoff |
0 of 12 executable | n/a |
Pilot · bugfix-002 · n = 1 |
Hidden tests | Time | Est. cost |
|---|---|---|---|
claude-single |
5/5 | 14.9 s | $0.37 |
claude-multi analyst → developer → reviewer |
5/5 | 74.7 s | $0.75 |
Use it from your coding agent
The free AgentBridge skill teaches Claude Code (or any agent that supports Agent Skills) to delegate work through the CLI, read the JSON report and hand you the approve / reject decision. It never approves on its own.
Status
Working · CLI · SQLite state machine · mock and Claude Code adapters · worktree isolation · validation engine · approval-gated merge · retries and recovery · Alembic migrations · Docker validation sandbox · dashboard · AgentBench · 178 tests
Partial · Antigravity (manual handoff) · generic CLI adapter (user-declared capabilities) · Claude in a container (unit-tested, not yet run end-to-end)
Planned · dedicated Codex / OpenCode adapters. See the roadmap.
Docs
| Start | Understand | Configure |
|---|---|---|
| Installation | Architecture | Configuration |
| Examples | Task lifecycle | Providers |
| Troubleshooting | Security model | Capability matrix |
| Dashboard | Benchmark method | Roadmap · Releasing |
Repository layout
src/agentbridge/
├── cli/ commands, output, exit codes
├── config/ validated agentbridge.yaml
├── core/ orchestrator, planner, router, events
├── agents/ adapter contract: mock, claude, antigravity, generic_cli
├── tasks/ models, state machine, dependencies, recovery
├── storage/ SQLite (WAL) + Alembic migrations
├── workspace/ worktrees, diffs, conflicts, approval-gated merge
├── validation/ test / lint / type runners, diff review, sandbox
├── security/ policies, command allowlist, secret redaction
└── dashboard/ FastAPI server + prebuilt React UI
packages/agentbridge-bench/
AgentBench (agentbridge_bench): runner, metrics, reports, CLI
benchmarks/ tasks, configurations, published reports
dashboard/ React + TypeScript source
Contributing: make install sets up both packages; make check runs Ruff, Mypy (strict) and Pytest. Read
CONTRIBUTING.md and the Code of Conduct;
report vulnerabilities privately via SECURITY.md. Licensed under
MIT.
AGENTBRIDGE · built by yoonjae26
Agents propose. You approve.
Metadata
Release files for agentbridge-core 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| agentbridge_core-0.1.1.tar.gz | 245.3 kB | With provenance | Details for agentbridge_core-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| agentbridge_core-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for agentbridge_core-0.1.1-py3-none-any.whl |
Total release size: 405.2 kB
Release files / agentbridge_core-0.1.1.tar.gz
| Download URL | agentbridge_core-0.1.1.tar.gz |
|---|---|
| Size | 245.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
97c9a977fa4e889eb91cbefe3d1f173f1cd30f3a5d1dd0122f6892534ee7c5d4
|
|
BLAKE2b-256 checksum How to use checksums |
63d283d62dc9047b4ec68999be1471987abe59cd0238d74e324bc1453dc5cc7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 8, 2026.
Transparency logRelease files / agentbridge_core-0.1.1-py3-none-any.whl
| Download URL | agentbridge_core-0.1.1-py3-none-any.whl |
|---|---|
| Size | 159.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
122e524aa92c34e35928d31948f3568b6aeb237816ba472d8810894ae33edc99
|
|
BLAKE2b-256 checksum How to use checksums |
366e5893b6077eba343ffd839eb047753cc4694f4cd3acc9fdf728f680b87718
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 8, 2026.
Transparency logSecurity for agentbridge-core 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for agentbridge_core-0.1.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 8, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.