claude-council
hex · hex/claude-council
This Claude Code plugin consults multiple AI coding agents in parallel and displays their side-by-side responses for comparison and cross-checking.
Claude Code plugin that asks several AI coding agents the same question and shows their answers side by side. Gemini, OpenAI, Grok, Perplexity, Kimi and any model OpenRouter routes to over API; codex, antigravity, grok, kimi and cursor CLIs on subscription auth; ollama locally. Codex specialists take coding tasks on their own branch (experimental).
Preview
What you can do with it
- Compare architectural decisions suggested by different AI models.
- Get varied debugging approaches when encountering dead ends.
- Cross-check security review findings from multiple AI agents.
Safety check
No risky patterns found in the files we scanned.
Automated scan of the repo files. Always review code you run.
From the README
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,
# OPENROUTER_API_KEY
# OR install the codex / antigravity (agy) / grok / kimi / cursor-agent 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-latest
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
- Seat any model OpenRouter routes to — Anthropic's Claude by default, so the council hears the one vendor it otherwise has no voice for
- Use the
codex,agy(Antigravity),grok,kimi(Kimi Code) andcursor-agent(Cursor) CLIs (subscription auth) when installed; the first four are 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
- Put the conversation itself to the council with
/claude-council:advise, which shows you what would leave the machine before it goes - Proactive agent that suggests consulting the council on architecture / debugging dead ends
- Council as a tool (
mcp__claude-council__ask, thecouncil_toolsetting in/config, on by default): the model can call the council itself, every call opens a dialog that quotes the question and names the providers, and nothing leaves the machine until you chooseSend to the council; needsCLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 - Specialists (experimental): hand a coding task to a Codex agent that works on its own git branch, following skills you pick
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?