A multi-model deliberation agent for GitHub Copilot CLI.
Get Claude, GPT, and Gemini to debate any question simultaneously β each bringing its own reasoning architecture. Generates full decision packages with interactive HTML dashboards. No other AI terminal tool can do this.
When you ask one AI model a question, you get one perspective shaped by one architecture's training and reasoning patterns. The AI Council gives you three.
Claude, GPT, and Gemini don't just have different training data β they have fundamentally different approaches to reasoning:
- Claude tends toward nuance, caution, and exploring edge cases
- GPT tends toward structured frameworks and systematic analysis
- Gemini tends toward breadth, cross-domain connections, and research synthesis
The disagreements between models are where the real value lives. When all three agree, you can be more confident. When they disagree, you've found exactly where your human judgment matters most.
β AI Council Improves Results
β οΈ This agent requires GitHub Copilot CLI β the terminal-based Copilot experience (invoked by runningcopilotin your terminal). It does not run inside the VS Code Copilot Chat panel. If you haven't installed it yet, see Getting started with Copilot CLI and ensure thecopilotcommand is available in your terminal before proceeding.
Run these commands in your terminal (not inside Copilot CLI chat):
copilot plugin marketplace add microsoft/FastTrack
copilot plugin install council@fasttrack-copilot-pluginsRun this as a slash command inside Copilot CLI chat:
/plugin install microsoft/FastTrack:copilot-agent-samples/github-copilot-agents/Council
That's it. The agent is ready to use.
Alternative: Manual install (copy file)
Copy agents/council.agent.md to your global Copilot CLI agents directory:
# macOS / Linux
mkdir -p ~/.copilot/agents
cp agents/council.agent.md ~/.copilot/agents/
# Windows (PowerShell)
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.copilot\agents"
Copy-Item agents\council.agent.md "$env:USERPROFILE\.copilot\agents\"Or place it in a project: .github/agents/council.agent.md
Verify:
/plugin list
- Open a terminal and run
copilot - Run
/agentand selectποΈ AI Councilfrom the picker - Ask your question:
Should we open-source our internal SDK?
Three models will deliberate and you'll get a synthesized report with consensus points, disagreements, and a recommendation.
Tip: To switch back to the default agent later, run
/agentagain and selectDefault.
/agent β select "ποΈ AI Council" from the picker
[your question] [optional flags] β then type your prompt
Flags are plain text appended to your question. The agent interprets them β they're not CLI-level arguments, so you can use them naturally.
| Flag | What It Does | Example |
|---|---|---|
--depth quick |
Fast parallel opinions + brief synthesis | Good for gut checks |
--depth debate |
Structured report with tensions and consensus (default) | The everyday workhorse |
--depth deep |
Multi-round debate where models cross-examine each other | For high-stakes decisions |
--domain [keyword] |
Models assume dynamic personas suited to the domain | --domain tech, --domain legal |
--save |
Generates full decision package (folder with MD + HTML) | Shareable deliverables |
Should we rewrite our backend in Rust?
Three models give their honest take as themselves. You see how Claude, GPT, and Gemini reason differently about the same technical question.
Is our pricing model sustainable at scale? --depth quick
Fast parallel responses with a brief synthesis β done in seconds.
Should we acquire CompanyX for $50M? --depth deep
Three rounds:
- Opening statements β each model's independent analysis
- Cross-examination β each model reads and challenges the others
- Final positions β revised takes after hearing counterarguments
You get a full deliberation record with an evolution tracker showing who changed their mind and why.
Should we migrate to Kubernetes? --domain tech
The agent dynamically generates three personas that fit the domain and question β e.g., Senior Engineer, Security Lead, Platform Architect. Each model assumes a persona, but you still get the benefit of different underlying reasoning architectures.
Should we raise a Series B now or wait? --domain startup
Might generate: Founder/CEO, Lead Investor, Board Advisor.
How should we handle HIPAA compliance for our new feature? --domain healthcare
Might generate: Clinical Lead, Regulatory Affairs, Privacy Officer.
You can use ANY domain keyword β even specific ones like --domain "developer-experience" or --domain "series-b fundraising". The agent interprets it intelligently.
Tip: You can ask the council to argue a contrarian position directly in your prompt, e.g.,
Make the case AGAINST migrating to Kubernetes
Should we sunset our legacy API? --domain tech --depth deep --save
Full multi-round technical debate with expert personas, saved as a decision record.
When you include --save (or use --depth deep, which auto-saves), the council generates a complete decision package in a folder:
council-decisions/YYYY-MM-DD-open-source-sdk/
βββ decision.md # Full deliberation record
βββ dashboard.html # Interactive decision dashboard
A comprehensive markdown document containing:
| Section | Contents |
|---|---|
| Vote Tracker | Table showing each model's Round 1 vote vs Final vote, with change indicators |
| Consensus Points | Where all models agreed |
| Key Tensions | Major disagreements with arguments from each side |
| Full Arguments | Each model's complete position (organized by round for deep mode) |
| Rebuttals | How models responded to each other's critiques |
| Decision Framework | The most relevant framework for this type of question (e.g., RICE, Porter's Five Forces) with the council's analysis mapped onto it |
| Executive Summary | Final votes, who changed their mind, biggest fight, sharpest insight |
A single self-contained HTML file (no external dependencies) with:
- Advisor Cards β one per model with position summary, confidence bar, and final vote. Cards use model accent colors (π΅ blue, π’ green, π‘ yellow). Vote changes shown visually with strikethrough β arrow β new vote.
- Vote Tracker Visualization β Round 1 vs Final comparison with confidence bars
- Interactive Assumption Sliders β 3-5 key quantitative assumptions extracted from the analysis (e.g., price point, conversion rate, hours to implement, adoption timeline). Sliders dynamically recalculate impact projections as you adjust them.
- Tensions & Arguments β collapsible sections with model attribution
Open in any browser. No server needed.
--depth deep always generates the decision package even without --save. Deep deliberations deserve full documentation.
Throughout the output, each model is identified by an emoji:
- π΅ Claude (
claude-opus-4.6) - π’ GPT (
gpt-5.2) - π‘ Gemini (
gemini-3.1-pro)
When personas are active, you'll see both: e.g., π΅ Claude (as Platform Architect)
Each model self-rates its confidence from 1-10. Pay attention to:
- High confidence across all three β Strong signal, safe to act
- One model low, others high β Investigate what that model sees that others don't
- All models low confidence β The question may need more data or reframing
Every council session ends with a terminal synthesis block:
## ποΈ COUNCIL SYNTHESIS
### π³οΈ Final Votes
- π΅ **Claude:** Go (Drive) β confidence: 8/10
- π’ **GPT:** Conditional-Go (Drive) β confidence: 7/10
- π‘ **Gemini:** Go (Drive) β confidence: 6/10
---
### π Who Changed Their Mind
GPT shifted from No-Go to Conditional-Go after Claude's risk mitigation argument.
### β‘ Biggest Fight
Whether the 18-month timeline is realistic given current team capacity.
### π‘ Sharpest Insight
> *"The real risk isn't technical β it's the organizational change management." β Claude*
### π Likely Decision
**Proceed with a phased approach, starting with a pilot program to validate assumptions before full commitment.**
### π Decision Package
- `council-decisions/2026-03-04-topic-slug/decision.md`
- `council-decisions/2026-03-04-topic-slug/dashboard.html`
---
_The Council has deliberated. The decision is yours._| Section | Why It Matters |
|---|---|
| π³οΈ Final Votes | See where each model landed and how confident they are |
| π Who Changed | Models that shifted position reveal which arguments were most persuasive |
| β‘ Biggest Fight | The most contentious tension β this is where your judgment matters most |
| π‘ Sharpest Insight | The single most valuable non-obvious point β often worth the entire session |
| π Likely Decision | Synthesized recommendation β a starting point, not a final answer |
- You activate the council agent via
/agentand selectποΈ AI Council - You type your question (with optional flags)
- The orchestrator parses your input for flags (
--depth,--domain,--save) - It delegates to three sub-agents in parallel, each with a different
model:override - If
--domainis set, it dynamically generates personas and includes them in each sub-agent's prompt - Responses are collected and synthesized into the output format matching the depth level
- If
--depth deep, rounds 2 and 3 feed prior responses back to the models for cross-examination
The magic is that Copilot CLI's agent system natively supports model: overrides on sub-agents, so each council member genuinely runs on a different LLM.
Edit agents/council.agent.md and update the model table. Available models in Copilot CLI include:
claude-opus-4.6 claude-sonnet-4.5 claude-haiku-4.5
gpt-5.2 gpt-5.1 gpt-5-mini
gemini-3.1-pro
Use /model in Copilot CLI to see the current full list.
The --domain flag is fully dynamic β the agent reasons about the best personas. But if you want consistent personas for a domain, you can add a section to the agent file (agents/council.agent.md):
## Pinned Domain Personas
When `--domain devsecops` is used, always assign:
- Security Engineer
- Platform SRE
- Developer AdvocateThe default cap is 400 words per model. Edit the sub-agent prompt template in agents/council.agent.md to change this.
- Start with
--depth debate(the default) β it's the best balance of quality and speed - Use
--depth quickfor low-stakes questions where you just want a sanity check - Reserve
--depth deepfor decisions with real consequences β the cross-examination round is powerful but costs more tokens - Try framing contrarian prompts directly β e.g., "Make the case AGAINST migrating to Kubernetes" to force the council to stress-test an idea
- Use
--domainwhen the question is specialized β generic models give better answers when they have a lens to reason through - Read the disagreements first β consensus is reassuring but dissent is where you learn
- Use
--saveto build a decision log β your future self will thank you when someone asks "why did we decide X?" The HTML dashboard is great for async stakeholder reviews. - Don't treat the recommendation as final β the council informs your judgment, it doesn't replace it
- Open
dashboard.htmlin your browser β the interactive sliders let you stress-test assumptions in real-time
Council/
plugin.json # Plugin manifest
agents/
council.agent.md # The agent definition
That's it. The plugin system handles the rest.
your-project/
council-decisions/
2026-03-03-open-source-sdk/
βββ decision.md
βββ dashboard.html
2026-03-05-series-b-timing/
βββ decision.md
βββ dashboard.html
Over time, this becomes a searchable decision log for your team.
/plugin update council
/plugin uninstall council
- GitHub Copilot CLI installed β the
copilotcommand must be available in your terminal. This is a separate tool from the Copilot extension in VS Code. - Active Copilot subscription with access to multiple models
- Works on macOS, Linux, and Windows
- Plugin support in Copilot CLI (for
/plugin install)
Q: Does this cost more than a normal Copilot request?
A: Yes β each council session uses 4+ premium requests (one per model + synthesis). --depth deep uses 10-12. Use --depth quick to conserve.
Q: Can I change which models are on the council?
A: Yes β edit the model table in agents/council.agent.md. You could even run three versions of the same model family at different sizes (e.g., Claude Haiku vs Sonnet vs Opus).
Q: Can I use this for code review?
A: Absolutely. Try: Review the auth module in src/auth/ for security issues --domain devsecops
Q: What if one model is unavailable? A: The council will proceed with the available models and note which member was absent.
Q: Can I add more than 3 models?
A: Yes β add more seats to the model table in agents/council.agent.md. Keep in mind this increases cost and response time proportionally.
This project draws from several ideas in the multi-AI deliberation space:
- Allie K. Miller's AI Boardroom β custom slash commands that simulate boardroom discussions with multiple AI personas
- Andrej Karpathy's LLM Council β the concept of querying multiple LLMs and synthesizing their responses
- Satya Nadella's AI Council β the vision of AI agents collaborating as a council of advisors
- Mustafa Suleyman's Chain-of-Debate β the idea that LLMs produce better outputs when they engage in structured debate
Alejandro Lopez β alejandro.lopez@microsoft.com
Version: v20260304
The Council has deliberated. The decision is yours.



