Summary
Add worktree picker mode (w key) and branch creation (n in branch picker) to differ's TUI.
Worktree support
w opens worktree picker (list, switch, create, remove)
Switching replaces internal Repo pointer → all ops auto-target new worktree
New worktrees created at .worktrees/{branch} (configurable via worktree_dir config)
Remove requires double-press d, errors on dirty worktrees (no --force)
Branch creation
n in branch picker opens text input for new branch name
Creates branch via git branch <name>, refreshes list
Keybindings
Worktree picker: j/k nav, Enter switch, n new, d remove, esc cancel
Branch picker: n create new branch
Technical approach
New git methods: ListWorktrees, AddWorktree, AddWorktreeNewBranch, RemoveWorktree, CreateBranch
New modeWorktreePicker following branch picker pattern
WorktreeDir config field (default .worktrees/{branch})
Closes feat: branch creation from within differ #20
Plan
See .claude/plans/moonlit-leaping-tower.md for detailed implementation plan.
Summary
Add worktree picker mode (
wkey) and branch creation (nin branch picker) to differ's TUI.Worktree support
wopens worktree picker (list, switch, create, remove)Repopointer → all ops auto-target new worktree.worktrees/{branch}(configurable viaworktree_dirconfig)d, errors on dirty worktrees (no --force)Branch creation
nin branch picker opens text input for new branch namegit branch <name>, refreshes listKeybindings
Worktree picker:
j/knav,Enterswitch,nnew,dremove,esccancelBranch picker:
ncreate new branchTechnical approach
ListWorktrees,AddWorktree,AddWorktreeNewBranch,RemoveWorktree,CreateBranchmodeWorktreePickerfollowing branch picker patternWorktreeDirconfig field (default.worktrees/{branch})Plan
See
.claude/plans/moonlit-leaping-tower.mdfor detailed implementation plan.