Local, harness-agnostic multi-model deliberation — a local reimplementation of OpenRouter Fusion.
A panel of LLMs answers your prompt in parallel, a judge compares the anonymized answers (consensus, contradictions, unique insights, blind spots) and writes the single best answer. Runs from any terminal and from any MCP-capable agent (Claude Code, Cursor, Zed, …). Bring your own provider keys.
Conclave is ensemble + judge, not model-merging. It doesn't blend weights or average tokens — it runs several models independently and has a judge reconcile them. Independent agreement is a stronger signal than one model's confidence; independent disagreement is surfaced, not averaged away.
- Agreement across independent models is higher-confidence than a single model's certainty.
- Disagreement is reported, not smoothed over — you see what's actually contested.
- Different providers have different blind spots; a panel covers what any one model misses.
- Self-panel: even the same model asked several ways beats a single run (extra test-time compute).
Costs more and is slower than a single call (≈ panel-size× tokens, gated by the slowest panelist), so it's for research, architecture trade-offs, critiques, and decisions that are expensive to get wrong — not routine prompts.
npm i -g conclave-cli # the `conclave` terminal command
npm i -g conclave-mcp # the MCP server (for agents)
# or run without installing:
npx conclave-cli "your prompt"# 1. set provider keys (any subset)
export ANTHROPIC_API_KEY=... OPENAI_API_KEY=... GEMINI_API_KEY=...
# 2. choose how many models and configure each one (interactive)
conclave setup # asks: how many models? then each model + the judge
# 3. ask
conclave "Compare REST vs GraphQL for a new public API"conclave setup asks how many models the panel should use, then walks through each model
one by one (provider/model, temperature, optional persona), then the judge — and writes
~/.conclave/config.json. Prefer editing by hand? conclave init drops a commented template
instead. With no config at all, Conclave auto-selects a diverse panel from whatever keys you have
(and reminds you to run conclave setup).
conclave "<prompt>" # run a deliberation; print the final Markdown answer
conclave setup # interactively pick the number of models + configure each one
conclave init # write a commented config template to ~/.conclave/config.json
conclave auth # show which providers have usable keys
conclave models # list reachable providers
conclave help # full flag referenceconclave --report "<prompt>" # de-anonymized diagnostic (each answer + judge analysis)
conclave --json "<prompt>" # raw machine-readable result
conclave --self anthropic/claude-opus-4-8 --ways 3 "<prompt>" # self-panel (one model asked N ways)
conclave --panel openai/gpt-5.5,anthropic/claude-opus-4-8 "<prompt>" # ad-hoc panel for one run
conclave --judge anthropic/claude-opus-4-8 "<prompt>" # ad-hoc judge for one run
conclave --tools web "What changed in Node 24?" # panel gets web search + fetch
conclave --tools fs "Where is auth handled here?" # panel gets read-only codebase tools
conclave --concurrency 8 "<prompt>" # max panelists in parallel (default 4)
conclave --config ./x.json "<prompt>" # use an explicit config fileRegister the server once, globally:
Then the agent can call the conclave tool. By default it returns the judge analysis + anonymized
answers and lets the calling agent write the final response (writer: "caller"); pass
writer: "judge" to get a finished answer directly.
prompt ─▶ PREPARER ─▶ PANEL (N models, parallel, anonymized) ─▶ JUDGE/ORCHESTRATOR ─▶ answer
(clarify/ each answers independently; compares blind answers
research) 0 ok → error · 1 ok → return it (consensus/contradictions/
≥2 ok → judge unique/blind) → final answer
See docs/ARCHITECTURE.md for the full flow, the config reference, and the phased tool rollout (Phase 1 tool-free · Phase 2 web · Phase 3 filesystem — all implemented).
Global ~/.conclave/config.json (or project ./.conclave/config.json, which overrides it). You
choose how many models the panel uses and configure each one individually — its own provider,
model, temperature, persona, and tool access — plus the judge. Run conclave setup to do this
interactively, conclave init for a commented template, or edit the file by hand:
{
"panel": [
{ "id": "P1", "provider": "anthropic", "model": "claude-opus-4-8", "temperature": 0.7 },
{ "id": "P2", "provider": "openai", "model": "gpt-5.5", "temperature": 0.3 },
{ "id": "P3", "provider": "google", "model": "gemini-pro-latest","temperature": 0.9 }
],
"judge": { "provider": "anthropic", "model": "claude-opus-4-8" }
}See config.example.json for a fully-annotated config (providers, preparer,
tools, the self-panel form, and run options), and docs/ARCHITECTURE.md for
the reference. Keys come from env vars or ~/.conclave/auth.json.
Direct: openai, anthropic, google (Gemini). Aggregator: openrouter. OpenAI-compatible:
groq, together, ollama (keyless, local), or any custom baseURL. Mix freely in one panel.
MIT