Skip to Content
kusaw docsv1.0.0

Rerun, requeue, resume or steer

Resume, restart, requeue, steer, take over, stop, and dismiss do different jobs.

Resume, restart, requeue, steer, take over, stop, and dismiss do different jobs. Use the row that matches the situation.

SituationActionCommand
The run is still going and needs a hintSteer with a notekusaw note <run> "..."
The run failed and the task needs another tryRequeue, optionally with a notekusaw requeue <run> --note "..."
A step failed for a passing reason (a flaky test)Resume or restartkusaw resume <run> --failed-only or kusaw restart <run>
You want to finish it by handTake overMCP kusaw_take_over tool (no CLI command)
You don't want it any moreStop or dismisskusaw stop <run> or kusaw dismiss <run>

kusaw serve has to be running to pick up these requests.

ActionCLIDashboard
Steer a live runkusaw note <run> "..."—
Requeuekusaw requeue <run> [--note "..."]Requeue (note optional)
Resume failed reposkusaw resume <run> --failed-onlyResume failed repos
Restart the runkusaw restart <run> (needs --yes when there is no terminal)Restart run
Take overMCP kusaw_take_over toolShown on the run after take-over; the Dashboard does not offer Take over
Stopkusaw stop <run>Stop all stops every running run; stop one run from the CLI
Dismisskusaw dismiss <run>Dismiss
Unpause the queuekusaw resumeResume

Steer a live run

Use this when a run is running or waiting_for_human and you want to add a hint without stopping it.

Terminal
kusaw note <run> "Keep the public API unchanged."
kusaw note <run> --file note.md     # or --file - to read stdin

The note is stored on the run and given to the next step that starts. With steer.live: true and a Claude Code that accepts streaming input, it is also sent into the step that is running now. Notes that no step received yet are prefilled into a later requeue. A note is at most 4,000 characters, and a run takes at most 20 notes. kusaw runs show <run> lists them and how each was delivered (live, next step, or next iteration).

Requeue

Use this when the run is needs_attention, failed, or stopped, and the task should get another try. The note is optional. Without --note, the CLI reuses any steer notes the run never delivered.

Terminal
kusaw requeue <run>
kusaw requeue <run> --note "The flaky test is fixed on main; try again."
kusaw requeue <run> --workflow <name>   # move the new run to another workflow

Requeue starts the next run of that task on a new branch factory/<task>-<seq>. It starts from the run's last checkpoint (after spec-check), or from its base commit when there is no checkpoint. Your note goes first, as try-1 feedback and to every step, followed by the last findings. The new run joins the back of the queue.

Requeue is refused when:

  • the run is in any other state, including rejected. A rejected run is final: add the task again with kusaw add.
  • the run was partially delivered. Use resume or restart.
  • the run's branch no longer exists.
  • the task already has an unfinished run.

On the Dashboard, Requeue shows where the new run starts, the findings it carries, and the equivalent kusaw requeue command. When the old run is needs_attention, it is dismissed automatically and its branch is kept.

Resume or restart

Use this when a step failed for a passing reason (a flaky test) and the task itself is fine.

  • kusaw resume <run> --failed-only reruns the failed repositories in the worktrees that were kept. The run id, branch, and change-set id stay the same. Dashboard: Resume failed repos.
  • kusaw restart <run> reruns every repository from its base commits. Without a terminal it exits 2 and asks for --yes. Dashboard: Restart run. Earlier commits are kept at refs/kusaw/backup/<run>/<n>.

kusaw resume with no run id still unpauses the queue. That is not a rerun.

Take over

Use this when you want to finish the work by hand. Take over stops a queued, running, or waiting run and keeps its worktrees. There is no take-over CLI command; use the kusaw_take_over tool of kusaw mcp. The Dashboard shows a taken-over run and does not offer Take over.

The run ends stopped with reason taken_over. Continue on the kept branch and worktree, then kusaw dismiss <run> (Dashboard Dismiss) to remove the worktree. The branch stays.

Stop or dismiss

  • kusaw stop <run> — you don't want this run any more while it is still queued, running, or waiting. Worktrees are removed. Dashboard Stop all is the factory-wide form (kusaw stop --all): every running or finalizing run stops and the queue pauses.
  • kusaw dismiss <run> — the run is already needs_attention or taken over. Dismiss removes the worktree and keeps the branch. You can still requeue afterwards.

If it goes wrong

  • Run "<run>" can't be requeued from <status>. Use a run in needs_attention, failed or stopped, or one rejected because something was missing or couldn't be run on this computer. — requeue only from those states. A run rejected because a tool was missing or a permission was denied can be requeued once you fix that.
  • Run "<run>" was rejected (<reason>) and can't be requeued. Add its saved spec again: kusaw add <spec_path> --factory <factory> — a retry won't fix this reason (for example unclear_spec). Run the printed kusaw add command.
  • Run "<run>" was partially delivered. Use resume --failed-only or restart instead. — see Resume or restart.
  • Branch "<branch>" for run "<run>" no longer exists. — the branch was deleted, so there is nothing to start from. Add the task again with kusaw add.
  • Task "<task>" already has an unfinished run "<run>". — finish, stop, or dismiss that run first.
  • Resume with a run id needs --failed-only. kusaw resume with no run id only unpauses the queue.
  • Restart needs confirmation — pass --yes, or confirm Restart run on the Dashboard.
  • Run "<run>" is not in needs_attention or taken over (<status>). — dismiss is for those runs only. Stop a live run with kusaw stop <run>.
  • The run stays queued — the queue is Paused. kusaw resume with no run id, or Resume.
  • Run <run> is <status>, so it can't take a note. Use kusaw requeue <run> --note "..." instead. — kusaw note only works while the run is running or waiting_for_human.
  • Live steering is on, but this Claude Code doesn't accept streaming input; notes will wait for the next step. — the note is kept and given to the next step.

On this page