Branches, reruns and worktrees
Take one conversation two directions, run a turn again, and let parallel agents edit the same repo safely.
Forking a conversation#
Any message in a transcript can become the start of a new branch. The branch inherits the full history up to that point, and the prompt you write becomes its first turn — so you can try a second approach without losing the first one or re-explaining the context.
- Pick the point where the paths diverge
Usually the last message before the decision you now doubt. Choose Fork from Here on that message.
- Write the alternative as the branch's first prompt
“Try this with a queue instead of a cron job.” The branch starts a real, separate session — the original keeps running and keeps its history.
- Compare, then keep one
Both branches are ordinary sessions with ordinary diffs. Read both, keep the better one, delete the other. The branch carries a badge showing which session and turn it came from, and the parent lists its branches.
Re-running and editing turns#
Sometimes you do not want a branch — you want the same question asked again. Re-run replays a turn, which is the cheapest way to see whether an answer was luck, or to try it under a different model. Editing your own message lets you fix the prompt that produced a bad turn instead of arguing with the result.
Worktrees: parallel agents on one repository#
Two agents editing one checkout produce corrupted state and unreviewable diffs. A session can therefore run in its own linked Git worktree — a real checkout on its own branch, created by the agent and tracked by Mirasim — so each agent works as if it had the project to itself.
Worktrees are a Git feature, not a Mirasim invention, so nothing becomes opaque: `git status`, `git diff` and your own editor all still work. Merging a pane's work back is an ordinary merge; discarding it is an ordinary branch delete.
The Git panelEvery workspace at once: which branch it is on, how many files changed, how far ahead or behind its upstream. This is the view that tells you whether parallel work has drifted apart. — this control is not on the captured screen.
The buttons in this panel work — click them to look around.
- Turn the worktree switch on in the composer
It sits beside the workspace and branch pickers, so isolation is a decision you make when you start the session — not a migration you perform later.
- Pick the base branch
The agent switches to it first, or branches the worktree off it. Basing parallel work on the same known-good commit is what keeps the merges boring.
- Merge in order, smallest first
Land the small, mechanical branch, then rebase the bigger one onto it. Two agents that touched the same file are a normal conflict with a normal resolution.
- Clean up deliberately
Deleting a session offers to remove its worktree too. Git refuses while uncommitted changes remain — that refusal is a feature; commit or discard them first.
Something wrong or missing on this page? Tell us