@rakohq/pi-council
Multi-model LLM Council for adversarial debate, cross-validation, and synthesized decision-making via pi-teams
Package details
Install @rakohq/pi-council from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@rakohq/pi-council- Package
@rakohq/pi-council- Version
0.1.0- Published
- Apr 20, 2026
- Downloads
- 71/mo · 16/wk
- Author
- rakohq
- License
- MIT
- Types
- extension, skill
- Size
- 46.8 KB
- Dependencies
- 0 dependencies · 3 peers
Pi manifest JSON
{
"extensions": [
"extensions/index.ts"
],
"skills": [
"skills"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-council
Multi-model LLM Council for adversarial debate, cross-validation, and synthesized decision-making.
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ claude-opus-4-6│ │ claude-opus-4-7│ │ claude-sonnet-4-6│
│ DRAFTER #1 │ │ DRAFTER #2 │ │ DRAFTER #3 │
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
│ │ │
┌────────┴────────┐ ┌───────┴─────────┐
│ gpt-5.4 │ │ gpt-5.3-codex │
│ DRAFTER #4 │ │ DRAFTER #5 │
└────────┬────────┘ └────────┬────────┘
│ │
└────────┬───────────┘
▼
╔══════════════════════╗
║ ADVERSARIAL DEBATE ║
║ (2 rounds) ║
╚══════════╤═══════════╝
▼
┌──────────────────────┐
│ SYNTHESIS │
│ (claude-opus-4-7) │
└──────────┬───────────┘
▼
┌──────────────────────┐
│ FINAL VERDICT │
│ Confidence: 94% │
└──────────────────────┘
Installation
pi install npm:pi-council
Usage
As a Tool (LLM calls it)
The council tool is available to the LLM for tasks that benefit from multi-model deliberation:
council({
task: "Design a mass hallucination prevention system",
mode: "full",
debate_rounds: 2
})
As a Command
/council Design a caching layer for our API
/council --mode draft Quick brainstorm on auth strategies
/council --rounds 3 --mode critique Review this security implementation
Configuration
# Environment variables
export COUNCIL_MODELS="anthropic/claude-opus-4-6,anthropic/claude-opus-4-7,anthropic/claude-sonnet-4-6,openai-codex/gpt-5.4,openai-codex/gpt-5.3-codex"
export COUNCIL_SYNTHESIZER="anthropic/claude-opus-4-7"
export COUNCIL_ROUNDS=2
Or use the council_config tool:
council_config({ action: "set", debate_rounds: 3 })
council_config({ action: "get" })
Pipeline
| Phase | What Happens |
|---|---|
| 1. Parallel Drafts | All models independently answer the task |
| 2. Adversarial Debate | Models critique each other through N rounds |
| 3. Synthesis | Designated model merges best ideas |
| 4. Validation | Optional JSON schema validation with retry |
Modes
| Mode | Phases | Use Case |
|---|---|---|
full |
All 4 | Highest quality, default |
draft |
Draft only | Quick parallel brainstorm |
critique |
Draft + Debate | Get diverse critiques without merging |
Models
Default council members:
| Model | Provider |
|---|---|
| claude-opus-4-6 | anthropic |
| claude-opus-4-7 | anthropic |
| claude-sonnet-4-6 | anthropic |
| gpt-5.4 | openai-codex |
| gpt-5.3-codex | openai-codex |
Override per invocation or globally via config.
Structured Output
Pass a JSON schema to get validated structured output:
council({
task: "Evaluate these 3 database options",
schema: {
type: "object",
required: ["recommendation", "scores", "reasoning"],
properties: {
recommendation: { type: "string" },
scores: { type: "object" },
reasoning: { type: "string" }
}
}
})
The council will retry up to 3 times if the output doesn't conform.
Requirements
- pi (the coding agent)
- API keys for Anthropic and OpenAI (or whichever models you configure)
- Terminal multiplexer (cmux, tmux, iTerm2, Wezterm, or Windows Terminal) for visual pane mode
License
MIT