peerbridge-mcp README

The project's README from github.com/Hoylon/peerbridge-mcp. As one markdown file: README.md.

PeerBridge bridge logo

PeerBridge MCP

A local-first, auditable multi-Agent control room for coding, review, evidence, and private remote work.

Run Codex, Claude Code, Grok, Kimi, provider APIs, OpenAI-compatible endpoints, and local models as one governed engineering team across desktop and phone without flattening their native capabilities.

English | 繁體中文 | 简体中文

PeerBridge Alpha 6 release Apache 2.0 source license Security policy

Download Windows Alpha · Quickstart · Features · Technical showcase · Client setup

PeerBridge Modern Workbench showing a governed multi-Agent room

Modern Workbench with synthetic preview data. No private conversation or credential is included.

Start in 30 seconds

  1. Download PeerBridgeControlRoom-0.1.0a6-windows-x64-portable.zip from the Alpha 6 release.
  2. Compare the ZIP's SHA-256 with SHA256SUMS.txt on the release page.
  3. Extract the complete ZIP to a writable folder and double-click Launch PeerBridge.cmd.

The portable build does not install a service, modify an existing Python environment, or include provider credentials. Local workspace data stays under %LOCALAPPDATA%\PeerBridge\workspace. Prefer source installation? Continue to Install from source.

See the Pixel Control Room

PeerBridge Pixel Control Room showing managed Agent sessions

The same local coordination core in the original dense Pixel interface.

PeerBridge is more than a collection of chat tabs. Its provider-native adapter layer keeps Codex JSON-RPC, Claude Code stream-json, Grok/Kimi ACP, provider APIs, and local runtimes as separate capability contracts. Every Agent is bound to a stable identity, selected model, permission policy, room context, task, and evidence trail.

Use it for parallel implementation and review, bounded technical debate, task ownership, approved shared memory, mutual scoring, cross-agent audits, and human-controlled release work. PeerBridge runs locally on SQLite, keeps provider credentials out of chat and project history, and preserves a SHA-linked record of messages, decisions, evidence, scores, permissions, and handoffs.

Human or Agent messages can wake the room, collaboration stops on consensus, blockers, stagnation, or explicit limits, and the operator can intervene at any time.

What maintainers get PeerBridge behavior
Provider-native adapter layer Codex, Claude Code, Grok, Kimi, provider APIs, compatible endpoints, and local runtimes keep separate audited identities and capability boundaries.
Work instead of reply cascades Parallel implementation, review, discussion, and release workflows stop on consensus, blockers, stagnation, or explicit limits.
Governed write access Permission cards, approved isolated Git worktrees, source-state checks, diffs, and proof records stay human-controlled.
Durable project context Selected history imports, room memory, task briefings, and handoffs are source-bound instead of silently merged.
Reviewable decisions Agent activity, answers, evidence, mutual scores, audits, token usage, and stale-proof warnings remain visible.
Local ownership SQLite data and credentials stay on the operator's machine; browser remote control remains private, while the allow-listed Tailcat companion is visible and enabled by default.

Technical differentiators

flowchart LR
    A["Provider-native adapters"] --> C["Per-Agent capability union"]
    C --> P["Capability-aware approval broker"]
    P --> W["Governed worktree and writer lease"]
    W --> R["Parallel review and bounded collaboration"]
    R --> E["SHA-linked evidence and Proof Bundle"]
    H["Human operator"] --> P
    H --> R

Run the provider-free maintainer showcase with one command:

python examples\demo_workflow.py --workspace demo-workspace --scope demo

Its public receipt proves that an overlapping second writer was rejected, two independent reviewers satisfied quorum, completion rehashed the synthetic artifact, and the audit chain verified with zero writes. It contains no provider credential or lease capability. See the claim-to-test evidence map.

Status: alpha. The coordination and audit core is tested, but the public API and database schema may change before 1.0.

Operational continuity and commercialization are explicit design boundaries. See memory and long-running operations and the open-core boundary. Tailscale Serve remains the private browser transport; Tailcat CLI connectivity is visible and enabled by default but remains independently allow-listed. Roadmap entries are not capability claims.

Why

Running two coding agents against one repository creates predictable failure modes:

PeerBridge addresses those coordination failures without making either agent the boss. One task has one writer lease, peers can review each other, and a human can intervene.

Architecture

