Let commands that never finish keep running
Goal: work that cannot finish in one go — test suites, builds, migrations — should neither jam the session nor be left with nobody watching once it finishes.
It moves to the background on its own
Console tools (bash) only wait 10 seconds by default (yield_time_ms, which you can ask the model to adjust in natural language, with an upper limit of 60 seconds). If that window expires, the command is not killed: it moves to the background and keeps running, and the result returned to the model carries a task_id and a status. The turn ends there, and the input box is immediately usable again.
notify decides how completion is announced:
| Value | Meaning |
|---|---|
on_exit (default) |
When the task ends, the result is delivered back to an idle session and the continuation starts automatically; no need to keep asking |
manual |
For services and watch-like long-lived processes: no automatic continuation, read the output explicitly when you need it |
Watching progress with Ctrl+B
Ctrl+B opens the background monitor:
| Key | Action |
|---|---|
| ↑ / ↓ | Select a task |
c |
Cancel the task |
r |
Release the current wait (does not kill the process) |
| Esc | Close the monitor (background tasks are unaffected) |
Closing it only hides it; the work is still running. These console tasks are not the same thing as the tasks inside a Team; for the latter, see Delegate the work to a Team.
Letting the model take over for you
The model can keep operating on them with the task_control tool: list tasks, read output (bounded), wait for a limited time, cancel. So asking something like "are the tests done yet?" works directly — it goes and reads the output instead of blindly re-running.
Goals that span turns
Some work is more than "a single command": it is a goal that continues over multiple turns (across compaction, across restarts). Use /goal:
/goal show the current goal
/goal <one-line goal> set / update the goal
/goal pause | resume pause / resume
/goal clear clear
A goal carries checkpoints, progress is evaluated when a turn ends, and completion requires evidence. It and background commands are two separate mechanisms: one is process-level work, the other is task-level direction.