The /steer command, added in v2026.5.3, sends a steering message into an active session without starting a new turn or waiting in the queue. It works only when the session is idle (the agent is between tool calls or waiting on a model response), and it injects guidance into the next step of the current run.
That is a small change with a specific job: keep an agent honest when you can see it heading the wrong way, without restarting the conversation.
What /steer does, exactly
In , a running agent session has two states from the operator’s point of view: actively executing a tool or model call, or idle between steps. A normal message you send while the agent is mid-turn lands in a per-session queue and waits for the current turn to finish. That is usually correct: you do not want to interrupt a write or a multi-step plan.
But sometimes the agent has paused, is about to do the wrong thing on the next step, and you want to leave a note for that next step rather than wait for the whole turn to wrap.
/steer is the command for that case. From the v2026.5.3 release notes:
Agents/commands: add
/steer <message>for queue-independent steering of the active current-session run without starting a new turn when the session is idle. (#76934)
Three details matter here:
- Queue-independent. The steering message does not go into the normal send queue. It is appended to the current run.
- No new turn. It does not bump the session into a fresh request/response pair. The agent reads it as in-context guidance.
- Idle-only. If the session is actually busy with a tool or model call,
/steerdoes not preempt it.
When to reach for it
A typical session that benefits from steering:
- You see the agent picked the wrong file path and is about to write to it.
- You see it starting to draft a Slack message that does not match the brief.
- You realize it is missing a constraint that you forgot to include in the original prompt.
In all three cases, the alternatives are worse: cancelling the session loses progress, queueing a new message means the bad action lands first, and starting a new turn restarts planning.
What it is not
A few honest limits:
/steeris not a stop button. If you need to halt a running tool, that is a separate concern — typically a cancel on the active run.- It is not asynchronous nudging. The session has to be idle in the right moment for the steer to land before the next step.
- It is not for batching. If you have three notes for the agent, send them as one steering message; do not spam
/steer.
How /steer fits with the rest of the v2026.5.3 changes
v2026.5.3 is mostly a delivery-and-plumbing release: hardened plugin installs, the bundled file-transfer plugin with default-deny path policy and a 16 MB per-roundtrip ceiling, and a unified streaming.mode: "progress" draft format across Discord, Telegram, Matrix, Slack, and Microsoft Teams.
/steer slots into that picture as the operator-side primitive that complements progress drafts. The progress draft tells you what the agent is currently doing in a chat channel; /steer is what you say back when what it is doing is not quite right.
For the full list of what landed in this release, see the openclawai.io changelog or the OpenClaw GitHub release.
Cousins: /side and /btw
The same release ships /side as a native slash-command alias for /btw, which has a different purpose worth distinguishing:
| Command | Use when | Effect on the run |
|---|---|---|
/steer <message> | Active run is idle and you want it to course-correct on the next step | Appends guidance; no new turn |
/btw <message> (alias /side) | You want to ask a side question without disturbing the main thread | Side dispatch; main run continues |
| Normal message | You want the agent to address something after the current turn completes | Queued; runs as the next turn |
/steer is for “do the same job but with this in mind.” /btw and /side are for “answer this without losing your place.” A normal message is for “when you are done, here is the next thing.”
A worked example
Suppose you launched an agent session to draft a release announcement and the agent is mid-research, hitting documentation pages and summarising. You realize halfway through that you wanted the announcement aimed at platform engineers rather than at end users. You do not want to cancel — the research is useful — and you do not want to wait, because the agent is about to pick a tone.
With the run idle between two web fetches, type:
/steer Audience is platform engineers running self-hosted setups, not end users. Drop the consumer framing.
The agent picks up that guidance for its next step, keeps the partial research, and the draft comes back with the right framing the first time.
Without /steer, the equivalent options were: stop the run and restart with a more specific prompt (loses progress), queue the message and let it land after the wrong-tone draft was already produced (wastes the turn), or open a side question via /btw (does not change what the main run is doing).
Operator notes
/steerworks from the same channels and surfaces as other native slash commands. If your channel hascommands.native: false, the text-form fallback applies.- The session has to be the current active session for the channel. Multi-session setups need an active-session selector first.
- A steer is not retroactive. If the bad step already executed, you need a different fix (often a queued correction or a new turn).
Putting /steer to use
The pattern that works: keep streaming.mode: "progress" on in your busiest channels so you can see what the agent is doing, and use /steer the moment you see a step about to go wrong. That combination turns long agent runs from fire-and-forget into something closer to pair programming, without paying the cost of full interruption.
For the broader picture of how agent sessions, queues, and turns are wired in , see how OpenClaw works and the deep dive on memory and context configuration. For scheduling steering-friendly work in the first place, the cron jobs guide covers session pacing.
FAQ
Q: Does /steer work if the agent is in the middle of a tool call? A: No. The session has to be idle (between a tool call and the next model step, or waiting on the model) for the steer to land. If it is actively running a tool, the steer is rejected or queued depending on your channel config.
Q: Will /steer cancel a planned tool call? A: No. It adds guidance for the agent to consider on the next step; the agent decides whether to change course based on that guidance.
Q: What is the difference between /steer and /btw?
A: /steer redirects the current run. /btw (alias /side) asks a side question without affecting the current run. Use /steer when you want the same task done differently; use /btw when you want a separate answer.
Q: Can I send multiple /steer messages? A: You can, but it is usually a sign you should send one consolidated steer. The agent reads them in order, and rapid-fire steers can crowd the next-step context.
Q: Does /steer count toward the active session’s token budget? A: Yes. The steering message is appended to the run’s context, so it consumes tokens like any other in-context message.
Sources: