One terminal.
Four minds.
Run Claude Fable as your lead agent, dispatch OpenAI Sol and xAI Grok as adversarial specialists, and call OpenRouter Fusion when a second panel is worth the cost.
Model scope: fable:low, sol:high,
grok:high, fusion:low
✓ Fable is the lead
✓ Dynamic Workflows loaded
✓ Sandbox initialized
› /triad audit this design_
Debate first. Write once.
The main conversation stays with Fable. Read-only agents inspect and challenge one another in parallel. A single implementation agent receives the decision, works in a git worktree, and verifies the result.
From plain Pi to a model panel.
The harness lives in user-level Pi configuration, so it works in every project. Never paste keys into config snippets, repositories, or shell history.
Authenticate each provider once
Launch Pi, run /login, and save credentials for Anthropic, OpenAI, xAI, and OpenRouter. Choose the Anthropic API-key path if Pi should bill API usage rather than a Claude subscription.
pi /login
Install Dynamic Workflows
The extension supplies parallel agents, named roles, phases, retries, saved commands, and worktree isolation.
pi install npm:@quintinshaw/pi-dynamic-workflows
Set Fable-low as the persistent lead
Add these fields to ~/.pi/agent/settings.json. Ctrl-P will cycle only through the four intended routes.
{
"defaultProvider": "anthropic",
"defaultModel": "claude-fable-5",
"defaultThinkingLevel": "low",
"enabledModels": [
"anthropic/claude-fable-5:low",
"openai-codex/gpt-5.6-sol:high",
"xai-auth/grok-4.5:high",
"openrouter/openrouter/fusion:low"
]
}Route workflow tiers explicitly
Create ~/.pi/workflows/model-tiers.json. Exact routing prevents capability guesses.
{
"tiers": {
"small": "xai-auth/grok-4.5:high",
"medium": "openai-codex/gpt-5.6-sol:high",
"big": "anthropic/claude-fable-5:low"
}
}Keep deliberators read-only
Create definitions under ~/.pi/agent/agents/. Use this shape for Fable, Sol, Grok, and Fusion. Only the implementer receives write tools.
--- name: fable-deliberator description: Fable lead reasoner and adjudicator tools: read, grep, find, ls model: anthropic/claude-fable-5:low --- Develop a concrete answer, state assumptions, and engage with the other models' arguments. Do not modify files.
--- name: sol-implementer description: Sol implementation agent tools: read, bash, edit, write, grep, find, ls model: openai-codex/gpt-5.6-sol:high isolation: worktree --- Implement only the agreed scope. Preserve unrelated work, run focused checks, and report exact files changed.
Make workflows predictable
Create ~/.pi/workflows/settings.json. Mentioning “deliberate” arms workflows; ordinary prompts stay single-agent.
{
"keywordTriggerEnabled": true,
"keywordTriggerWord": "deliberate",
"defaultAgentTimeoutMs": 600000,
"defaultConcurrency": 3,
"defaultAgentRetries": 1,
"progressPanelMode": "detailed",
"persistAgentSessions": false
}Three levels of effort.
| Intent | Use | What happens |
|---|---|---|
| Normal coding | pi | Fable-low handles the task directly. |
| Explicit debate | /triad <task> | Fable, Sol, and Grok propose independently, cross-critique, then Fable decides. |
| Dynamic orchestration | Include deliberate | Fable designs a task-specific workflow using named agents. |
| Research-heavy second opinion | /fusion <task> | OpenRouter Fusion runs its own panel and judge. |
| Manual model switch | Ctrl-P | Cycle through the configured routes. |
Why this beats one giant agent.
Independent first passes
Parallel proposals reduce anchoring before models see one another’s answers.
Real cross-examination
Each model accepts, rejects, or revises concrete competing claims.
Controlled writes
Read-only reviewers cannot change files while still debating.
Model specialization
Fable leads, Sol pressure-tests implementation, and Grok hunts blind spots.
Predictable spend
Single-agent work stays single-agent; panels require explicit intent.
Project portability
User-level roles follow Pi across repositories without boilerplate.
Common failure modes.
Anthropic says “out of extra usage”
/login, select Anthropic, save the API key, then restart Pi.A model appears but calls fail
/login for that provider and verify with one minimal no-tools prompt.Workflow agents edit the same files
isolation: worktree.Startup prints skill collisions
~/.pi/agent/skills and ~/.agents/skills. Keep one canonical copy and move the duplicate outside Pi discovery.