llm-council

Runs three-phase multi-LLM deliberation with anonymized peer ranking and chairman synthesis.

1|Updated May 6, 2026
One-click install
npx skills add https://github.com/surfingalien/FinSurfing --skill llm-council-surfingalien
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: llm-council
Source: https://github.com/surfingalien/FinSurfing/tree/main/.claude/skills/llm-council
Command: npx skills add https://github.com/surfingalien/FinSurfing --skill llm-council-surfingalien

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? High-stakes decisions made from a single AI response risk blind spots and bias. This Skill convenes multiple LLMs to answer independently, rank each other's anonymized responses, and produce a chairman-synthesized final answer, giving you a structured multi-perspective deliberation. ## Core Features & Use Cases - Three-phase deliberation: independent responses, cross-model anonymized ranking, and chairman synthesis, with all phases persisted to disk verbatim. - Provider-agnostic configuration: works with Anthropic, OpenAI, OpenRouter, Fireworks, or any custom OpenAI-compatible endpoint selected via environment variables. - Wiki persistence: optionally writes the full transcript to a wiki page so the deliberation becomes searchable later. - Use Case: Before committing to a contested architecture decision, run the council on your plan so three to five models critique it independently, rank the critiques, and a chairman model delivers the final synthesized recommendation. ## Quick Start Ask the AI to run the LLM Council on your question, for example: run a council deliberation on whether we should adopt episodic memory in our agents and persist the transcript to the wiki.

Frequently Asked Questions about llm-council

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run a multi-LLM council deliberation from the command line?

Run node scripts/council.js run "<query>" with optional flags like --models, --chairman, --provider, and --wiki. The script executes all three phases and prints a markdown bundle of responses, rankings, and the chairman synthesis.

Which LLM providers does the council script support?

The script supports Anthropic, OpenAI, OpenRouter, Fireworks, and any custom OpenAI-compatible endpoint. The provider is auto-detected from environment variables like ANTHROPIC_API_KEY or OPENAI_API_KEY, or set explicitly with --provider.

Can I use a custom OpenAI-compatible API endpoint with the council?

Yes. Set LLM_COUNCIL_BASE_URL and LLM_COUNCIL_API_KEY, optionally with LLM_COUNCIL_MODELS and LLM_COUNCIL_CHAIRMAN, then run with --provider custom. The script sends standard chat completions requests to your endpoint.

Why does the council anonymize responses during the ranking phase?

Anonymization prevents models from favoring responses based on peer identity rather than content quality. Each model sees labels like Response A, B, C and ranks them objectively, while only the chairman sees real model names alongside the rankings.

How does council cost scale with the number of models?

Cost grows roughly quadratically because every model ranks all other responses, plus one chairman synthesis call. The default council size is 3-5 models, and the script logs per-call latency and token usage on supported providers.