Skip to content

caiopizzol/conclave

Repository files navigation

conclave-logo

GitHub release

Multi-model AI collaboration for Claude Code. Get consensus-driven code reviews and second opinions from multiple AI models in parallel.

Commands

Command Purpose
/review Multi-model code review on your staged changes
/consult Get a second opinion when stuck on a problem

How It Works

/review                              /consult "why is this broken?"
   │                                    │
   ├── Codex ───► reviews diff          ├── Codex ───► reads conversation
   ├── Gemini ──► reviews diff          ├── Gemini ──► reads conversation
   ├── Qwen ───► reviews diff           ├── Qwen ───► reads conversation
   └── ...                              └── ...
   │                                    │
   ▼                                    ▼
   Claude reviews the diff itself       Claude analyzes the problem itself
   + synthesizes external findings      + synthesizes external perspectives

Claude is always a reviewer. The orchestrating Claude instance doesn't just synthesize what external tools report — it performs its own independent review of the code (or analysis of the problem) and includes its own findings alongside the external models. No need to configure Claude as an external tool.

Why multiple models?

  • Different training data → different blind spots
  • 2+ models flagging the same issue → stronger signal
  • Claude's own review catches what external models miss
  • Diverse perspectives surface better solutions

Inspiration

Inspired by LLM Council — the idea that multiple LLMs reviewing the same problem surfaces stronger signals than any single model.

Installation

git clone https://github.com/caiopizzol/conclave ~/dev/conclave
cd ~/dev/conclave
bun run register

To unregister:

bun run unregister

Configuration

Tools (~/.config/conclave/tools.json)

{
  "persistence": {
    "enabled": true,
    "required": false,
    "data_dir": "~/.local/share/conclave/reviews"
  },
  "tools": {
    "codex": {
      "enabled": true,
      "scope": ["review", "consult"],
      "command": "codex exec --full-auto -",
      "model": "gpt-5.2-codex",
      "description": "OpenAI Codex CLI"
    },
    "gemini": {
      "enabled": true,
      "scope": ["review", "consult"],
      "command": "gemini -o text",
      "model": "gemini-3-pro-preview",
      "description": "Google Gemini CLI"
    }
  },
  "prompts": {
    "review": "~/.config/conclave/prompt.md",
    "consult": "~/.config/conclave/consult-prompt.md"
  }
}

Tool Fields

Field Required Description
enabled Yes Whether to use this tool
scope No Array of commands: ["review"], ["consult"], or ["review", "consult"]. If omitted, tool is used for all commands
command Yes CLI command to run
model No Model to use (injected via --model or -m flag)
description No Human-readable description

You can define multiple entries for the same provider with different models (e.g., ollama-qwen and ollama-devstral).

Persistence Fields

Field Default Description
enabled true Save review results to disk for later analysis
required false If true, halt on persistence failure instead of continuing
data_dir ~/.local/share/conclave/reviews Directory for saved review data

Review results are saved as JSON files containing raw model outputs, timestamps, and investigation results. This enables:

  • Tracking review history across PRs
  • Analyzing model performance over time
  • Recovering from context compaction

Supported models:

Tool Models Documentation
Codex gpt-5.2-codex, gpt-5.1-codex-mini, gpt-5.1-codex-max, gpt-5.2 Codex Models
Gemini gemini-2.5-pro, gemini-2.5-flash, gemini-3-pro-preview, gemini-3-flash-preview Gemini CLI
Qwen coder-model (default), vision-model Qwen Code Docs
Mistral Config-based (~/.vibe/config.toml) Mistral Vibe Docs
Grok grok-code-fast-1, grok-4-1-fast-*, grok-4-fast-*, grok-3, grok-3-mini xAI API Models
Ollama qwen3-coder:480b-cloud, devstral-2:123b-cloud, or any model from library Ollama Library

Note: Ollama cloud models use :cloud suffix and require OLLAMA_API_KEY environment variable. Get your API key at ollama.com. You can also run local models (e.g., qwen2.5-coder:7b), but they are slow and require significant memory (~8GB+ RAM for 7B models).

Note: Mistral and Grok use command-line argument passing (not stdin), which has a ~200KB limit on macOS. Very large diffs may cause these tools to fail while other tools succeed.

Note: Grok uses the community CLI (@vibe-kit/grok-cli) until xAI releases the official "Grok Build" CLI.

Prompts

Customize prompts for each command:

File Template Variables
~/.config/conclave/prompt.md {{branch}}, {{target_branch}}, {{diff}}
~/.config/conclave/consult-prompt.md {{history_file}}, {{question}}, {{cwd}}

Authentication

Tool Install
Codex npm install -g @openai/codex
Gemini npm install -g @google/gemini-cli
Qwen npm install -g @qwen-code/qwen-code
Mistral pipx install mistral-vibe
Grok bun add -g @vibe-kit/grok-cli; export GROK_API_KEY="key" in ~/.zshrc
Ollama ollama.com/download; cloud: export OLLAMA_API_KEY="key" in ~/.zshrc; local: ollama pull <model>

Usage

Code Review

# Review staged changes
git add -p
/review

Second Opinion

# When stuck on a problem
/consult "why is the table rendering broken after paste?"

# When going in circles
/consult "I've tried X, Y, Z but none work"

# Validate an approach
/consult "is this the right way to handle state here?"

/consult passes your Claude Code conversation history to external models, so they can see what's already been tried and avoid suggesting the same things.

Philosophy

More models ≠ better. The value is consensus:

  • 1 model flags issue → might be noise
  • 2+ models flag same issue → likely real
  • Different perspectives → surface blind spots

Conclave surfaces what matters.

Workflow

/review follows a state machine pattern with checkpoints to ensure reliability:

[INIT] → [GATHERING] → [SPAWNING] → [TOOLS_COMPLETE]
                                          │
                                    ⛔ CHECKPOINT
                                          │
                                    [PERSISTED] → [SYNTHESIZING] → [INVESTIGATING] → [COMPLETE]

The ⛔ checkpoint ensures review data is persisted before synthesis. If persistence.required is true, the workflow halts on persistence failure.

License

MIT