Skip to content
Guides

Steering an active OpenClaw run

The steer and tell commands, what happens when the runtime cannot take guidance, and how they differ from the queue modes

4 min read

Sometimes the agent is mid-run and you want to nudge it without stopping it: prefer the smaller patch, summarise before the next tool call. OpenClaw’s steer command exists for exactly that moment. It first tries to send the guidance to the already-active run, and if the current runtime cannot accept steering it sends the message as a normal prompt instead of dropping it. The tell command is an alias and the two are interchangeable. Here is what the command targets, how it relates to the queue modes, where it does not work, and the sub-agent and ACP variants.

What it does

  • Top-level steer targets only the current session’s active run and works independently of the session’s queue mode.
  • When the session is idle or the active run cannot accept steering, the command prefix is stripped and the message starts a normal turn.
  • It uses the active runtime’s steering path, so the model sees the guidance at the next supported runtime boundary rather than immediately.
  • The explicit command is Gateway-backed; in the local chat and local TUI modes, select the queue steer mode and send the guidance as a normal message, and the embedded runtime applies the same steering policy without forwarding a Gateway command.
If the current runtime cannot accept steering, OpenClaw sends the message as a normal prompt instead of dropping it.

Steer versus the queue modes

The queue steer mode makes ordinary inbound messages try to steer the active run whenever they arrive while a run is active. The steer command is the explicit, one-off version: it injects that one message into the active run at the next supported boundary regardless of the stored queue setting. So the choice is about defaults. Use the command when you want to guide the active run right now; set the queue to steer when future normal messages should steer active runs by default; choose collect or followup when future messages should wait for a later turn instead; and choose interrupt when the newest message should replace the active run rather than steer it.

Sub-agents and ACP

  • Top-level steer never reaches a sub-agent: sub-agents report back to their parent or requester session, and the sub-agents command is for visibility only.
  • For an ACP harness session, the ACP steer command with the session argument targets that session instead, following the ACP session selection rules.
  • Steering is guidance, not a stop: to abort a run you use the queue interrupt behaviour or the stop command, not steer.

The OpenClaw command queue explains the lanes and the queue modes this command sidesteps, and OpenClaw slash commands the command surface it belongs to.

The boundary question

The guidance lands at a runtime boundary, typically between tool calls, which is why the docs say the model sees it at the next supported boundary rather than at once. OpenClaw sub-agents covers the children that steer cannot reach, and The OpenClaw agent loop the run whose boundaries it waits for.

On Diali

On Diali the explicit command is available because your assistant always runs behind its Gateway; type steer or tell followed by the guidance in any channel that takes text commands. Hosted OpenClaw on Diali is the assistant.

  • Guidance to the active run; a normal prompt when it cannot take it.
  • The command is one-off; the queue mode is the default.
  • Sub-agents and ACP sessions have their own paths.
Get started

Stop reading about it, build one

Set up an agent, pick a channel, and have it working inside the app you already keep open.