Quorum — LLM Council for VS Code
Ask every Copilot model at once. Let them debate. Get one synthesized answer.
Quorum is a GitHub Copilot Chat participant (@quorum) that fans your question out to every model your Copilot Pro/Pro+ subscription includes — GPT-4o, Claude, Gemini, o3-mini, and more — runs anonymous peer review between them, and synthesizes a final verdict. All inside VS Code. No extra API keys.
How It Works
@quorum What are the tradeoffs between REST and GraphQL?
Stage 1 — Parallel Responses
Every model answers your question simultaneously.
Stage 2 — Anonymous Peer Review
Each model scores the others' responses without knowing who wrote them — eliminating brand bias.
Stage 3 — Chairman Synthesis
The most capable model reads all responses and reviews, then writes the definitive answer. It flags where models agreed (high confidence) and where they disagreed (worth your attention).
Features
- Zero setup — uses models already in your Copilot subscription
- File & code context — attach
.ts, .py, .md, .json, or any file; every model sees it
- Live side panel — watch responses stream in from each model in real time
- Auto model discovery — picks up new Copilot models automatically as they're added
- Configurable chairman — choose which model synthesizes the final answer
- Fast mode — skip peer review for quicker results (
quorum.skipPeerReview)
Usage
| Command |
What it does |
@quorum <question> |
Run the full council |
@quorum /models |
List current council models and chairman |
@quorum /setChairman <model-id> |
Change the synthesis model |
With file context:
- Attach a file using the paperclip icon in Copilot Chat
- Ask your question — all models receive the file contents
Requirements
- VS Code 1.99+
- GitHub Copilot Pro or Pro+
Settings
| Setting |
Default |
Description |
quorum.chairman |
auto |
Model ID for synthesis. auto picks the best available |
quorum.members |
[] |
Explicit model IDs to use as council members (in listed order) |
quorum.includeModels |
[] |
Include only models whose IDs match these substrings |
quorum.excludeModels |
[] |
Model IDs to remove from the council |
quorum.modelDisplayNames |
{} |
Override display labels by model-id substring |
quorum.skipPeerReview |
false |
Skip Stage 2 for faster results |
quorum.maxModels |
6 |
Max models on the council |
quorum.maxContextChars |
22000 |
Max context characters attached to prompts |
quorum.maxContextItemChars |
5000 |
Max characters per attached item before excerpting |
quorum.contextHeadExcerptChars |
2200 |
Head excerpt size for large attachments |
quorum.contextTailExcerptChars |
1600 |
Tail excerpt size for large attachments |
quorum.retryPromptBudgets |
[36000,22000,14000] |
Fallback prompt budgets when token-limit errors occur |
quorum.maxStage2ResponseChars |
1600 |
Max Stage 1 response chars passed into peer review |
quorum.maxStage3ResponseChars |
2200 |
Max Stage 1 response chars passed into synthesis |
quorum.maxStage3ReviewChars |
1200 |
Max Stage 2 review chars passed into synthesis |
Built by PSTechlabs · Developer tools at programmershop.in