Drafts
Save a task for later with dray draft, list saved drafts, and start or remove them.
A draft is a task saved for later: a prompt plus the picks it will start with, and no session behind it yet. Nothing runs and no worktree exists until it starts. It is the same thing ⌘S saves from the new-task composer.
Drafts show in the sidebar’s drafts view. Click Show drafts (the dashed circle beside the project filter) to see them. From there you can open a draft, edit it and send it yourself.
Save a draft
dray draft new "Add retry to the upload client. It should back off up to 30s."
Prints the draft’s id.
| Flag | What it does |
|---|---|
--project <path> |
The repo it will run in. Defaults to the repo you are in, then the calling session’s project. |
--model <alias> |
The model. Defaults to the calling session’s. |
--effort <level> |
low, medium, high, xhigh, max or ultra. |
--harness <name> |
claude_code, codex, pi, fx or grok. |
--fast |
Run at the agent’s faster tier once started. |
--base <session|ref> |
Start its worktree from existing work once started: a session id, a branch, or any git ref. Committed work only. |
The picks inherit from the calling session exactly as dray session new does. A draft made here always starts in its own worktree. A --base that cannot be found is refused when you save, and checked again when the draft starts.
List drafts
dray draft ls
dray draft ls --all --json
One line per draft, newest first: id, agent, model, then the first line of the prompt. [checkout] marks a draft that will start in the project’s own checkout instead of a worktree; only a draft saved that way in the app does.
| Flag | What it does |
|---|---|
--all |
Every project, not just this one. |
--project <path> |
List this repo instead. |
--json |
One JSON array, for scripts. |
Start a draft
dray draft start <draft-id>
Starts the draft as a session and takes it off the draft list. Prints the new session’s id and a line like Started "…" in worktree calm-owl. Run from inside a session, the new session is nested under the caller, and the depth limit applies. If the start fails, the draft goes back on the list.
Remove a draft
dray draft rm <draft-id>
Deletes the draft.
Limits
- A draft made with
draycannot be edited from the CLI. Edit it in the app. - No flag makes a draft start in the project checkout.