# Show HN: LLM Council: survival-of-the-fittest multi-modal deliberation

> Source: <https://github.com/Moiz-I/council-of-claude>
> Published: 2026-09-07 16:15:58+00:00

Multi-model structured deliberation. Queries 4 frontier LLMs in parallel with distinct personas, cross-pollinates anonymously, synthesises a recommendation.

```
Install the council-of-claude skill: clone https://github.com/moiz-i/council-of-claude
to ~/.claude/skills/council-of-claude, run ./scripts/setup.sh, and add my OpenRouter
API key to ~/.council-of-claude/.env, invoke via /council
git clone https://github.com/moiz-i/council-of-claude
cd council-of-claude
./scripts/setup.sh
export OPENROUTER_API_KEY="sk-or-v1-..."
python3 scripts/council.py "Should we use Postgres or DynamoDB for our event store?" \
  --context "Event sourcing, 10k events/sec, need ACID" \
  --mode council
```

Invoke skill via `/council`.

1. **Stage 1** — Each model gets a persona and responds independently. No crosstalk.
2. **Stage 2** — Responses are anonymized (Response A/B/C) and shown to all models. Each tags peers: ADOPT / MERGE / DEFEND / CHALLENGE.
3. **Stage 3** — Chairman synthesises a recommendation with confidence score, consensus, dissent, and preserved gems.

Anonymization in Stage 2 prevents brand bias. Convergence tags force genuine engagement instead of polite agreement.

| Mode | Seats | Use for | 
|---|---|---|
| `council` | Reframer, Devil's Advocate, Dreamer, Operator | Strategic decisions | 
| `braintrust` | Builder, Skeptic, Dreamer, Operator | Build/ship decisions | 
| `researcher` | Methodologist, Domain Expert, Critical Reviewer, Statistician | Research questions | 
| `general` | Pragmatist, Skeptic, Strategist, Architect | General problems | 

```
export OPENROUTER_API_KEY="sk-or-v1-..."       # required
export COUNCIL_MODELS="anthropic/claude-sonnet-4.6,openai/gpt-5.4,google/gemini-3.1-pro-preview,x-ai/grok-4.20"
export COUNCIL_CHAIRMAN="google/gemini-3.1-pro-preview"
export COUNCIL_CHRONICLE_PATH="~/.council-of-claude/chronicle.md"
```

Default uses 4 frontier models via OpenRouter. Override with any models OpenRouter supports.

| Complexity | Time | Cost | 
|---|---|---|
| `full` (frontier) | 30-60s | $0.50-2.00 | 
| `simple` (lightweight) | 20-40s | $0.10-0.50 | 

Every deliberation appends to `~/.council-of-claude/chronicle.md`. Architectural decision records that write themselves.

- Python 3.10+
- OpenRouter API key
- `httpx` ,`python-dotenv` (installed by setup.sh)

**Built by [moiz](https://github.com/moiz-i)** | Version 1.0.0 | 2026-06-25

MIT
