claude-council
A Claude Code plugin that consults multiple AI coding agents in parallel and shows you their answers side-by-side. Useful when one model's bias could mislead you and the right call depends on cross-checking — architecture decisions, debugging dead ends, security reviews, framework picks.

Five providers answering the same question. Each banner names the provider, the
model that answered and how long it took. The synthesis separates what they all
agreed on from where they diverged — here, whether trapping EXIT INT TERM on
one handler is correct, or whether signals should be converted into exits
first — and when they agree instead, it names the assumption the answer rests
on.
Quick start · Usage · Configuration · Reference · Development
Quick start
# 1. Install via Claude Code plugin marketplace
/plugin marketplace add hex/claude-marketplace
/plugin install claude-council
# 2. Configure at least one provider — any of these works:
export OPENAI_API_KEY="..." # or GEMINI_API_KEY, XAI_API_KEY, PERPLEXITY_API_KEY, KIMI_API_KEY
# OR install the codex / antigravity (agy) / grok / kimi CLIs (uses your
# existing subscription — no API key needed)
# 3. Ask anything
/claude-council:ask "Should I use UUID or BIGINT primary keys for a SaaS users table?"
You get side-by-side responses from each configured provider:
🔳 Codex - default
Use UUID primary keys — they avoid enumeration, work across distributed
services, and survive imports/exports cleanly.
🟦 Antigravity - default
UUIDv7 specifically: security of non-guessable IDs plus the index
locality of time-ordered sequences.
🟥 Grok - grok-4.5
BIGINT autoincrement — smaller index, faster joins. Handle public-
exposure concerns with a separate UUID slug column.
🟩 Perplexity - sonar-reasoning-pro
BIGINT: 25% smaller than UUID, better cache locality, with citations
to Postgres benchmarks.
## Synthesis
Two providers prefer UUID(v7), two prefer BIGINT. Choice depends on
whether you need distributed ID generation.
When they all agree instead, the synthesis says what that agreement rests on, because agreement is where it is easiest to stop asking:
## Synthesis
All five recommend SQLite. Read that as agreement about the reasoning, not
as verification: every provider was given the same description of a system
none of them can inspect. The answer assumes this stays single-node — the
one premise that would flip it, and the one nobody here could check.
Inside tmux, results stream into a side pane in real time with vendor-colored banners. Run /claude-council:status to confirm what's configured and connected.
Features
-
Query Gemini, OpenAI (GPT/Codex), Grok, Perplexity, and Kimi (Moonshot AI) simultaneously
-
Use the
codex,agy(Antigravity),grok, andkimi(Kimi Code) CLIs (subscription auth) when installed — preferred over their API siblings -
Run a local
ollamamodel as a council member — no key, no subscription, no network -
Side-by-side comparison of responses with vendor-colored headers
-
Streaming tmux pane that renders responses as they land
-
Specialized roles, debate mode, and agent-enhanced deep analysis for high-stakes decisions
-
Background jobs (
--async) for long-running queries, with/claude-council:resultto fetch, list, and cancel -
Opt-in stop-gate: a second model reviews your uncommitted diff before Claude ends its turn
-
Extensible provider system — add new AI agents easily
-
Proactive agent that suggests consulting the council on architecture / debugging dead ends
Installation
From Marketplace (Recommended)
# Add the hex-plugins marketplace
/plugin marketplace add hex/claude-marketplace
# Install claude-council
/plugin install claude-council
Manual (run from a local clone)
For normal use, prefer the marketplace or GitHub install above — both persist across sessions. A manual clone is for running from a local working copy (development, or offline). Clone the repo anywhere, then point Claude Code at the repo root for the current session:
git clone https://github.com/hex/claude-council.git
claude --plugin-dir /path/to/claude-council # repo root; loaded for this session only
Cloned it and nothing loads? Two traps to avoid:
-
Don't clone into
~/.claude/plugins/(Windows:%USERPROFILE%\.claude\plugins\). That's Claude Code's managed install cache — it is never scanned for manually-added plugins, so the plugin won't appear in the Installed tab or respond to its slash commands. -
pluginDirectoriesinsettings.jsondoes nothing — it isn't a real setting, so it's silently ignored (no error shown). Use--plugin-dirabove for a local clone, or install via the marketplace / GitHub for a persistent setup.
Usage
Slash Commands
# Query all configured providers
/claude-council:ask "How should I structure authentication in this Express app?"
# Query specific providers
/claude-council:ask --providers=gemini,openai "What's the best approach for caching here?"
# Include a specific file for review
/claude-council:ask --file=src/auth.ts "What's wrong with this implementation?"
# Attach a screenshot for visual critique
/claude-council:ask --image=shot.png "Why does this dialog render off-center?"
# Export response to markdown file
/claude-council:ask --output=docs/auth-decision.md "How should we implement authentication?"
# Quiet mode - show only synthesis
/claude-council:ask --quiet "What's the best caching strategy?"
# Check connectivity and configured models for each provider
/claude-council:status
# Run a long query in the background, fetch it later
/claude-council:ask --async "Deep-dive the tradeoffs of event sourcing here"
/claude-council:result <job-id>
Quick Reference
Flag Description
--providers=list
Query specific providers (e.g., gemini,openai,codex)
--roles=list
Assign roles (e.g., security,performance or preset like balanced)
--debate
Enable two-round debate mode
--file=path
Include specific file in context
--image=path
Attach one image (e.g. a screenshot) for vision-capable providers
--output=path
Export response to markdown file
--quiet
Show only synthesis, hide individual responses
--agents
Agent-enhanced analysis with subagents (slower, deeper)
--local
Local Claude-only council when you have no provider keys (see below)
--async
Detach the query as a background job; fetch with /claude-council:result
--no-cache
Force fresh queries, skip cache
--no-auto-context
Disable automatic file detection
--no-pane
Disable streaming tmux pane (default: on inside tmux)
--verbosity=LEVEL
Response style: brief / standard / detailed
Specialized Roles
Assign different perspectives to each provider for more comprehensive reviews:
# Use specific roles
/claude-council:ask --roles=security,performance,maintainability "Review this auth code"
# Use a preset
/claude-council:ask --roles=balanced "Review this implementation"
Available roles:
-
security- Security Auditor (vulnerabilities, OWASP Top 10) -
performance- Performance Optimizer (efficiency, bottlenecks) -
maintainability- Maintainability Advocate (clarity, future changes) -
devil- Devil's Advocate (challenges assumptions) -
simplicity- Simplicity Champion (identifies over-engineering) -
scalability- Scalability Architect (growth, scaling) -
dx- Developer Experience (API ergonomics) -
compliance- Compliance Officer (GDPR, regulations)
Presets:
-
balanced- security, performance, maintainability -
security-focused- security, devil, compliance -
architecture- scalability, maintainability, simplicity -
review- security, maintainability, dx
Roles are assigned to providers in order, ensuring each provider approaches the question from a different angle.
Debate Mode
Enable multi-round discussions where providers critique each other:
/claude-council:ask --debate "How should I structure the database schema?"
How it works:
-
Round 1: All providers answer the question normally
-
Round 2: Each provider sees the others' responses and provides rebuttals
-
Synthesis: Incorporates debate insights, consensus shifts, and unresolved tensions
Debate mode surfaces blind spots and stress-tests recommendations. The synthesis includes:
-
Strongest criticisms raised
-
Where providers changed positions after seeing alternatives
-
Genuine disagreements that remain
Combine with roles for focused debates:
/claude-council:ask --debate --roles=security,performance,simplicity "Review this architecture"
Agent-Enhanced Analysis (--agents)
For complex decisions where deeper analysis justifies the extra time and cost, --agents spawns
parallel Claude subagents that each independently query, evaluate, and analyze their provider's
response before the orchestrator synthesizes everything.
# Explicit flag
/claude-council:ask --agents "Should we migrate from REST to GraphQL? What are the tradeoffs?"
# Combine with other flags
/claude-council:ask --agents --roles=security,scalability --providers=gemini,openai "Review this auth architecture"
What each subagent does (beyond a simple API call):
-
Queries the provider
-
Evaluates response quality - did it actually address the question?
-
If the response is vague or off-topic, reformulates and retries
-
Asks follow-up questions to surface deeper insights
-
Extracts structured analysis: key recommendations, confidence level