Orchestrates multi-LLM CLI planning council (Codex, Claude Code, Gemini, OpenCode) to generate independent plans, anonymize/randomize them, judge, and merge into final plan with retries and failure handling. Use for bias-resistant code planning workflows.
npx claudepluginhub joshuarweaver/cascade-code-general-misc-4 --plugin am-will-codex-skills-5This skill uses the workspace's default tool permissions.
- Always check for an existing agents config file first (`$XDG_CONFIG_HOME/llm-council/agents.json` or `~/.config/llm-council/agents.json`). If none exists, tell the user to run `./setup.sh` to configure or update agents.
references/architecture.mdreferences/cli-notes.mdreferences/data-contracts.mdreferences/prompts.mdreferences/schemas/council_plan.schema.jsonreferences/schemas/final_plan.schema.jsonreferences/schemas/judge_input.schema.jsonreferences/schemas/judge_output.schema.jsonreferences/schemas/task_spec.schema.jsonreferences/task-spec.example.jsonreferences/templates/judge.mdreferences/templates/plan.mdscripts/llm_council.pyscripts/ui/app.jsscripts/ui/index.htmlscripts/ui/styles.cssscripts/ui_server.pyscripts/ui_state.pysetup.batsetup.ps1Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
$XDG_CONFIG_HOME/llm-council/agents.json or ~/.config/llm-council/agents.json). If none exists, tell the user to run ./setup.sh to configure or update agents.python3 scripts/llm_council.py run --spec /path/to/spec.json to run the council../llm-council/runs/<timestamp> relative to the current working directory.python3 scripts/llm_council.py configure (writes $XDG_CONFIG_HOME/llm-council/agents.json or ~/.config/llm-council/agents.json).judge.md and final-plan.md.final-plan.md are confirmed saved; keep the session open during that interval to avoid closing the interface. If you yield while the Council is running, the session will be terminated and you will FAIL to complete the task. The user will escape out when they are ready or after the 30 minutes have elapsed.
Use agents.planners to define any number of planning agents, and optionally agents.judge to override the judge.
If agents.judge is omitted, the first planner config is reused as the judge.
If agents is omitted in the task spec, the CLI will use the user config file when present, otherwise it falls back to the default council.
Example with multiple OpenCode models:
{
"task": "Describe the change request here.",
"agents": {
"planners": [
{ "name": "codex", "kind": "codex", "model": "gpt-5.2-codex", "reasoning_effort": "xhigh" },
{ "name": "claude-opus", "kind": "claude", "model": "opus" },
{ "name": "opencode-claude", "kind": "opencode", "model": "anthropic/claude-sonnet-4-5" },
{ "name": "opencode-gpt", "kind": "opencode", "model": "openai/gpt-4.1" }
],
"judge": { "name": "codex-judge", "kind": "codex", "model": "gpt-5.2-codex" }
}
}
Custom commands (stdin prompt) can be used by setting kind to custom and providing command and prompt_mode (stdin or arg).
Use extra_args to append additional CLI flags for any agent.
See references/task-spec.example.json for a full copy/paste example.
references/architecture.mdreferences/prompts.mdreferences/templates/*.mdreferences/cli-notes.mdfinal-plan.md are saved; keep the session open during that interval to avoid closing the interface.