Show HN: Ordewell – turn one goal into an ordered plan of coding-agent tasks Ordewell launched as an open-source tool that converts a single coding goal into an ordered plan of coding-agent tasks, each assigned its own runner, model, thinking effort and mode, then executes and verifies them. The tool installs via `npm install -g ordewell` on Node.js 20 or higher for macOS, Linux and Windows, and can use Claude Code, Codex or OpenCode as its read-only planner on an existing subscription without a separate API key, or one of 25 recognized providers via their own `*_API_KEY` variables. Ordewell completes a task only when its unique completion marker appears in the runner's output, retaining the exit code as diagnostic evidence rather than letting the model decide. Turn one goal into an ordered plan of coding-agent tasks — each with its own runner, model and mode — then execute and verify it. - A plan you can rewrite before a token is spent. The plan is a typed artifact, not an agent's internal state: every task carries a runner, model, thinking effort and mode, and you can change any of them, add and remove tasks, and rewire dependencies — without losing completed work or round-tripping the AI. - The right model per task, chosen in the open. The planner makes one portfolio decision across the whole plan — a security refactor and a README update do not deserve the same model — and shows you every assignment before anything runs why a separate planner? https://github.com/ordewell/ordewell/blob/main/docs/why-a-separate-planner.md . - Verdicts from evidence, not opinion. A task completes only when its unique completion marker appears in the runner's output; exit code is retained as diagnostic evidence. The model is never the tie-breaker. Stuck tasks can be advanced with Mark complete , and a task marked done by mistake goes back with Mark not done . - A planner that talks back. Planning is one continuous chat: it researches your repo read-only, asks when your goal is vague, and its final message is the plan ADR-0002 https://github.com/ordewell/ordewell/blob/main/docs/adr/0002-planner-as-conversation-loop.md . Reads run in parallel; anything reaching outside the workspace asks once; commands that would write are refused outright ADR-0008 https://github.com/ordewell/ordewell/blob/main/docs/adr/0008-planner-exploration-envelope.md . - No extra API key required. Claude Code, Codex, or OpenCode can be the planner, strictly read-only, on the subscription you already hold for the runners ADR-0009 https://github.com/ordewell/ordewell/blob/main/docs/adr/0009-coding-agents-as-planners.md . - Multi-runner by design. Enable several and the planner assigns one per task. Claude Code, Codex and OpenCode ship built-in; anything else — Aider, your own CLI — is a plugin manifest, not a code change. Node.js ≥ 20 on macOS, Linux or Windows. The TUI also needs tmux — see Platform support below. npm install -g ordewell ordewell the TUI — chat on the left, plan on the right That's it. First run asks for a planner and a runner, set from inside /planner , /runners , /key — no restart, no API key required up front. npx ordewell works the same without a global install; the package also ships scoped as @ordewell/cli . For VS Code instead, install the extension — it carries its own core, so there is nothing to install from npm: code --install-extension ordewell.ordewell Or search Ordewell in the Extensions view. Building from source: git clone https://github.com/ordewell/ordewell.git && cd ordewell && npm install && npm run build && npm link -w packages/cli — see CONTRIBUTING.md https://github.com/ordewell/ordewell/blob/main/CONTRIBUTING.md . Every slash command is also a subcommand — set the planner and runner by env var to skip the TUI entirely. Already run Claude Code, Codex, or OpenCode? No separate API key — it runs on the subscription you already hold: export AI PROVIDER="claude-code" or codex, opencode ordewell plan --goal "Add rate limiting to the public API" && ordewell run Mutation always stays with the runners; the planner agent only explores and reasons. Same toggles apply from a UI: /planner , /model , /planner-effort , or the planner bar in VS Code. Prefer an API key? Twenty-five providers are recognised via their own API KEY — OpenRouter, Anthropic, OpenAI, Gemini, xAI, Groq, DeepSeek, Mistral, Together, Fireworks, Perplexity, Cerebras, DeepInfra, Cohere, Novita, Kimi, Zhipu, Qwen, Doubao, Hunyuan, Baichuan, MiniMax, Yi, StepFun and SiliconFlow. Run ordewell key for variable names, or point OPENAI COMPATIBLE BASE URL at anything else, including a local model server. export OPENROUTER API KEY="sk-or-..." ordewell plan --goal "Add rate limiting to the public API" && ordewell run A streaming timeline: live thinking, each research step with its outcome, and task cards you expand for the runner's own output. Retarget a task's runner and its model and mode re-derive in place. The whole loop is below, under The VS Code loop, end to end . Everything the extension does, over SSH. tab swaps chat and plan pane; single keys drive the plan f start, E run all, m toggle done, R runner, o model . /help lists the rest. bash $ ordewell plan --goal "Add rate limiting to the public API" Generating plan for: "Add rate limiting to the public API"... ✓ list dir src → D middleware F router.ts F auth.ts ✓ grep X-RateLimit → no matches in 6 files Question: should limits apply per API key, or per client IP? My recommendation: per key — auth already threads the key through req.ctx. per key, with an IP fallback for anonymous routes Plan: 4 tasks 3 AI, 1 Manual — claude-code, opencode Session: session-1751600000000 1. AI Add a token-bucket limiter in src/middleware/rateLimit.ts Claude Sonnet 4.5 · Claude Code 2. AI Wire the limiter into route registration Claude Haiku 4.5 · Claude Code 3. AI Return RFC 6585 429s with Retry-After DeepSeek V4 Flash · Opencode 4. MAN Document the limit headers in the OpenAPI spec MAN = manual step — run ordewell tui to work through it Run 'ordewell run' to execute, 'ordewell status' to inspect, or 'ordewell tui' for the full UI. $ ordewell run Executing plan... ✓ a1b2 completed — PASS: Verified: completion marker detected in agent output. Task c ⟳ c3d4 in progress 2/Wire the limiter into route registration Started: claude-code / claude-haiku-4-5 Done. 4 completed, 0 failed, 0 blocked. Every slash command is also an ordewell subcommand, so nothing is UI-only and headless automation reaches everything a human can. 1. Describe a goal in plain prose. 2. The planner researches your workspace read-only and interleaves questions with research in one persistent conversation ADR-0008 https://github.com/ordewell/ordewell/blob/main/docs/adr/0008-planner-exploration-envelope.md . 3. A plan appears — ordered tasks, each with a runner, model, thinking effort and mode. Edit anything inline, or reprompt to reshape the whole plan without losing completed work. 4. Execution spawns a real coding-agent session per AI task, respecting the dependency graph and handing each task its predecessors' results. Manual tasks become checklists. 5. The VerdictEngine completes a task only once its marker appears; an exit without one fails visibly. Sessions auto-save to .ordewell/sessions/ . Usage examples — planning, editing, multi-runner, plugins Plan, edit, execute The planner researches the repo and converses if the goal is underspecified ordewell plan --goal "Migrate the config loader from JSON to TOML" Reassign before running — runner first, since it re-derives model, effort and mode ordewell task-runner 2 opencode ordewell task-deps 3 1,2 Execute; independent tasks run in parallel default: 3 concurrent sessions ordewell run Inspect any session later ordewell status --session-id session-1751600000000 The surfaces differ only in how you name a target: the TUI opens a picker, the CLI takes an argument — and omitting the argument prints the same options the picker would have shown. ordewell task-model 3 lists the models that task's runner can spawn ordewell task-model 3 sonnet picks one Configure without an editor ordewell planner claude-code plan on a coding agent's subscription — no API key ordewell model set sonnet scoped to that agent's own catalog ordewell planner-effort high a variant of the selected model ordewell key set openrouter sk-… stored in .env, never echoed back ordewell runners codex off Each pushes to the running server before writing .env , so the change lands on the next plan with no restart — and a refused connection cannot leave the file holding a setting the daemon never saw. Deep-interview planning with a PRD ordewell grilling on planner interrogates your goal before outlining min. 3 probing questions ordewell prd on planner previews, then writes a full PRD to .scratch/