flowchart LR
    H["Human operator"] --> M["Local control room"]
    C["Codex / Claude Code"] --> S1["PeerBridge stdio process"]
    A["Grok / Kimi / DeepSeek / Gemini / local Agents"] --> S2["PeerBridge stdio process"]
    M --> S3["PeerBridge stdio process"]
    R["Private mobile UI"] -->|"Tailnet HTTPS"| T["Tailscale Serve"]
    T -->|"loopback only"| S4["Human MCP message gateway"]
    S1 --> DB[("Shared SQLite store")]
    S2 --> DB
    S3 --> DB
    S4 --> DB
    DB --> L["SHA-linked audit events"]
    DB --> W["Mailbox, leases, reviews, proofs"]

Each MCP client launches its own stdio server process with a distinct --agent-id. Those processes coordinate through one project-local .peerbridge/peerbridge.sqlite3 database. SQLite WAL mode and BEGIN IMMEDIATE transactions serialize state changes.

Local desktop surfaces

PeerBridge is one local desktop product, not a hosted web service. Both desktop surfaces use the same local Python, SQLite, and MCP core:

A fresh workspace shows a local two-preview chooser before the Control Room opens. The selection is stored in .peerbridge/ui-preferences.json; later launches open that surface directly until the operator changes Appearance and restarts.

Features

Quickstart

Windows portable app

Download PeerBridgeControlRoom-0.1.0a6-windows-x64-portable.zip from the GitHub Alpha release, extract the complete ZIP to a writable folder, and double-click Launch PeerBridge.cmd. The portable app creates its local workspace under %LOCALAPPDATA%\PeerBridge\workspace; it does not include provider credentials or private runtime data.

This Alpha executable is not code-signed, so Windows SmartScreen may ask you to review the publisher. Verify the release SHA-256 before opening it. PeerBridge does not provide an auto-installer or modify an existing Python environment.

Install from source

Requirements: Python 3.11 or newer.

git clone https://github.com/hoylon/peerbridge-mcp.git
cd peerbridge-mcp
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e ".[dev]"
peerbridge init --project-root . --scope demo
peerbridge doctor --project-root . --scope demo
peerbridge monitor --project-root . --scope demo

Open 01 Multi-Agent Console to view current room Agents and explicitly authorized desktop or terminal work without choosing a folder. To launch a new managed CLI, choose an installed Codex, Claude Code, Kimi Code, or Grok CLI and its working directory there. Kimi and Grok use the reviewed deny-all ACPX profile. Set every participant role on 02 Chat, where Equal participant is the default. Managed input is sent through stdin and is not persisted by the Console. The page shows only output and events PeerBridge captured; an unrelated terminal opened elsewhere is not retroactively readable. Use 09 Trust & Task Verification for templates, durable operations, schedules, permission decisions, isolated worktrees, the Trust Timeline, and Proof Bundle export or verification.

Run a server manually:

# In Workbench > Connect, authorize codex-main once and copy the decision ID.
$decision = "<permission-decision-id>"
$identity = peerbridge identity --project-root . --scope demo issue --agent-id codex-main `
  --profile collaborator --permission-decision-id $decision | ConvertFrom-Json
peerbridge serve --project-root . --agent-id codex-main --scope demo `
  --identity-capability $identity.identity_capability

The capability is bound to the exact project, scope, Agent ID, and fixed collaborator tool profile. Its secret contents are never printed. Reserved operator identities and revocation remain available only through the authenticated local Control Room.

When one client can select several provider models, record the exact route without exposing credentials:

$apiDecision = "<permission-decision-id-from-workbench>"
$apiIdentity = peerbridge identity --project-root . --scope demo issue `
  --agent-id api-reviewer --profile collaborator `
  --permission-decision-id $apiDecision | ConvertFrom-Json
peerbridge serve --project-root . --agent-id api-reviewer --scope demo `
  --identity-capability $apiIdentity.identity_capability `
  --client-name api-coding-client `
  --provider-id provider-api:grok `
  --model-id grok

agent-id identifies the logical worker. client-name identifies the MCP-capable application or adapter. provider-id is an operator-supplied non-secret route label, and model-id identifies the selected model. Official CLI, provider API, compatible endpoint, and local-runtime sessions remain separate identities even when they expose the same model family.

Direct OpenAI-compatible endpoints do not require CC Switch. On the Connect page, save the API base URL and API key into Windows Credential Manager, discover the provider's advertised model IDs, and bind a route to one logical Agent. The same page reads CC Switch providers and models through its public CLI and changes the active provider only after an explicit confirmation. The API key never enters SQLite or an MCP message. Some API deployments accept one requested model ID but report a stable deployment alias in responses. In that case set EXPECTED RESPONSE MODEL explicitly. For example, a route may request grok-4.6 while requiring the response to report grok-4.6-build. An unconfigured or changing alias fails closed rather than being silently treated as the requested model.

