Skip to content
DocsQuiet turns

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.

shell
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#

shell
captain quiet --task TEXT [--diff worktree|staged] [--write PATH] \
  [--model MODEL] [--timeout SECONDS]
captain quiet flags
FlagDoes
--task TEXTThe whole instruction. Required, and the only required flag.
--diff worktree|stagedAppends that diff to the task. A headless turn has no shell, so Git is the one thing it cannot read itself.
--write PATHA file the turn may edit, repeatable. Without it the turn is read-only.
--model MODELA tier or model name, resolved for the captain's own provider. Falls back to [crew] model, cheap by default. See models.
--timeout SECONDSSeconds 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.

shell
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 --diff hands 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 --write the provider's own gate stops the turn writing at all. Paths given to --write are 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 --write is 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.