Skip to main content
Before you steer a coding agent, identify its current turn and save the last event sequence you processed. This lets you reconnect without losing your place in the event stream.

Replay events

Save the last event sequence you processed and use it as --after when reconnecting. Runner events are separate from lifecycle webhooks.

Steer or interrupt

Replace TURN_UUID with the current turn ID from runner state. Retain a new UUID for each distinct control request:
The API uses requestId and expectedTurnId; steering also includes text. Supplying the expected turn prevents a delayed control request from targeting later work. Reuse the same control request UUID only when retrying that request.

Answer an approval

Use the server request ID from the approval event:
Decisions are accept, decline, and cancel. The server request ID can be a string or JSON value, matching the event. Prompts default to approvalPolicy: "untrusted". The prompt flag --approve-tools selects "never", which skips approval prompts for that turn. Choose the policy deliberately before starting work.

Restart the runner

Inspect status and events afterwards before dispatching another prompt. A restart does not prove an uncertain external action did not happen. The MCP equivalents are bead:runner_steer, bead:runner_interrupt, bead:runner_approval, and bead:runner_restart. For interactive human help, use desktop takeover.