Skip to content

Branch a conversation

On this page

Branch a conversation to try another approach without losing the discussion that led to it. The new chat will keep the conversation through the response you choose, and you can continue either chat afterward.

Choose the response and the destination

  1. Wait for the Codex or Claude conversation to finish its current turn.
  2. In the desktop app, find the completed response you want to branch from.
  3. Choose the Split icon, labeled Continue in new chat, then choose where the new chat should run.

On mobile, long-press a completed response to open its bottom menu. Choose Continue in current box or Continue in new devbox. The same menu includes Copy for copying the message text.

Choose Current box if both chats should work with the same files. They will share the machine and working directory. If the agents pursue different approaches, they will still be changing the same files.

Choose New devbox if you want to make changes independently. boxes.dev will copy the current files from the machine hosting the original chat, including uncommitted work, into a new devbox. The source machine and its chat will stay available.

For example, suppose the agent has fixed a slow page by adding a cache, and you want to try rewriting the query while keeping that fix available. Choose New devbox, then ask the new chat to replace the cache with a faster query. Its copy will start with the caching fix in place; changes there will leave the source machine's implementation intact.

The separation covers each machine's own files and services. An external database or service that both machines connect to is still shared.

Choosing an earlier response changes how much conversation is copied; it does not rewind files to that point. Whichever response you branch from, New devbox uses the source machine's files at the time of copying, rather than the project's saved Template box snapshot. The new machine will start its own processes instead of continuing copied agent or user processes.

Branching is available for supported Codex and Claude threads in boxes.dev. The option doesn't wait for the app to connect to the machine; boxes.dev will connect to it, waking it if needed, when you branch. If an older machine's boxes.dev service can't branch yet, the new chat will show an error.

Let the copy finish

Before copying, boxes.dev will wait for Codex and Claude threads on the source machine to be idle. Wait for active turns and queued follow-ups to finish, and answer any pending agent requests.

The new chat will open with the source title followed by (copy) while the copy is being prepared. On desktop, you can rename it from its thread menu while the devbox starts. You can type and queue messages, then leave and return while it starts. The copied conversation will load and your messages will send when the new devbox and chat are ready. Any unsent draft and attachments from the original chat will stay there; the new chat starts with an empty reply box.

If copying fails, your waiting messages will remain available to recover. Return to the original chat to try branching again.

If the source uses Tailscale, it will briefly disconnect and reconnect with a fresh identity during copying. Other devboxes will stay connected, and the new devbox will receive its own identity.

Branch from the current end

To branch from the latest response on the same machine, send /fork on its own in an idle supported conversation. On mobile, you can also choose Continue in new chat from the thread's header menu.

Moving a Template box thread to a devbox is a different action: it moves the selected conversation and uses the latest saved project snapshot. See Create and manage devboxes.