I’ve been using git worktrees for a while, but I could never remember the commands. Every time I needed to context switch I’d end up googling “git worktree add” again.
So I made a small wrapper called workty. The main things it does:
```
wnew feat/login
Creates a new worktree and cd’s into it
wcd
Fuzzy-pick an existing worktree and cd there
wgo main
Jump straight back to the main worktree
```
There’s also a simple dashboard that shows the state of everything:
It’s not trying to replace git or introduce a new workflow — it just removes friction from using worktrees. It won’t delete dirty worktrees unless you force it, and it prompts before anything destructive.
I’ve been using git worktrees for a while, but I could never remember the commands. Every time I needed to context switch I’d end up googling “git worktree add” again.
So I made a small wrapper called workty. The main things it does:
``` wnew feat/login Creates a new worktree and cd’s into it
wcd Fuzzy-pick an existing worktree and cd there
wgo main Jump straight back to the main worktree ```
There’s also a simple dashboard that shows the state of everything:
``` ▶ feat/login ● 3 ↑2↓0 ~/.workty/repo/feat-login main ↑0↓0 ~/src/repo ```
It’s not trying to replace git or introduce a new workflow — it just removes friction from using worktrees. It won’t delete dirty worktrees unless you force it, and it prompts before anything destructive.
Written in Rust. Install via cargo:
``` cargo install git-workty ```
Repo: https://github.com/binbandit/workty
Curious if anyone else uses worktrees as their main workflow, or if I’m just weird for doing this.
If you want, I can also:
Make it slightly more “HN-humble” / less pitchy
Tighten it further to fit the classic “Show HN:” style
Add a short one-liner opener like “Show HN: workty – a tiny git worktree wrapper”