Quiet turns
One headless model turn with no pane: when to spend one, its flags, and what an unwatched turn may touch.
A pane buys two things: somewhere to approve a native permission prompt, and somewhere to steer a running turn. captain quiet is for work that needs a model but neither of those: one headless turn, result printed and recorded, no assignment and no wait.
captain quiet --task "Does anything else call parse_header?"It sits between captain do, which spends no model at all, and captain crew, which spends a pane. The rule that picks it is one question: can you write the whole instruction now, and does one answer end it? If you will learn the next instruction from what the agent does, recruit crew instead.
Flags#
captain quiet --task TEXT [--diff worktree|staged] [--write PATH] \
[--model MODEL] [--timeout SECONDS]| Flag | Does |
|---|---|
--task TEXT | The whole instruction. Required, and the only required flag. |
--diff worktree|staged | Appends that diff to the task. A headless turn has no shell, so Git is the one thing it cannot read itself. |
--write PATH | A file the turn may edit, repeatable. Without it the turn is read-only. |
--model MODEL | A tier or model name, resolved for the captain's own provider. Falls back to [crew] model, cheap by default. See models. |
--timeout SECONDS | Seconds to allow. 900 by default. |
What it is for#
These are the recurring model moments that need no pane. The split is not risk or size: it is whether the turn can get its own input.
captain quiet --task "Draft a commit message" --diff staged
captain quiet --task "Review this diff against AGENTS.md" --diff worktree
captain quiet --task "Verify Jack's report against build.log"
captain quiet --task "Explain this traceback: ..." --model mid
captain quiet --task "Fix the typo in the heading" --write src/content/docs/cli.tsx- A question about the code. The turn has file reads and search, so naming a file or a symbol is the whole job. Any question that would mean opening files the captain has not read belongs here rather than in the captain's own context.
- Anything built from a diff. A commit message, a PR body, a changelog line, a review before dismissing a crew. The turn cannot read Git, so
--diffhands it over. - Triage and verification. Sorting a failing suite, or checking a crew report against the raw output file it claims.
- One bounded edit. A rename in named files, a docstring, a doc line, with
--write.
The turn reads the checkout itself, so paste nothing you can name instead. If it reports no answer, that is the answer you get: its own words are relayed, and nothing invents one in their place.
What an unwatched turn may touch#
Nobody is watching a quiet turn, so the bargain is made in what it is handed rather than in supervision.
- Read-only by default. Without
--writethe provider's own gate stops the turn writing at all. Paths given to--writeare project-bounded, and the turn is told to edit only those and to leave its edits unstaged. - A read-only turn also gets this session's directory, so it can read the event log, mail, and assignment records it is asked to triage or check a claim against. A turn given
--writeis never handed it, so an unwatched editing turn cannot reach that state. - Every run is recorded. The command, its exit code, and the report are appended to the session event log, so unwatched work stays reviewable. A run that cannot be recorded fails rather than proceeding unlogged.
Against a crew#
A crew is a pane, a roughly seventy-line instruction block, an assignment, a wait, and a report. A quiet turn is a three-sentence prompt and one answer. Recruiting a pane whose entire assignment is one instruction you could already write in full is the expensive mistake described in when to recruit.