Skip to main content
You have three options while a turn runs: boat steer is the same as typing into a coding agent while it works.
If you omit --convo, boat steer steers the conversation that this shell prompted last. A bare boat prompt continues the same conversation.

How each harness gets the message

Four of the seven harnesses accept a message during a turn natively. Nothing stops. OpenCode, Kimi Code and Mistral Vibe have no such feature. Their protocol has “prompt” and “cancel”, and nothing between them. For these harnesses, Boat uses a fallback automatically.

Boat makes sure the agent acts on a steer

A harness can accept a message and then do nothing with it. So Boat does not trust the harness. Boat does these things:
  • Where the harness has its own steering queue, Boat watches it.
  • Boat waits for that queue to empty before it marks the turn finished.
  • Where Boat cannot see the delivery, it runs your instruction as its own turn when the turn ends.
So when boat steer returns and the turn later reports finished, the agent did the instruction. It did not only receive it.

Steer modes

The API response and the event both carry native. The event also carries the exact mode. It is one of native, native-continued, fallback, or late. native-continued is the honest middle case. The harness accepted the message, but its turn ended without acting on it. So Boat ran it at once as its own turn on the same session. Nothing was interrupted and nothing was forgotten. The instruction only runs one turn boundary later. The fallback path also keeps the harness session and all its memory. So nothing is forgotten. The cost is the one tool call that was in progress. The agent can redo a small part of the work it had just started.

A steer in the event stream

A steer is its own event in the stream. It is never a queued prompt:

Steer with no running turn

If the conversation has no turn in progress, Boat refuses the steer with no_running_turn (409). This is on purpose. You asked to change a running turn. A new queued turn would be a surprise. To start a new turn, use boat prompt.