Steer, queue and fork
Talk to an agent while it works, line up messages for later, copy a session with Fork, ask a side question with /btw, and run a shell command with !. Which harnesses can do each.
You don’t have to wait for an agent to finish before you write to it. This page covers the ways to talk to a session while it works, and the ways to branch off one.
What works where lists which harness can do what. The short version is in each section below.
Send while the agent works
Section titled “Send while the agent works”While a turn runs, the composer’s send button changes. What it does depends on the harness.
- Steer puts your message into the turn that is running. The agent reads it at its next step instead of waiting for the turn to end.
- Queue holds your message. Fleet sends it when the agent finishes.
Steering works on OpenCode 2, OpenCode, Claude Code and GitHub Copilot. Pi can’t steer, so on Pi every message waits in the queue.
Which one Enter does depends on the harness:
| Harness | Enter | The other button |
|---|---|---|
| OpenCode 2, Claude Code | Steers (the button says Send now) | Queue, or Ctrl+Enter |
| OpenCode, GitHub Copilot | Queues | Send now, or Ctrl+Enter |
| Pi | Queues | none |
On a Mac, Cmd+Enter does what Ctrl+Enter does. The button’s tooltip names the key.
To stop the turn instead, choose Interrupt in the composer or press Esc.
Queued messages
Section titled “Queued messages”Queued messages sit in a list above the composer. The first is marked Next, the rest Queued. They go out in that order, one each time the agent finishes.
- Send now on a queued message steers it into the running turn. It shows only where the harness can steer.
- The × on a row takes the message back out of the queue.
Fork a session
Section titled “Fork a session”Fork makes a new session with a copy of the conversation. Fleet copies up to the last finished turn. Then you can try a different approach without losing the first.
Choose Fork in the session’s toolbar, or run Fork session from the command palette. The new session is titled Fork of ….
Fork works on OpenCode 2 and OpenCode. On the others the button is greyed out and says why, for example that Claude Code can’t copy a conversation.
Ask a side question with /btw
Section titled “Ask a side question with /btw”Type /btw and then a question, for a quick question that shouldn’t pull the session off its task. Fleet forks the session behind the scenes and answers in a panel above the composer. The main session carries on undisturbed.
- Minimize folds the panel away. Ctrl+/ (Cmd+/ on a Mac) opens and folds it too.
- Keep as session turns the side conversation into a session of its own.
- × discards it. You can undo that for a few seconds.
While the panel is open, what you type goes to the side conversation, not to the session.
/btw works on OpenCode 2 and OpenCode.
Run a shell command with !
Section titled “Run a shell command with !”Start a message with ! and Fleet runs it as a shell command in the session’s folder. No model turn is used. For example:
!git statusThe composer shows Shell command while you type. The command and its output appear in the conversation, and the agent sees them on its next turn. Press Esc to turn the ! back into a normal message.
If you send one while the agent is working, it waits in the queue and runs between turns.
! works on OpenCode 2 and OpenCode. On the others, ! is just text.
Where next
Section titled “Where next”- What works where: the full table of harness features.
- Keyboard shortcuts: the keys for Interrupt, Fork and the rest.
- Sessions: the list, archiving and cleanup.