Baya-cli 🕊️

baya consensus

Multi-model AI consensus, from your terminal

baya consensus puts one artifact — a spec, a diff, or a plain question — in front of several models at once and reports where they land. Each provider CLI reviews it independently and blind; a moderator reconciles their findings into a new draft each round; the loop repeats until nothing blocking is left. You get back what the models agree on, and the disagreements that never resolved.

npm install -g baya-cli
baya consensus ./spec.md --providers luna,sonnet,opencode/mimo-v2.5-free

How the debate runs

A moderator classifies the artifact and writes the criteria it will judge against — then keeps them to itself. Reviewers answer or critique in parallel, blind to each other. The moderator reconciles each round into a new draft and reports whether the reviewers agree; it never picks the answer itself.

flowchart TB
    ART["Your spec, diff, or question"] --> P0["A moderator frames the review and decides what to check for"]
    P0 --> ROUND{"Each model reviews it on its own — no peeking at the others"}
    ROUND --> RA["Model A"]
    ROUND --> RB["Model B"]
    ROUND --> RC["Model C"]
    RA --> MERGE["The moderator merges their feedback into a new draft"]
    RB --> MERGE
    RC --> MERGE
    MERGE --> CONV{"Still something important to fix?"}
    CONV -->|yes, review the new draft| ROUND
    CONV -->|no| OUT["You get the final version, plus anything the models could not agree on"]
Each model reviews on its own, a moderator merges the feedback into a new draft, and the loop repeats until nothing important is left — a few rounds at most.

What it is good for

Pressure-testing a design
Put a spec or an RFC in front of three models and see which concerns more than one of them independently raise — that overlap is the signal a single review cannot give you.
Reviewing a diff
In the workspace posture reviewers get the full tool set in your working directory and can run the suite to ground a finding. A confirm gate warns you first — consensus is for reviewing, not developing.
Settling a question
Ask a plain question and every model answers it blind. Agreement prints the first answer; disagreement prints every answer side by side, none marked best. The moderator writes no criteria and only reports agreement.

Why not just average models?

Because a majority is not a correctness signal. Voting and averaging both make one model an arbiter of the others. baya consensus keeps every position on the record, anonymizes rivals so a finding stands on its evidence rather than a brand name, and hands you the disagreement instead of hiding it.

baya consensus ships in baya-cli alongside the run orchestrator. No API keys — it drives the coding CLIs you already have. FAQ · Docs