multiplan
Run a task through 4 models in parallel → cross-examine → converge on a weighted final plan.
Binary: multiplan (installed at ~/.local/bin/multiplan)
Runs saved to: ~/.multiplan/runs/<timestamp>/
Setup check
multiplan --version # should print "multiplan v0.4.0"
Required env vars (at least one model must be available):
ANTHROPIC_API_KEY— Claude (Opus)GOOGLE_AI_API_KEYorGEMINI_API_KEY— GeminiOPENAI_API_KEY— Codex/GPTZAI_API_KEY— GLM-5
Basic usage
# Run planning on a task
multiplan "Design a rate limiting system for the API"
# With requirements and constraints
multiplan "Build a real-time notification system" \
--req "Must support 10k concurrent users, WebSocket-based" \
--con "No new infrastructure — use existing Redis + Postgres"
# Verbose (see each model finish in real time)
multiplan "Design an auth system" --verbose
# JSON output (for piping/scripting)
multiplan "Design a caching layer" --json
# Quiet (errors + final plan only)
multiplan "Design a webhook system" --quiet
Output files
After a run, ~/.multiplan/runs/LATEST/ contains:
| File | Contents |
|---|---|
plan-claude.md |
Correctness + edge cases lens |
plan-gemini.md |
Scale + ops simplicity lens |
plan-codex.md |
Implementation speed lens |
plan-glm5.md |
Failure analysis + critic lens |
debate.md |
Cross-examination of all 4 plans |
final-plan.md |
✅ Weighted synthesis — start here |
Eval
# Eval a single plan
multiplan eval ~/.multiplan/runs/LATEST/final-plan.md
# Eval all plans in a run directory
multiplan eval ~/.multiplan/runs/LATEST/
# With a fixture (task + expected topics + min score)
multiplan eval ~/.multiplan/runs/LATEST/ --fixture eval/fixtures/rate-limiter.json
# JSON output
multiplan eval ~/.multiplan/runs/LATEST/ --json
Config file
Create ~/.config/multiplan/config.yml to set defaults:
debate_model: claude
converge_model: claude
timeout_ms: 120000
verbose: false
CLI flags always override config file.
Workflow for user requests
- Extract the task, requirements, and constraints from what the user said
- Run
multiplan "<task>" --req "<reqs>" --con "<constraints>" --verbose - When complete, read
~/.multiplan/runs/LATEST/final-plan.mdand present it - Optionally run
multiplan eval ~/.multiplan/runs/LATEST/and show scores
Tips
- Always use
--verboseso the user can see models completing in real time - If a model is unavailable (missing API key), multiplan skips it and continues with the rest
- The final plan is already a synthesis — no need to re-summarise it; just present it directly
- For big tasks, add
--timeout 180000(3 min) to give models more time