A lightweight, modern TUI for managing Git worktrees and branches.
Single binary. No dependencies. No more memorizing commands — just navigate, search, and act.
brew install aryanpnd/tap/git-wtmcurl -fsSL https://raw.githubusercontent.com/aryanpnd/git-wtm/main/install/install.sh | shscoop bucket add aryanpnd https://github.com/aryanpnd/scoop-bucket
scoop install git-wtmchoco install git-wtmwinget install aryanpnd.git-wtmgo install github.com/aryanpnd/git-wtm@latestMake sure $GOPATH/bin (usually ~/go/bin) is in your PATH:
export PATH="$PATH:$HOME/go/bin"Pre-built binaries for all platforms are on the Releases page.
git clone https://github.com/aryanpnd/git-wtm.git
cd git-wtm
go build -o git-wtm .
sudo mv git-wtm /usr/local/bin/Run from any git repository:
git-wtmSince the binary is prefixed with git-, Git also recognizes it as a subcommand:
git wtm- Visual worktree list — see all worktrees with branch, status, commit info, and sync state at a glance
- Smart add — type to search existing branches or create new ones inline, auto-generates paths
- Status tags — colored labels:
PRIMARY,ACTIVE,UNSAVED CHANGES,clean - Quick actions — add, remove, open terminal/editor, fetch, prune
- Detail view — full commit info, ahead/behind counts, file change breakdown
- Folder picker — browse for a path using your OS file manager (
Ctrl+O)
- Browse all branches — scrollable list with tracking status and sync info
- Checkout — switch branches instantly
- Create / Rename / Delete — full branch lifecycle management
- Merge — merge any branch into current
- Tags —
ACTIVE,remote,local onlywith ahead/behind indicators
- Tabbed interface — switch between Worktrees and Branches with
←→ - Search/filter — instant filter in both tabs with
/ - Loading states — visual feedback while fetching data
- Cross-platform — macOS, Linux, and Windows
- Version flag —
git-wtm --version
| Key | Action |
|---|---|
← / → |
Switch between Worktrees and Branches tabs |
/ |
Search / filter |
? |
Toggle full help |
q |
Quit |
Ctrl+C |
Force quit |
| Key | Action |
|---|---|
j / ↓ |
Move down |
k / ↑ |
Move up |
Enter |
View worktree details |
a |
Add worktree |
d / x |
Remove worktree |
o |
Open terminal in worktree |
e |
Open editor in worktree |
p |
Prune stale worktrees |
f |
Fetch all remotes |
r |
Refresh list |
| Key | Action |
|---|---|
j / ↓ |
Move down |
k / ↑ |
Move up |
Enter |
View branch details |
c |
Checkout branch |
a / n |
Create new branch |
R |
Rename branch |
d / x |
Delete branch |
m |
Merge branch into current |
f |
Fetch all remotes |
r |
Refresh list |
| Key | Action |
|---|---|
| Type | Search/filter matching branches |
↑ / ↓ |
Navigate suggestions |
Enter |
Create worktree (new branch if no match) |
Tab |
Switch to path field |
Ctrl+O |
Open folder picker (OS native) |
Esc |
Cancel |
Press a to open the add view:
- Type a branch name — matching local branches appear as a dropdown
- Pick a suggestion with
↑/↓andEnter, or just hitEnterto create a new branch - Path is optional — press
Tabto customize, orCtrl+Oto browse. Leave empty for auto-generated path
The default path is ../<repo-name>-<branch-name> (sibling directory to your repo).
Switch to the Branches tab with →. From there you can checkout, create, rename, delete, or merge branches — all without leaving the TUI.
- Git 2.15+
- A terminal with 256-color support
- Go 1.21+ only if building from source
- Optional:
zenityon Linux for the native folder picker
git-wtm respects these environment variables:
| Variable | Default | Description |
|---|---|---|
EDITOR |
code |
Editor opened with e key |
SHELL |
/bin/sh |
Shell opened with o key |
Releases are automated with GoReleaser. On every version tag, GitHub Actions builds binaries for all platforms and publishes to Homebrew, Scoop, Chocolatey, and Winget automatically.
git tag v1.0.0
git push origin v1.0.0git clone https://github.com/aryanpnd/git-wtm.git
cd git-wtm
go run .Pull requests are welcome.