Skip to content
Weaveweave / fleet
Install Fleet
Docs/Every day/Steer, queue and fork

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.

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 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 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.

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.

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 status

The 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.