aiki convenes the AI CLIs you already run — Claude Code, Codex, and Gemini — as a panel that genuinely disagrees. They investigate independently, cross-examine, a judge adjudicates the disputes, and you get a decision brief you can audit.
The problem
On a code review or an "is this idea sound?" call, a single model misses roughly 1 in 4 real problems. Two or three different models — each analysing independently, then cross-examining — catch what any one misses.
aiki orchestrates that locally. No new subscriptions, no copy-pasting between tools by hand — it drives the CLIs and logins you already pay for.
The council
Each provider runs as a local child process with read-only flags. Roles are configurable — pin who judges and who reviews in .aiki/config.json.
How it works — no APIs
Your signed-in provider CLIs start as read-only child processes.
Each model gets the same task and returns structured JSON — no peeking.
Models see each other's findings and argue — consensus vs. dispute map.
A judge adjudicates only the disputes — consensus is trusted as-is.
Every stage zod-validated, audit trail under .aiki/, rendered as a brief.
Live run
Benchmark · pre-registered · held-out
Two jobs, done well
Catch the bugs a single model misses on your working tree or a branch.
Pressure-test a plan before you build it — get a decision brief, not an essay.
The decision brief
The bottom line up front — proceed, pivot, or stop.
What decided it, where the models split, whose side the judge took.
Which of 12 angles were examined, contested, or missed.
Held / failed / unverified — each with a confidence level.
Who argued what, and who won the point.
Concrete next actions, each with an effort estimate and a kill signal.
Safety model
aiki never uses --dangerously-skip-permissions or any edit/exec mode. It reads, reasons, and writes only its own audit trail.
Every provider runs with its read-only / sandbox flag. No edits, no exec.
Never reads credential folders; filters KEY|TOKEN|SECRET from the env before spawning.
Nothing else on your disk is touched. Every stage is schema-validated before the next sees it.
The command palette