The server speaks newline-delimited JSON-RPC over stdin/stdout. Usually an MCP client starts it for you, so a manually started server waiting for input is expected behavior.

Connect clients

Use an absolute Python executable path so each client launches the same installed environment and shared database.

Codex

codex mcp add peerbridge -- C:\path\to\peerbridge-mcp\.venv\Scripts\python.exe `
  -m peerbridge_mcp serve --project-root C:\path\to\your-project `
  --agent-id codex-main --scope your-project

Claude Code

claude mcp add --scope project --transport stdio peerbridge -- `
  C:\path\to\peerbridge-mcp\.venv\Scripts\python.exe `
  -m peerbridge_mcp serve --project-root C:\path\to\your-project `
  --agent-id claude-code --scope your-project

Use different MCP server entry names when both clients write a shared project config, for example peerbridge-codex and peerbridge-claude. See client configuration for TOML, JSON, Linux, and macOS examples. The same stdio server can be registered in Kimi Code CLI; other providers may require a separate API-backed runner. See agent integration boundaries.

PeerBridge reports the effective capability of each bound room Seat instead of inferring it from the Agent name:

Any other client or terminal that implements MCP can

peerbridge-mcp (Hoylon/peerbridge-mcp)

Searching Database…

Что это?PeerBridge MCP — контрольная комната в духе local-first, позволяющая запускать несколько кодинг-агентов (Codex, Claude Code, Grok, Kimi, API провайдеров и локальные модели) как одну управляемую инженерную команду, где каждое сообщение, решение и правка фиксируются в журнале аудита со связями по SHA.
Это просто набор чат-вкладок или нечто более структурированное?Это десктоп-приложение (WebView2 «Modern Workbench» или исходная «Pixel Control Room» на Tk), которое координирует по одному процессу stdio MCP-сервера на агента через общую локальную базу SQLite, а не чат-клиент.
Как его запустить?Скачайте PeerBridgeControlRoom-0.1.0a6-windows-x64-portable.zip из релиза Alpha 6, сверьте его SHA-256 с SHA256SUMS.txt, распакуйте ZIP в папку с правами на запись и дважды щёлкните Launch PeerBridge.cmd. Установка из исходников вместо этого требует Python 3.11 или новее.
Каких кодинг-агентов реально можно подключить?Codex, Claude Code, Kimi Code и Grok (через ACPX), плюс API провайдеров, эндпоинты, совместимые с OpenAI, и локальные модели; каждый запускается как собственный MCP stdio-сервер с отдельным --agent-id.
Это готово к продуктивному использованию?Пока нет — проект в альфе, публичный API и схема базы могут ещё измениться до версии 1.0, а сборка Windows не подписана, поэтому SmartScreen может попросить проверить издателя перед открытием.
Он работает на Mac и Linux или только на Windows?Готовый portable-релиз и десктоп по умолчанию Modern Workbench — только для Windows; в README упоминаются лишь опциональные контракты песочниц WSL2 и macOS как дополнительные эшелоны защиты, а не подтверждённая поддержка десктопа.
Где в итоге оказываются мои данные и учётные данные провайдеров?Всё остаётся локально: состояние хранится в локальной для проекта базе SQLite, учётные данные провайдеров не попадают в чат и историю проекта, а любой удалённый или мобильный доступ идёт только через приватный транспорт Tailscale Serve.
Что на самом деле мешает двум агентам править один файл одновременно?PeerBridge применяет аренды задач на capability-токенах с детерминированной проверкой пересечений чтения и записи: у одной задачи один пишущий, а второй пересекающийся писатель получает отказ, а не тихое слияние.
Что такое Tailcat?Tailcat — компаньон из белого списка, дающий приватный мобильный и удалённый контроль над Tailscale Serve без аренды; он виден и включён по умолчанию, но при этом остаётся независимо внесённым в белый список.
Что делают встроенные шаблоны workflow?Шаблоны вроде Implement + Review, Investigate + Debate, Read-only Audit и Release Gate работают на устойчивой локальной очереди операций с отменой, тайм-аутом, повтором, планированием и восстановлением.
Как он доказывает, что правка действительно проверена и протестирована?Ведётся Trust Timeline с обнаружением устаревших доказательств, живым пересчётом хэшей файлов перед завершением задачи, а также create-only переносимые Proof Bundle, проверяемые отдельно установленным доверенным верификатором.
Creator
Hoylon
Size
6.1 MB
Stars
242
Age
2mo
Commits · 90 Days