- Run multiple agents in parallel on the same project, or
- Keep experimental refactors isolated from your main branch,
Why Use Worktrees with Mibyan?
Mibyan treats the current working directory as the project root:- CLI: the directory where you run
mibyanormibyan chat - Messaging gateways: the directory set by
terminal.cwdin~/.mibyan/config.yaml
- One agent may delete or rewrite files the other is using.
- It becomes harder to understand which changes belong to which experiment.
- Its own branch and working directory
- Its own Checkpoint Manager history for
/rollback
Quick Start: Creating a Worktree
From inside a session: /worktree new
The fastest path (inspired by Copilot CLI’s /worktree new): from an
interactive CLI session, run
.worktrees/my-experiment/ inside the repo (branch
mibyan/my-experiment, based on the freshly-fetched remote tip unless
worktree_sync: false), and retargets the session’s terminal and file tools
into it — no restart needed. Omit the name to get a random mibyan-<id>
tree. /worktree alone shows the active tree; /worktree list lists all of
them. On exit the tree is kept only if it has unpushed commits, exactly like
mibyan -w.
Manually with git
From your main repository (containing.git/), create a new worktree for a feature branch:
- A new directory:
../repo-feature - A new branch:
feature/mibyan-experimentchecked out in that directory
cd into the new worktree and run Mibyan there:
- See
../repo-featureas the project root. - Use that directory for context files, code edits, and tools.
- Use a separate checkpoint history for
/rollbackscoped to this worktree.
Running Multiple Agents in Parallel
You can create multiple worktrees, each with its own branch:- Works on its own branch (
feature/mibyan-avsfeature/mibyan-b). - Writes checkpoints under a different shadow repo hash (derived from the worktree path).
- Can use
/rollbackindependently without affecting the other.
- Running batch refactors.
- Trying different approaches to the same task.
- Pairing CLI + gateway sessions against the same upstream repo.
Cleaning Up Worktrees Safely
When you are done with an experiment:- Decide whether to keep or discard the work.
- If you want to keep it:
- Merge the branch into your main branch as usual.
- Remove the worktree:
git worktree removewill refuse to remove a worktree with uncommitted changes unless you force it.- Removing a worktree does not automatically delete the branch; you can delete or keep the branch using normal
git branchcommands. - Mibyan checkpoint data under
~/.mibyan/checkpoints/is not automatically pruned when you remove a worktree, but it is usually very small.
Best Practices
- One worktree per Mibyan experiment
- Create a dedicated branch/worktree for each substantial change.
- This keeps diffs focused and PRs small and reviewable.
- Name branches after the experiment
- e.g.
feature/mibyan-checkpoints-docs,feature/mibyan-refactor-tests.
- e.g.
- Commit frequently
- Use git commits for high‑level milestones.
- Use checkpoints and /rollback as a safety net for tool‑driven edits in between.
- Avoid running Mibyan from the bare repo root when using worktrees
- Prefer the worktree directories instead, so each agent has a clear scope.
Using mibyan -w (Automatic Worktree Mode)
Mibyan has a built‑in -w flag that automatically creates a disposable git worktree with its own branch. You don’t need to set up worktrees manually — just cd into your repo and run:
- Create a temporary worktree under
.worktrees/inside your repo. - Check out an isolated branch (e.g.
mibyan/mibyan-<hash>). - Run the full CLI session inside that worktree.
core.fsmonitor and clean/smudge filters are off for that checkout, as they are for the worktrees Mibyan creates for kanban tasks and subagents. A repository that stores files through Git LFS gets pointer files there; run git lfs pull inside the worktree if the session needs their contents.
This is the easiest way to get worktree isolation. You can also combine it with a single query:
mibyan -w in each — every invocation gets its own worktree and branch automatically.
Putting It All Together
- Use git worktrees to give each Mibyan session its own clean checkout.
- Use branches to capture the high‑level history of your experiments.
- Use checkpoints +
/rollbackto recover from mistakes inside each worktree.
- Strong guarantees that different agents and experiments do not step on each other.
- Fast iteration cycles with easy recovery from bad edits.
- Clean, reviewable pull requests.
Developing the UI surfaces across worktrees
The TypeScript surfaces (ui-tui/, apps/desktop/) each need a node_modules, which a fresh npm ci per worktree duplicates across every branch. If you hack on the TUI or desktop app from multiple worktrees, see TUI & Desktop from Worktrees for the htui / hgui helpers that share one install by symlink.
