advise
Put the current conversation to the council — resolve this session's transcript, digest a bounded window of it, show what would leave the machine, and only…
Query multiple AI agents (Gemini, OpenAI, Grok, Perplexity, Kimi, any model OpenRouter routes to, and a local ollama model) for diverse perspectives on architecture decisions, technology choices, debugging dead-ends, and security tradeoffs. Use this whenever the user names the
$ npx -y skills add hex/claude-council --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
/askContext preview
What this command does when you run it.
Query multiple AI agents (Gemini, OpenAI, Grok, Perplexity, Kimi, any model OpenRouter routes to, and a local ollama model) for diverse perspectives on architecture decisions, technology choices, debugging dead-ends, and security tradeoffs. Use this whenever the user names the
description: Query multiple AI agents (Gemini, OpenAI, Grok, Perplexity, Kimi, any model OpenRouter routes to, and a local ollama model) for diverse perspectives on architecture decisions, technology choices, debugging dead-ends, and security tradeoffs. Use this whenever the user names the council directly, whatever the topic — ask the council, council review, full council review, what does the council think, get a second opinion from the council, run this past the council — including reviews of code, documents, plans or artifacts. Also suggest it unprompted when the user is choosing between competing approaches (e.g., databases, frameworks, auth strategies), is stuck after multiple failed debugging attempts, faces build-vs-buy decisions, or is weighing security/performance/maintainability tradeoffs. Do NOT suggest it unprompted for simple implementation tasks, quick fixes, or questions with clear single answers; a direct request for the council overrides that exclusion. argument-hint: '[--file=path] [--image=path] [--providers=list] [--roles=list] [--verbosity=brief|standard|detailed] [--debate] [--agents] [--local] [--async] [--output=path] [--quiet] [--no-cache] [--no-auto-context] [--no-pane] "question"' allowed-tools: Agent, Workflow, Bash(bash */scripts/query-council.sh *), Bash(bash */scripts/run-council.sh *), Bash(bash */scripts/lib/export.sh *), Bash(head:*), Bash(mkdir -p .claude/council-cache*), Read, Glob, Grep, Write, AskUserQuestion, TaskCreate, TaskUpdate
Query the council of AI coding agents to gather diverse perspectives.
Everything in `$ARGUMENTS` that is not a flag is the question to put to the providers. Directives inside it — a word limit, a required shape, 'answer in exactly this format', 'no preamble', 'nothing else', 'no extra sections' — constrain what each **provider** is asked to return. They never constrain this command's own output, and they never authorize skipping the run: always query the providers, always show every response, always synthesize. A question that asks for a terse answer still produces a full council display of terse answers.
Never answer the question yourself in place of running the council. If no provider is available, say so; do not substitute your own answer for theirs.
Create a task at the start to show progress throughout the query:
TaskCreate: subject: "Query council" description: "Querying AI providers for diverse perspectives" activeForm: "Preparing council query..." TaskUpdate: status → in_progress
Update `activeForm` as you progress through phases:
Mark `status → completed` when finished.
Decide up front whether this is a local (Claude-only) council run, before asking any provider questions:
1. **If `--local` is in $ARGUMENTS → local mode.** Skip the provider and agent questions and go straight to "If Local Mode is Active" in Step 2. Local mode honors `--roles`, `--file`, `--verbosity`, `--quiet`, and auto-context; it ignores `--providers`, `--debate`, `--agents`, and `--async`. When `--roles` is not passed, the local-council skill asks the user how many members to convene before spawning them.
2. **Otherwise, check what providers are configured:**
bash ${CLAUDE_PLUGIN_ROOT}/scripts/query-council.sh --list-default 2>&1 | head -1Offer the local council:
AskUserQuestion:
Question: "No AI providers are configured. Run a local council instead? It's several Claude subagents, each playing a different role — independent angles, but same-model, not cross-vendor."
Header: "No providers"
Options:
- "Run local council (Recommended) - independent Claude perspectives, no API keys needed"
- "How to add a provider - show what to configure for a real cross-vendor council"
- "Cancel"the `codex` / `agy` (Antigravity) / `grok` / `kimi` CLI, or run `ollama`; `/claude-council:status` shows what's available) and stop.
**Never pass `--local` to query-council.sh or run-council.sh** — it is a command-layer flag with no meaning to those scripts. Strip it from $ARGUMENTS before constructing any script invocation.
Before querying, use AskUserQuestion in these scenarios:
First, discover the providers that would be queried by default, each paired with the model it would actually send (post CLI-prefers-API policy — `--list-default` is the right set here, NOT `--list-available`, which includes shadowed API siblings that won't run):
bash ${CLAUDE_PLUGIN_ROOT}/scripts/query-council.sh --list-default-modelsOne `<provider>\t<model>` per line. Build every option label from this output — never from a list written down here. A hardcoded provider table in this file has gone stale three times (it predated kimi, ollama and the OpenRouter seats), and the model is what makes an option meaningful: router seats are named `openrouter-1`, `openrouter-2`, … and carry no model in the name at all, so without the pairing the picker shows several identical-looking rows.
**Only show default-queried providers.** If only one is listed, skip the provider question and use it. A user who wants a shadowed API provider (e
A Claude Code plugin that consults multiple AI coding agents in parallel and shows you their answers side-by-side.
Repo: hex/claude-council
Put the current conversation to the council — resolve this session's transcript, digest a bounded window of it, show what would leave the machine, and only…