ghcp-llm-council
v0.4.1
Published
A GitHub Copilot CLI skill that runs your question past a council of LLMs — multi-model deliberation with live UI.
Downloads
278
Maintainers
Readme
What is this?
LLM Council is a skill (plugin) for GitHub Copilot CLI. Instead of getting one model's opinion, you get a structured debate between five frontier models — with peer review, anonymous ranking, and a chairman's synthesis.
Think of it as a panel of senior engineers reviewing your question. Each brings a different perspective (Anthropic, OpenAI, Meta, DeepSeek, Mistral), they critique each other's answers without knowing who said what, and a chairman distils the best reasoning into one definitive response.
Everything runs locally through your existing Copilot subscription and GitHub token. No extra API keys, no external services, no data leaving your machine beyond the model inference calls you're already making.
How it works
Question ──► 5 councillors answer in parallel (Stage 1)
│
▼
Responses anonymised (A, B, C, D, E)
│
▼
Each councillor ranks all responses (Stage 2)
│
▼
Rankings aggregated (Borda count)
│
▼
Chairman reads everything, writes synthesis (Stage 3)
│
▼
Final answer ──► CLI + Browser UI + DiskA local web UI shows every stage unfolding in real time. No external API keys required — uses your existing Copilot subscription and gh auth token.
Architecture
Deliberation flow
Default council
| Model | Vendor | Role | Backend |
|-------|--------|------|---------|
| Claude Sonnet 4.6 | Anthropic | Councillor | Copilot inference (task) |
| GPT-5.2 | OpenAI | Councillor | Copilot inference (task) |
| Llama 3.3 70B | Meta | Councillor | GitHub Models |
| DeepSeek V3 | DeepSeek | Councillor | GitHub Models |
| Mistral Medium 2505 | Mistral | Councillor | GitHub Models |
| Claude Opus 4.7 | Anthropic | Chairman | Copilot inference (task) |
Two inference paths, zero extra credentials:
taskbackend — models dispatched through Copilot's built-in inference (your subscription covers it)github-modelsbackend — models called viamodels.github.aiusing yourgh auth token
Install
One-liner (npx)
npx ghcp-llm-council installManual
# 1. Install GitHub CLI (if you don't have it)
winget install GitHub.cli
# 2. Authenticate (required for model inference)
gh auth login
# 3. Clone and install the skill
git clone https://github.com/thevgavini/ghcp-llm-council.git
cd ghcp-llm-council
.\install-skill.ps1Uninstall
npx ghcp-llm-council uninstallRestart your Copilot CLI session after installing. Requires Node 20+ and GitHub Copilot CLI.
Usage
In any Copilot CLI session:
ask the council: should we use a monorepo or polyrepo for our microservices?The skill:
- Asks you to pick a mode (general, review, design, plan, research)
- Spins up a local server, opens the browser UI
- Dispatches all councillors in parallel
- Runs peer review + ranking
- Chairman synthesises a final answer
- Returns the synthesis in chat and persists to disk
Follow-ups
follow up: what about the CI/CD complexity tradeoff?Runs a fresh 3-stage deliberation on the existing conversation thread.
File context
council: review src/auth.cjs for security holesThe skill auto-detects file references and passes them to every councillor inline.
Modes
| Mode | Best for | Trigger words |
|------|----------|---------------|
| general | Open Q&A, opinions, explanations | (default) |
| review | Code review, security audit | "review", "audit", "find bugs" |
| design | Architecture decisions, tech choices | "design", "should I use X or Y" |
| plan | Implementation roadmaps | "plan", "roadmap", "how would you build" |
| research | Deep dives, learning | "explain", "how does X work" |
Each mode has tuned prompts for councillors and chairman. Mode packs can override the council lineup (e.g., review mode uses Opus as both councillor and chairman).
Configuration
Defaults: skills/llm-council/defaults/council.json
Per-project override: <cwd>/.llm-council/state/council.json
{
"council": [
{"id": "claude-sonnet-4.6", "vendor": "Anthropic", "display": "Claude Sonnet 4.6", "backend": "task"},
{"id": "gpt-5.2", "vendor": "OpenAI", "display": "GPT-5.2", "backend": "task"},
{"id": "meta/llama-3.3-70b-instruct", "vendor": "Meta", "display": "Llama 3.3 70B", "backend": "github-models"}
],
"chairman": "claude-opus-4.7",
"chairman_backend": "task",
"min_responses_to_proceed": 2,
"councillor_timeout_seconds": 120
}Add any model supported by Copilot inference or GitHub Models. The council scales to any size.
Project structure
skills/llm-council/
├── SKILL.md # Agent instructions (the skill contract)
├── bin/council.cjs # CLI helper (init, patch, advance, synthesize)
├── server/ # Zero-dependency HTTP + WebSocket server
│ ├── start.cjs # Entry point
│ └── public/ # Browser UI (vanilla JS, live cards)
├── defaults/council.json # Default model lineup
└── prompts/ # Mode-specific prompt templates
├── general/ # councillor.md + chairman.md
├── review/
├── design/
├── plan/
└── research/State lives in <cwd>/.llm-council/ — add to .gitignore.
Development
node skills/llm-council/server/start.cjs # Launch server standalone for UI dev
node skills/llm-council/server/stop.cjs # Tear downTests live on the tests/suite branch:
git checkout tests/suite
npm testInspired by
karpathy/llm-council — the original multi-model deliberation concept. This project brings it into the Copilot CLI ecosystem with live visualisation, zero external credentials, domain-specific modes (review, design, plan, research) with tuned prompts, and a skill-native interface that runs entirely from your terminal.
License
MIT — see LICENSE.
Bundles marked (MIT) and DOMPurify (Apache-2.0 / MPL-2.0) in the frontend. Full notices in server/public/vendor/LICENSES/.
