Worktrees
An isolated checkout on a fresh branch, in one dialog and one tab.
Running two agents on the same repository at once means they fight over the working tree. A git worktree is the fix, and Nermalmakes it a single dialog.
Creating one
New Worktree Tab… — in the command palette, the tab's right-click menu, and the application menu — asks three things:
| Field | Default |
|---|---|
| Worktree Name | A fresh name that does not collide with an existing branch or directory |
| New Branch | The same name, editable |
| Start From | The branch you are currently on |
Each field opens on a suggestion you can accept or type straight over.
Confirm and Nermalcreates the worktree, opens a tab in it, and starts a shell there. The sidebar files it under the same repository group as its parent, on its own branch.
Where they go
Worktrees land inside the repository, under:
<repo>/.Nermal/worktrees/<name><repo>/.Nermal/.gitignore is created with * in it the first time, so the
directory never shows up as an untracked mess in your own repository.
Removing one
Closing a worktree tab offers to remove the worktree with it:
- Clean tree — Remove Worktree or Keep.
- Dirty tree — the dialog says so, and removing requires the explicit Discard Changes & Remove.
Nothing is removed silently, and Keep leaves the worktree on disk for git worktree list to find later.
Pair this with agent sessions: a worktree per agent means two Claude Codes can work on the same repository without stepping on each other's files.