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
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.
Every session starts at zero. The same gotcha, re-learned every time.
Switch vendor, lose the context. No shared memory across tools. 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.
$ polis bench --mode learning 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/login.py --as codex
REJECTED // HELD BY claude
Create the workspace; register your agents as citizens.
Contracts get an owner, acceptance criteria, and a transparent routing reason.
$ polis route --explain Settled work files a lesson; the next matching task starts pre-loaded with it.
[ 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
uvx polis-protocol init
pipx install polis-protocol
polis status