Git worktrees, on steroids.
A fast, interactive git worktree manager with GitHub and Claude integration.
Website • Documentation • Installation
Git worktrees are powerful but managing them manually is tedious. wt provides:
- One command to navigate, create, and delete worktrees
- Quick switch —
wt featto fuzzy-match and jump to a worktree - PR workflow — create a worktree directly from a GitHub PR
- Issue workflow — create a worktree from a GitHub issue with auto-named branch
- Claude integration — auto-resolve issues, fix CI failures, review PRs
- Dirty indicator — see which worktrees have uncommitted changes
- Persistent settings — configure editor, platform, prefixes and more via
⚙ Settings
brew tap AThevon/worktigre && brew install worktigrecurl -fsSL https://raw.githubusercontent.com/AThevon/worktigre/main/install.sh | bashThis will install wt to ~/.local/bin, configure your shell, and install required dependencies.
# Try it
nix run github:AThevon/worktigre
# Or add to your flake inputs
# inputs.worktigre.url = "github:AThevon/worktigre";wt --updateOn first launch, wt automatically runs a preferences wizard to choose your editor and platform. To re-run it at any time:
wt --wizardwt # Open interactive menu
wt feat # Quick switch (fuzzy match)
wt - # Previous worktree
wt . # Main worktreewt v2.0.1 │ myapp
──────────────────────────────────────────────────────
● main
★ feature/new
○ feature/auth *
◎ fix/bug
✓ old-feature
+ Create a worktree
⧉ Manage stashes
✕ Delete worktree(s)
⚙ Settings
↩ Quit
──────────────────────────────────────────────────────
^E editor │ ^N new │ ^P PRs │ ^G issues │ ^D delete
| Icon | Color | Meaning |
|---|---|---|
● |
dim | Main branch (main/master) |
★ |
yellow | New local branch (never pushed) |
○ |
orange | In progress (pushed, not merged) |
◎ |
magenta | Review worktree |
✓ |
green | Merged (squash merge supported) |
* |
— | Dirty (uncommitted changes) |
| Key | Action |
|---|---|
Enter |
Select / Navigate |
Ctrl+N |
Create new worktree |
Ctrl+E |
Open in editor |
Ctrl+P |
List PRs |
Ctrl+G |
List issues |
Ctrl+D |
Delete worktree(s) |
Ctrl+O |
Open in browser |
Tab |
Multi-select |
Esc |
Back / Cancel |
- New branch — enter name and select base branch
- From existing branch — browse local/remote branches
- From current — quick copy with timestamp
- From an issue — creates
feature/{issue-num}-{title}branch - Review a PR — creates worktree with
reviewing-prefix
Launch Claude from any issue or PR with three modes:
| Mode | Description |
|---|---|
| Forced | Full auto — Claude executes everything |
| Ask | Claude confirms before impactful actions |
| Plan | Claude creates a plan first |
Auto-resolve issues: Claude reads the issue, implements the solution, and creates a PR.
Fix CI failures: Claude fetches logs, fixes the code, and pushes.
Review PRs: Claude performs a comprehensive code review.
Access ⚙ Settings from the main menu to configure preferences. Settings are saved to ~/.config/wt/config.
| Key | Default | Description |
|---|---|---|
WT_EDITOR |
auto-detected | Preferred editor (Ctrl+E) |
WT_PLATFORM |
auto | Git platform: auto / github / gitlab |
WT_WORKTREE_DIR |
(parent of repo) | Custom worktree root directory |
WT_AUTO_CD |
true |
Auto-navigate to selected worktree |
WT_FEATURE_PREFIX |
feature/ |
Prefix for branches created from issues |
WT_AUTO_FETCH |
true |
Fetch before listing PRs/issues |
WT_CLAUDE_MODE |
(ask each time) | Default Claude mode: forced / ask / plan |
WT_LIST_LIMIT |
20 |
Max items in PR/issue lists |
You can also edit the file directly or reset to defaults via Ctrl+R in the Settings menu.
The stash menu provides a complete workflow with rich information:
- Enhanced list — age, file count, original branch
- Preview panel — stash info, impacted files, conflict detection
- Partial stash — select specific files with
Space - Multi-select drop — delete multiple stashes at once
- Create worktree from stash —
Ctrl+W - Create branch from stash —
Ctrl+B - Resolve conflicts with Claude —
Ctrl+R - Export to .patch —
Ctrl+X - Rename stash —
Ctrl+E
| Key | Action |
|---|---|
Ctrl+A |
Apply stash |
Ctrl+P |
Pop stash |
Ctrl+D |
Drop stash(es) |
Ctrl+W |
Create worktree from stash |
Ctrl+B |
Create branch from stash |
Ctrl+N |
New stash |
Ctrl+E |
Rename stash |
Ctrl+R |
Resolve conflicts (Claude) |
Ctrl+S |
Partial stash (select files) |
Ctrl+X |
Export to .patch |
? |
Show all shortcuts |
| CI | Review | Meaning |
|---|---|---|
[ok] |
✓ |
Passed / Approved |
[fail] |
✗ |
Failed / Changes requested |
[..] |
◀ |
Running / Needs your review |
[draft] |
Draft PR |
| Dependency | Required | Purpose |
|---|---|---|
| fzf | Yes | Interactive selection |
| gum | Yes | Styled UI (spinners, prompts, inputs) |
| jq | Yes | JSON parsing |
| gh | No | GitHub integration |
| glab | No | GitLab integration |
| claude | No | AI features |
Nix:
Remove from your flake inputs and run home-manager switch or nix profile remove.
Homebrew:
brew uninstall worktigre && brew untap AThevon/worktigreManual install (Linux/WSL/macOS):
rm ~/.local/bin/wt-core
# Remove these lines from ~/.zshrc or ~/.bashrc:
# export PATH="$HOME/.local/bin:$PATH"
# command -v wt-core &>/dev/null && eval "$(wt-core --shell-init)"GPL-3.0
