Steering a Running AI Agent (Without Restarting It)
You gave the agent a task. Twenty seconds in, you remember a detail that changes everything. Your options used to be bad: interrupt and lose the progress, or sit on your hands until it finishes.
Every agent interface hits this problem, and the field has been converging on an answer. Claude Code injects messages you type into the current turn. Codex CLI splits the keys: Enter steers, Tab queues. Warp queues by default and gives the queue a real UI. They're all circling the same three primitives:
- Interrupt — stop now, keep what's done. Blunt but sometimes right.
- Queue — run my message after the current task. Safe, but late.
- Steer — fold my message into the task while it runs.
Tron ships all three, and the third is the one worth explaining, because doing it properly is more subtle than it looks.
What steering actually does
Tron's agent works in a loop: consult the model, run the chosen tool, read the result, repeat. A steering message doesn't interrupt any of that. It's delivered at the top of the next loop iteration — before the next model call — as a user update inside the running conversation. The model sees your note exactly where it can act on it, with all of its working context intact.
Concretely: press ⌥⏎ while the agent works (plain
⏎ queues instead). The message appears in the thread as
a steering update, and the agent's plan adapts on its next
step. No restart, no lost work, no re-explaining the task.
The queue is the other half
Steering is for course corrections. For genuinely new work — "when you're done, also update the changelog" — you want a queue. The detail that matters is that a queue you can't manage is a liability, so Tron's is a real list:
- Drag to reorder.
- Click any queued prompt to edit it in place.
- Send one now (it converts into a steering message).
escin an empty input pops the newest one back for editing.- Stopping the agent pauses the queue and says so — nothing fires behind your back after you hit stop.
Edge cases that make or break it
Most of the engineering here is in the failure modes, not the happy path:
- Steer too late? If the task finishes before your message is delivered, it demotes to the front of the queue instead of vanishing.
- Queued prompt with images? Attachments travel with the prompt through the queue.
- Task ends while you're editing a queued prompt? The queue holds until you finish the edit.
- The classic bug: a queued prompt silently never running. Tron only removes a prompt from the queue once its run has actually started — a rejected start re-queues it and retries.
Why not just interrupt?
Because interruption is expensive in agent terms. The model loses its working state; the next run re-reads the terminal, re-plans, and often re-does steps. For a thirty-second task that's fine. For a task that has already scaffolded a project and is halfway through wiring it up, steering preserves everything and costs one sentence.
Interrupt when the agent is wrong about the goal. Steer when it's right about the goal and missing a detail. Queue when your thought is really a second task.
Try it
Steering shipped in Tron 1.8.2 — free, open-source, works with cloud or local models.