Comma Agents
@comma-agents/daemonProtocol

Steering

Mid-run steering with the steer_run request and steer_queued event.

These messages let the client influence a run that is already underway. Steering nudges a live run without interrupting the current agent turn.

Request: steer_run

Sent by the client to queue a steering message for a run that is currently running or pending. The daemon does not interrupt the in-flight agent turn — the text is merged into the message delivered to the next agent call, so the current turn finishes uninterrupted.

{
  "type": "steer_run",
  "runId": "run_abc123",
  "text": "Focus on the login bug, ignore the styling for now",
  "requestId": "steer-1"
}
FieldTypeRequiredDescription
type"steer_run"yesMessage type discriminator
runIdstringyesThe run to steer
textstringyesThe steering text to inject before the next agent turn
requestIdstringnoEchoed on any error response

On success the daemon broadcasts a steer_queued event to all subscribers. If the run is not found or has already finished, the daemon replies with an error:

{
  "type": "error",
  "code": "RUN_NOT_STEERABLE",
  "message": "Cannot steer run run_abc123: not running",
  "ts": "2025-01-15T10:30:02.000Z"
}

The queued text is persisted to the run timeline as a user_input event (with source: "human").

Event: steer_queued

Sent by the daemon to all subscribers when a steering message has been accepted. Clients render this as a pending user message in the transcript.

{
  "type": "steer_queued",
  "runId": "run_abc123",
  "text": "Focus on the login bug, ignore the styling for now",
  "ts": "2025-01-15T10:30:01.500Z"
}
FieldTypeDescription
type"steer_queued"Message type discriminator
runIdstringThe run the steering message was queued for
textstringThe steering text that was queued
requestIdstring?Echoed from the request
tsstringISO-8601 timestamp

Sequence Diagram

Client                          Daemon
  |                               |
  |  steer_run                    |
  |  (text: "focus on the bug")   |
  |------------------------------>|
  |                               |
  |        steer_queued           |
  |<------------------------------|
  |                               |
  |   (current turn finishes,     |
  |    steering merged into the   |
  |    next agent call)           |
  |                               |
  |     strategy_completed        |
  |<------------------------------|

On this page