I Made a Lightweight Git Worktree Manager (Because I Couldn't Find One)
I built a git worktree manager because I couldn't find a simple one.
The problem hit me when running multiple AI coding agents at once—one was refactoring accessibility code while I needed to review the current implementation for a bug. Same files, different contexts. I couldn't commit the half-done work, couldn't stash and lose the agent's state, couldn't review without a clean checkout.
Git worktrees solved this, but the syntax was awkward. Branchyard exists and is great if you want VS Code integration and git hooks, but I wanted something I could drop in my dotfiles and understand in 20 minutes.
So I built gwt (git-worktree-utils): • ~1K lines of bash, zero dependencies • Source-based, lives in ~/.config • One branch = one directory (keeps the mental model simple) • Built-in cleanup for orphaned directories
Use cases beyond AI agents: • Code review without losing your place • Emergency hotfixes without stashing • Running tests in one branch while coding in another
The pattern works: multiple branches in separate directories beats constant switching. No stashing, IDE state persists, contexts stay separate.
Project: https://github.com/jamesfishwick/git-worktree-utils
AI, LLMs, web engineering, open source, data science, Datasette, SQLite, Python and more