Skip to content
This repository was archived by the owner on Jun 1, 2026. It is now read-only.

Commit c4c1bf7

Browse files
committed
feat: multi model collaboration
1 parent 1c3496b commit c4c1bf7

6 files changed

Lines changed: 417 additions & 74 deletions

File tree

README.md

Lines changed: 68 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,34 @@
22

33
[![GitHub release](https://img.shields.io/github/v/release/caiopizzol/conclave)](https://github.com/caiopizzol/conclave/releases)
44

5-
Multi-model code review for [Claude Code](https://claude.com/claude-code). Run reviews across multiple AI CLI tools in parallel and get consensus-driven feedback.
5+
Multi-model AI collaboration for [Claude Code](https://claude.com/claude-code). Get consensus-driven code reviews and second opinions from multiple AI models in parallel.
6+
7+
## Commands
8+
9+
| Command | Purpose |
10+
|---------|---------|
11+
| `/review` | Multi-model code review on your staged changes |
12+
| `/consult` | Get a second opinion when stuck on a problem |
613

714
## How It Works
815

916
```
10-
/review
11-
12-
├── Claude Opus ──► reviews independently
13-
├── Codex ────────► reviews independently
14-
├── Gemini ───────► reviews independently
15-
├── Qwen Code ────► reviews independently
16-
├── Mistral Vibe ─► reviews independently
17-
├── Ollama ───────► reviews independently
18-
└── Grok ─────────► reviews independently
19-
20-
21-
Synthesis: consensus highlighted, noise filtered
17+
/review /consult "why is this broken?"
18+
│ │
19+
├── Codex ───► reviews diff ├── Codex ───► reads conversation
20+
├── Gemini ──► reviews diff ├── Gemini ──► reads conversation
21+
├── Claude ──► reviews diff ├── Claude ──► reads conversation
22+
└── ... └── ...
23+
│ │
24+
▼ ▼
25+
Consensus: issues flagged Synthesis: consensus suggestions,
26+
by 2+ models highlighted unique perspectives, disagreements
2227
```
2328

24-
When multiple models flag the same issue, that's a stronger signal than any single review.
25-
26-
Enable/disable any combination of tools to get diverse perspectives from different training datasets.
29+
**Why multiple models?**
30+
- Different training data → different blind spots
31+
- 2+ models flagging the same issue → stronger signal
32+
- Diverse perspectives surface better solutions
2733

2834
## Inspiration
2935

@@ -52,69 +58,44 @@ bun run unregister
5258
"tools": {
5359
"codex": {
5460
"enabled": true,
61+
"scope": ["review", "consult"],
5562
"command": "codex exec --full-auto -",
5663
"model": "gpt-5.2-codex",
5764
"description": "OpenAI Codex CLI"
5865
},
5966
"claude-opus": {
6067
"enabled": true,
68+
"scope": ["consult"],
6169
"command": "claude --print",
6270
"model": "opus",
6371
"description": "Claude Code (Opus)"
6472
},
65-
"claude-sonnet": {
66-
"enabled": false,
67-
"command": "claude --print",
68-
"model": "sonnet",
69-
"description": "Claude Code (Sonnet)"
70-
},
7173
"gemini": {
72-
"enabled": false,
74+
"enabled": true,
75+
"scope": ["review", "consult"],
7376
"command": "gemini -o text",
74-
"description": "Google Gemini CLI (uses default model)"
75-
},
76-
"qwen": {
77-
"enabled": false,
78-
"command": "qwen -o text",
79-
"description": "Qwen Code (Alibaba)"
80-
},
81-
"mistral": {
82-
"enabled": false,
83-
"command": "vibe --output text -p",
84-
"description": "Mistral Vibe (Devstral)"
85-
},
86-
"grok": {
87-
"enabled": false,
88-
"command": "grok -p",
89-
"model": "grok-code-fast-1",
90-
"description": "xAI Grok CLI (community)"
91-
},
92-
"ollama-qwen": {
93-
"enabled": false,
94-
"command": "ollama run",
95-
"model": "qwen3-coder:480b-cloud",
96-
"description": "Ollama (Qwen3 Coder 480B)"
97-
},
98-
"ollama-devstral": {
99-
"enabled": false,
100-
"command": "ollama run",
101-
"model": "devstral-2:123b-cloud",
102-
"description": "Ollama (Devstral 2 123B)"
103-
},
104-
"ollama-local": {
105-
"enabled": false,
106-
"command": "ollama run",
107-
"model": "qwen2.5-coder:7b",
108-
"description": "Ollama (Qwen 2.5 Coder 7B, local)"
77+
"model": "gemini-3-pro-preview",
78+
"description": "Google Gemini CLI"
10979
}
11080
},
111-
"prompt_file": "~/.config/conclave/prompt.md"
81+
"prompts": {
82+
"review": "~/.config/conclave/prompt.md",
83+
"consult": "~/.config/conclave/consult-prompt.md"
84+
}
11285
}
11386
```
11487

115-
You can define multiple entries for the same provider with different models (e.g., `claude-opus` and `claude-sonnet`).
88+
#### Tool Fields
89+
90+
| Field | Required | Description |
91+
|-------|----------|-------------|
92+
| `enabled` | Yes | Whether to use this tool |
93+
| `scope` | No | Array of commands: `["review"]`, `["consult"]`, or `["review", "consult"]`. If omitted, tool is used for all commands |
94+
| `command` | Yes | CLI command to run |
95+
| `model` | No | Model to use (injected via `--model` or `-m` flag) |
96+
| `description` | No | Human-readable description |
11697

117-
The `model` field is optional for most tools. If omitted, each tool uses its default model. **Exception:** Ollama requires an explicit `model` since it has no default.
98+
You can define multiple entries for the same provider with different models (e.g., `claude-opus` and `claude-sonnet`).
11899

119100
**Supported models:**
120101

@@ -134,13 +115,14 @@ The `model` field is optional for most tools. If omitted, each tool uses its def
134115
135116
> **Note:** Grok uses the community CLI ([`@vibe-kit/grok-cli`](https://github.com/superagent-ai/grok-cli)) until xAI releases the official "Grok Build" CLI.
136117
137-
### Prompt (`~/.config/conclave/prompt.md`)
118+
### Prompts
138119

139-
Customize review instructions with template variables:
120+
Customize prompts for each command:
140121

141-
- `{{branch}}` — current branch
142-
- `{{target_branch}}` — target branch
143-
- `{{diff}}` — the diff content
122+
| File | Template Variables |
123+
|------|-------------------|
124+
| `~/.config/conclave/prompt.md` | `{{branch}}`, `{{target_branch}}`, `{{diff}}` |
125+
| `~/.config/conclave/consult-prompt.md` | `{{history_file}}`, `{{question}}`, `{{cwd}}` |
144126

145127
### Authentication
146128

@@ -156,16 +138,36 @@ Customize review instructions with template variables:
156138

157139
## Usage
158140

141+
### Code Review
142+
159143
```bash
144+
# Review staged changes
145+
git add -p
160146
/review
161147
```
162148

149+
### Second Opinion
150+
151+
```bash
152+
# When stuck on a problem
153+
/consult "why is the table rendering broken after paste?"
154+
155+
# When going in circles
156+
/consult "I've tried X, Y, Z but none work"
157+
158+
# Validate an approach
159+
/consult "is this the right way to handle state here?"
160+
```
161+
162+
`/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.
163+
163164
## Philosophy
164165

165166
More models ≠ better. The value is **consensus**:
166167

167168
- 1 model flags issue → might be noise
168169
- 2+ models flag same issue → likely real
170+
- Different perspectives → surface blind spots
169171

170172
Conclave surfaces what matters.
171173

0 commit comments

Comments
 (0)