Skip to main content

AgentBridge: Agents propose. You approve.

tests ci python mypy license

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

01 The agent never merges.
Every task lives in its own git worktree. Nothing reaches your branch until you run tasks approve. No force-push, no reset, no deleted branches, ever.

02 "Done!" is not evidence.
AgentBridge runs lint, type checks, tests and a diff review itself, and can lock those checks inside a Docker sandbox with no network.

03 A crash is not a restart.
Every transition is written to SQLite. After a crash, interrupted work is detected and resumed safely, never blindly re-run.

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.

  1. Build the image (Docker; on Windows, Docker inside WSL works):
    docker build -t agentbridge-claude:latest -f examples/container/Dockerfile.claude examples/container
    
  2. Create a token for your account with claude setup-token. Anyone holding it can spend your quota, so treat it like a password.
  3. 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
    
  4. 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

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.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agentbridge-core 0.1.0
File Size Uploaded Provenance Actions
agentbridge_core-0.1.0.tar.gz 242.5 kB With provenance Details for agentbridge_core-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for agentbridge-core 0.1.0
File Interpreter ABI Platform Actions
agentbridge_core-0.1.0-py3-none-any.whl Python 3 none any Details for agentbridge_core-0.1.0-py3-none-any.whl

Total release size: 402.1 kB

Release files / agentbridge_core-0.1.0.tar.gz

Download URL agentbridge_core-0.1.0.tar.gz
Size 242.5 kB
Tags Source
SHA-256 checksum
How to use checksums
cc3cb8704846d72f29587fe41a94a25e728a6567bef9a306ea3c833949a79f58
BLAKE2b-256 checksum
How to use checksums
a8326dc123e3340649d8901de0c25e4f0482e786eee833fec1286d0257c50729
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 log

Release files / agentbridge_core-0.1.0-py3-none-any.whl

Download URL agentbridge_core-0.1.0-py3-none-any.whl
Size 159.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1554bb97fae73ac57239e5037be9eeeff786d67e5a36a9e34896197db415f74b
BLAKE2b-256 checksum
How to use checksums
7e375a73c3470dd66c3e561da90ff59d59e17af78e1e619af38fa4b856906187
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 log

Security for agentbridge-core 0.1.0

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.

Select from 2 files

Attestation for agentbridge_core-0.1.0.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 log

A 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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page