Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Conclave

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.

Why

  • 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.

Install

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"

Quick start (CLI)

# 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).

Commands

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 reference

Flags

conclave --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 file

Quick start (MCP — any agent)

Register the server once, globally:

// e.g. ~/.claude.json, Cursor/Zed mcpServers
{ "mcpServers": { "conclave": { "command": "npx", "args": ["-y", "conclave-mcp"] } } }

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.

How it works

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).

Configuration

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.

Providers

Direct: openai, anthropic, google (Gemini). Aggregator: openrouter. OpenAI-compatible: groq, together, ollama (keyless, local), or any custom baseURL. Mix freely in one panel.

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages