POLIS// CONTROL PLANE // REV 2.0 // MIT
[ Local-first · git-native · MCP ]

Coordinate your coding agents like one team.

Run Claude Code, Codex, Gemini and Cursor against one repo. Every task has an owner, every handoff has evidence, and the team measurably stops repeating its own mistakes — in git, across every vendor.

$uvx polis-protocol init
  TELEMETRY / REPEAT-ERROR RATE−88%
70%0% MEMORYLESS 65%POLIS 8%
SINGLE AGENT / UNMANAGED SWARMPOLIS · ACCUMULATES + RE-INJECTS
[ 01 ]The problem// FAILURE MODES
01.A — COLLISION
Two agents, one file, at once.

Claude and Codex both open src/auth/login.py. One silently overwrites the other; work is lost, or the afternoon goes to untangling a merge. A plain repo leaves coordination to luck — and collisions grow with every parallel worker you add. This is the failure that scales worst.

01.B — AMNESIA
They forget.

Every session starts at zero. The same gotcha, re-learned every time.

01.C — SILOS
They're isolated.

Switch vendor, lose the context. No shared memory across tools.

[ 02 ]Proof, measured honestly// REPRODUCIBLE
CONTRACTOPENED CLAIMED +FILES RESERVED SETTLEDWITH EVIDENCE LESSON +GUARDRAIL NEXT TASKPRE-LOADED RE-INJECTED INTO MATCHING FUTURE TASKS
−88%
Repeat errors · 65% → 8%

Polis records each failure as a lesson or guardrail and re-injects it into matching future tasks. The repeat-error rate falls 88% below a memoryless setup — each failure class recurs at most once. A lone agent can't draw that curve; it never accumulates.

# reproduce it yourself
$ polis bench --mode learning
0
Collisions · deterministic

Before touching code, an agent reserves the files. An overlapping reservation is rejected outright — no model judgement, no race. The guarantee a single agent or an unmanaged swarm structurally cannot give.

$ polis reserve src/auth --as claude
$ polis reserve src/auth/login.py --as codex
REJECTED // HELD BY claude
[ 03 ]Operating sequence// ONE _polis/ FOLDER
SEQ.01 — FOUND
Scaffold the polis

Create the workspace; register your agents as citizens.

$ uvx polis-protocol init
SEQ.02 — ROUTE
Open & assign work

Contracts get an owner, acceptance criteria, and a transparent routing reason.

$ polis contract open …
$ polis route --explain
SEQ.03 — COMPOUND
Settle & learn

Settled work files a lesson; the next matching task starts pre-loaded with it.

$ polis contract settle … OK
[ 04 ]Operating envelope// WE BENCHMARKED OUR OWN CLAIMS

[ Reach for Polis when ]

  • +2+ agents touch one real repo and collisions are a risk
  • +You switch between vendors and lose context each time
  • +You want the team to stop repeating mistakes — provably
  • +You need an auditable record of who did what, and why

[ Skip it when ]

  • One well-prompted agent already does the job
  • Your capability cards are accurate and tasks never drift
  • You want a hosted runtime — Polis coordinates, it doesn't execute
[ 05 ]Install// < 5 MINUTES
$uvx polis-protocol init
$pipx install polis-protocol
$polis status