|
| 1 | +# TAGLINE |
| 2 | + |
| 3 | +Plan, run, and verify coding-agent tasks from a goal |
| 4 | + |
| 5 | +# TLDR |
| 6 | + |
| 7 | +**Open the terminal UI** (chat on the left, plan on the right) |
| 8 | + |
| 9 | +```ordewell``` |
| 10 | + |
| 11 | +**Plan a goal** using a coding agent you already have installed (no API key) |
| 12 | + |
| 13 | +```AI_PROVIDER=claude-code ordewell plan --goal "[Add rate limiting to the public API]"``` |
| 14 | + |
| 15 | +**Execute** the last generated plan |
| 16 | + |
| 17 | +```ordewell run``` |
| 18 | + |
| 19 | +**Inspect** recent sessions, or one session in detail |
| 20 | + |
| 21 | +```ordewell status``` |
| 22 | + |
| 23 | +```ordewell status --session-id [session-id]``` |
| 24 | + |
| 25 | +**Pick the planner** (Claude Code, Codex, OpenCode, or an API provider) |
| 26 | + |
| 27 | +```ordewell planner [claude-code]``` |
| 28 | + |
| 29 | +**Reassign a task's runner** before anything runs |
| 30 | + |
| 31 | +```ordewell task-runner [2] [opencode]``` |
| 32 | + |
| 33 | +**Start the local API server** in the background |
| 34 | + |
| 35 | +```ordewell web --daemon``` |
| 36 | + |
| 37 | +**Print the installed version** |
| 38 | + |
| 39 | +```ordewell --version``` |
| 40 | + |
| 41 | +# SYNOPSIS |
| 42 | + |
| 43 | +**ordewell** [_command_] [_options_] |
| 44 | + |
| 45 | +**ordewell** **plan** **--goal** _text_ [_--runner_ _id_] [_--workspace_ _path_] [_--no-chat_] |
| 46 | + |
| 47 | +**ordewell** **run** [_--session-id_ _id_] |
| 48 | + |
| 49 | +# PARAMETERS |
| 50 | + |
| 51 | +**--help**, **-h** |
| 52 | +> Print usage. Every slash command in the TUI is also a CLI subcommand of the same name. |
| 53 | +
|
| 54 | +**--version**, **-v**, **version** |
| 55 | +> Print the installed version as a bare string. |
| 56 | +
|
| 57 | +**--workspace** _path_ |
| 58 | +> Workspace directory (default: current directory). The directory must already look like a project (a `.git`, `.ordewell`, or similar marker), or the TUI will ask to initialize it. |
| 59 | +
|
| 60 | +**--port** _N_ |
| 61 | +> Daemon port. Default is **ORDEWELL_PORT**, else **3742**. The CLI, TUI, and VS Code extension are clients of this local HTTP + WebSocket server. |
| 62 | +
|
| 63 | +**--session-id** _id_ |
| 64 | +> Session to act on (default: last planned session in this workspace). |
| 65 | +
|
| 66 | +**--goal** _text_ |
| 67 | +> Required for **plan**. Plain-language description of the work. |
| 68 | +
|
| 69 | +**--runner** _id_ |
| 70 | +> Runner to consider when planning (repeatable). Built-in ids: **claude-code**, **codex**, **opencode**. Default is every enabled runner. |
| 71 | +
|
| 72 | +**--no-chat** |
| 73 | +> One-shot plan; skip the planner dialogue. |
| 74 | +
|
| 75 | +**--json** |
| 76 | +> JSON output for **status** and **sessions**. |
| 77 | +
|
| 78 | +**--daemon** |
| 79 | +> For **web**: run the API server in the background instead of the foreground. |
| 80 | +
|
| 81 | +**--server** |
| 82 | +> For **stop**: stop the background server daemon rather than a running plan. |
| 83 | +
|
| 84 | +# COMMANDS |
| 85 | + |
| 86 | +**tui** |
| 87 | +> Full-screen terminal UI (the default when stdin is a TTY and no command is given). Requires **tmux**. |
| 88 | +
|
| 89 | +**plan** |
| 90 | +> Research the workspace read-only and produce a typed plan of tasks. Nothing executes until **run**. |
| 91 | +
|
| 92 | +**run** |
| 93 | +> Execute the last generated plan (or **--session-id**). Independent tasks run in parallel. |
| 94 | +
|
| 95 | +**approve** |
| 96 | +> Sign off a plan paused for review and continue it. |
| 97 | +
|
| 98 | +**stop** |
| 99 | +> Stop execution of the last session, or **--server** to stop the daemon. |
| 100 | +
|
| 101 | +**status** |
| 102 | +> List recent sessions, or show one session in full with **--session-id**. |
| 103 | +
|
| 104 | +**sessions** **list**|**load**|**delete** |
| 105 | +> Manage named sessions stored under `.ordewell/sessions/`. |
| 106 | +
|
| 107 | +**add-task** **--title** _text_ |
| 108 | +> Add a task to the current plan (**--type** ai|user, **--depends-on** _id_, **--prompt** _text_). |
| 109 | +
|
| 110 | +**remove-task** _id_ |
| 111 | +> Remove a task. _id_ is an order number or a task ID. |
| 112 | +
|
| 113 | +**complete** _id_ |
| 114 | +> Mark a task complete so dependents can run (alias: **mark-complete**). |
| 115 | +
|
| 116 | +**uncomplete** _id_ |
| 117 | +> Mark a completed task not done. |
| 118 | +
|
| 119 | +**skip** _id_ |
| 120 | +> Skip a task (marks it complete so dependents can run). |
| 121 | +
|
| 122 | +**force-start** _id_ |
| 123 | +> Start a task now, ignoring dependencies. |
| 124 | +
|
| 125 | +**run-task** _id_ |
| 126 | +> Run only one task. |
| 127 | +
|
| 128 | +**retry** _id_ |
| 129 | +> Re-run a failed task. |
| 130 | +
|
| 131 | +**cancel** _id_ |
| 132 | +> Kill a running task. |
| 133 | +
|
| 134 | +**terminal** _id_ |
| 135 | +> Attach a real terminal to a task's runner (a tmux window). |
| 136 | +
|
| 137 | +**task-runner** _id_ [_runner_] |
| 138 | +> Set a task's executor. Changing the runner re-derives its model, thinking effort, and mode. Omit the value to list options. |
| 139 | +
|
| 140 | +**task-model** _id_ [_model_] |
| 141 | +> Set a task's executor model. |
| 142 | +
|
| 143 | +**task-effort** _id_ [_level_] |
| 144 | +> Set a task's thinking effort (`default` to clear). |
| 145 | +
|
| 146 | +**task-mode** _id_ [_mode_] |
| 147 | +> Set a task's runner mode. |
| 148 | +
|
| 149 | +**task-deps** _id_ [_a,b_|**none**] |
| 150 | +> Set which earlier tasks a task waits for. |
| 151 | +
|
| 152 | +**planner** [_provider_] |
| 153 | +> Choose who plans: an API provider, or a coding-agent CLI (**claude-code**, **codex**, **opencode**) on a subscription you already hold. |
| 154 | +
|
| 155 | +**model** [**set** _id_] |
| 156 | +> Show or set the planner model. Applies without a restart. |
| 157 | +
|
| 158 | +**planner-effort** [_level_] |
| 159 | +> Thinking effort for a coding-agent planner. |
| 160 | +
|
| 161 | +**key** [**set** _provider_ _key_] |
| 162 | +> Show which providers have a key, or store one in `.env` (never echoed back). |
| 163 | +
|
| 164 | +**runners** [_id_ **on**|**off**] |
| 165 | +> Enable or disable runners. |
| 166 | +
|
| 167 | +**allowlist** **set**|**clear**|**show** |
| 168 | +> Limit which models a runner may use. |
| 169 | +
|
| 170 | +**auto** [**on**|**off**] |
| 171 | +> Autonomous permission mode for new sessions. |
| 172 | +
|
| 173 | +**refresh** |
| 174 | +> Re-discover runners and model catalogs. |
| 175 | +
|
| 176 | +**models** |
| 177 | +> List every provider's catalog (works without a server). |
| 178 | +
|
| 179 | +**tdd** [**on**|**off**] |
| 180 | +> Toggle Test-Driven Development mode, which augments tasks with red-green-refactor instructions. |
| 181 | +
|
| 182 | +**verify** [**on**|**off**] |
| 183 | +> Toggle verification mode, which appends a final evidence-based task that runs the full test suite. |
| 184 | +
|
| 185 | +**web** |
| 186 | +> Start the local API server on **127.0.0.1:3742** (JSON + WebSocket, not a browser dashboard). Every other command starts it on demand. |
| 187 | +
|
| 188 | +**setup** |
| 189 | +> Interactive first-run setup wizard. |
| 190 | +
|
| 191 | +**plugins** **list**|**install**|**remove**|**create** |
| 192 | +> Manage runner plugins. **create** scaffolds a `manifest.json`; **install** accepts `github:user/repo` (also GitLab, Bitbucket, Codeberg). |
| 193 | +
|
| 194 | +# DESCRIPTION |
| 195 | + |
| 196 | +**ordewell** turns one goal into an ordered plan of coding-agent tasks, then executes and verifies them. Each task carries its own runner, model, thinking effort, and mode. You can rewrite any of those — add or remove tasks, rewire dependencies — without losing completed work or asking the planner to regenerate the whole plan. |
| 197 | + |
| 198 | +Planning is a conversation, not a hidden internal state. The planner researches the workspace **read-only**: reads run in parallel, anything reaching outside the workspace asks once, and commands that would write are refused. Its final message *is* the plan. Claude Code, Codex, or OpenCode can be the planner on the subscription you already hold; alternatively, any of about twenty-five API providers (OpenRouter, Anthropic, OpenAI, Gemini, xAI, Groq, DeepSeek, and others) or an OpenAI-compatible local server can plan. Mutation always stays with the runners. |
| 199 | + |
| 200 | +A task completes only when its unique **completion marker** appears in the runner's output. Exit code is kept as diagnostic evidence. The model is never the tie-breaker. |
| 201 | + |
| 202 | +Bare `ordewell` on a TTY opens the TUI. Piped or scripted invocations without a command print help instead, because the TUI needs a real terminal. `tab` swaps the chat and plan panes; `/help` lists the rest. A separate VS Code extension (`ordewell.ordewell`) shares the same core and does not need the npm CLI. |
| 203 | + |
| 204 | +# CONFIGURATION |
| 205 | + |
| 206 | +Keys typed into **ordewell key set** or `/key` are masked on screen and written to `.env`. Each settings command pushes to the running server *before* writing the file, so a refused connection cannot leave a setting the daemon never saw. |
| 207 | + |
| 208 | +**AI_PROVIDER** |
| 209 | +> Force the planner backend. `claude-code`, `codex`, and `opencode` plan with that CLI and need no API key. Otherwise auto-detected from whichever `*_API_KEY` is set. |
| 210 | +
|
| 211 | +**OPENROUTER_API_KEY**, **ANTHROPIC_API_KEY**, **GEMINI_API_KEY**, … |
| 212 | +> One provider key if you want an API planner rather than a coding agent. Run **ordewell key** for the full list of variable names. Anything else that speaks the OpenAI API works via **OPENAI_COMPATIBLE_BASE_URL**. |
| 213 | +
|
| 214 | +**ORCHESTRATOR_MODEL** |
| 215 | +> Planner model. Default: `deepseek/deepseek-v4-flash`. With a coding-agent planner it must be one of that agent's own model ids. |
| 216 | +
|
| 217 | +**ORDEWELL_PLANNER_EFFORT** |
| 218 | +> Thinking effort for a coding-agent planner (`low`, `high`, `adaptive`, …). Ignored by vendor planners, whose effort is baked into the model id. |
| 219 | +
|
| 220 | +**ORDEWELL_MAX_PARALLEL** |
| 221 | +> Max concurrent AI task sessions (1–5, default 3). The dependency graph is always respected. |
| 222 | +
|
| 223 | +**ORDEWELL_PORT** |
| 224 | +> Daemon port CLI commands target (default 3742). |
| 225 | +
|
| 226 | +**ORDEWELL_AUTONOMOUS_MODE** |
| 227 | +> Approval posture for new sessions (see **ordewell auto**). |
| 228 | +
|
| 229 | +**ORDEWELL_RESEARCH_ENABLED** |
| 230 | +> `true` (default) or `false`. |
| 231 | +
|
| 232 | +**ORDEWELL_TUI_MOUSE** |
| 233 | +> Set `false` (or run `/mouse off`) to give the terminal its own drag-to-select back. Capturing the mouse is what disables it. |
| 234 | +
|
| 235 | +**OPENROUTER_BASE_URL** |
| 236 | +> Default: `https://openrouter.ai/api/v1`. |
| 237 | +
|
| 238 | +Sessions auto-save to `.ordewell/sessions/` inside the workspace. The last-session pointer is `<workspace>/.ordewell/last-session.json`, not a machine-global file. VS Code mirrors these settings under `ordewell.*`. |
| 239 | + |
| 240 | +# CAVEATS |
| 241 | + |
| 242 | +Requires **Node.js 20** or newer. The TUI needs **tmux** on every platform — it is what backs each task's live terminal. On Windows, run the TUI under WSL; the CLI, API server, and VS Code extension run natively. |
| 243 | + |
| 244 | +At least one coding agent (Claude Code, Codex, or OpenCode) must be installed to execute tasks. Planning without an API key uses that same agent in a read-only harness. |
| 245 | + |
| 246 | +The local daemon binds **127.0.0.1**. A workspace without a project marker is refused rather than treated as a confinement boundary. Plugin installs run third-party manifests; only install plugins you trust. |
| 247 | + |
| 248 | +Versions before **0.4.9** had disclosed issues around command classification, credential redaction, an unauthenticated daemon attack chain, and plugin-install code execution. Upgrade, and rotate any secrets that may have been read into a pre-0.4.9 session file. |
| 249 | + |
| 250 | +# HISTORY |
| 251 | + |
| 252 | +Ordewell is written by **Alessandro Costanzo Ciano** and released under the **Apache License 2.0** (the name and logos are not covered by that licence). First public release was **0.4.0** on **31 July 2026**. The npm package is `@ordewell/cli` (also published as the unscoped name `ordewell`). |
| 253 | + |
| 254 | +# SEE ALSO |
| 255 | + |
| 256 | +[claude](/man/claude)(1), [codex](/man/codex)(1), [opencode](/man/opencode)(1), [aider](/man/aider)(1), [tmux](/man/tmux)(1), [npm](/man/npm)(1) |
| 257 | + |
| 258 | +# RESOURCES |
| 259 | + |
| 260 | +```[Source code](https://github.com/ordewell/ordewell)``` |
| 261 | + |
| 262 | +```[Homepage](https://ordewell.ai)``` |
| 263 | + |
| 264 | +```[Documentation](https://ordewell.ai/docs.html)``` |
| 265 | + |
| 266 | +<!-- verified: 2026-09-15 --> |
0 commit comments