Help us improve
Share bugs, ideas, or general feedback.
From pro-workflow
Runs provider-agnostic multi-LLM council deliberations: independent responses, anonymized peer ranking, chairman synthesis. Config via env for OpenAI/Anthropic/Fireworks/OpenRouter. Persists transcripts to wiki for consensus on high-stakes reviews.
npx claudepluginhub rohitg00/pro-workflow --plugin pro-workflowHow this skill is triggered — by the user, by Claude, or both
Slash command
/pro-workflow:llm-councilThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Karpathy's LLM Council pattern, provider-agnostic. dair-academy's version hardcoded Fireworks; ours reads any OpenAI-compatible endpoint via env.
Orchestrates three-phase LLM consensus protocol coordinating Claude, OpenAI Codex, and Google Gemini CLIs for collaborative code review, multi-model problem-solving, and decision-making.
Runs multi-LLM council for adversarial debate, critique, and synthesis on implementation, architecture, review, security, research, and planning tasks via llm-council CLI.
Runs a configurable multi-LLM council with personas, budget caps, synthesis, veto gates, and optional implementation handoff for advice, decisions, plans, or reviews.
Share bugs, ideas, or general feedback.
Karpathy's LLM Council pattern, provider-agnostic. dair-academy's version hardcoded Fireworks; ours reads any OpenAI-compatible endpoint via env.
/plan crosses N-file threshold)/council "<query>" or /wiki councilProvider chosen via env. First-match wins:
| Env var | Provider | Default base URL |
|---|---|---|
ANTHROPIC_API_KEY | Anthropic | https://api.anthropic.com |
OPENAI_API_KEY | OpenAI | https://api.openai.com/v1 |
OPENROUTER_API_KEY | OpenRouter | https://openrouter.ai/api/v1 |
FIREWORKS_API_KEY | Fireworks | https://api.fireworks.ai/inference/v1 |
LLM_COUNCIL_BASE_URL + LLM_COUNCIL_API_KEY | Custom OpenAI-compat | (user-supplied) |
Override per-run with --provider openai|anthropic|openrouter|fireworks|custom.
Default model rosters per provider live in scripts/council.js and can be overridden via --models CSV and --chairman <id>.
node $SKILL_ROOT/scripts/council.js run "<query>" [--models id1,id2,id3] [--chairman id] [--provider <name>] [--wiki <slug>]
node $SKILL_ROOT/scripts/council.js providers
node $SKILL_ROOT/scripts/council.js show <session-id>
--wiki <slug> writes the full transcript to <wiki>/derived/council/<session-id>.md and registers it via wiki-cli.js page so it shows in FTS5 search.
Each session writes:
~/.pro-workflow/council/<session-id>/
├── config.json # query, models, chairman, provider
├── phase1_responses.json # raw API responses per model
├── phase2_rankings.json # anonymized ranking outputs
├── phase3_synthesis.txt # chairman's final answer
└── final_output.md # human-readable bundle
Console prints the markdown bundle. Pipe to pbcopy / tee as needed.
Response A/B/C/..., not peer names.The script logs per-call latency + tokens on supported providers. Multiply by your provider rate to estimate. Council cost grows linearly with len(models)^2 (each model ranks all others) plus the chairman.
Default council size: 3-5 models. More models = exponentially more ranking calls.
/wiki council agent-memory "should we adopt episodic memory in our agents?"
Loads agent-memory wiki context as system prompt prefix, runs council, persists transcript as wiki/derived/council/<id>.md. The transcript becomes searchable via /wiki ask.