Release Notes
Improved
-
--no-verifydeprecated in favor of--no-hooks: All commands (switch,remove,merge,step commit,step squash) now use--no-hooks.--no-verifyremains as a hidden alias with a deprecation warning. (#1932) -
JSON output:
--format=jsononconfig show,config statesubcommands,switch,remove,merge,step prune, andstep for-each. (#1969, #1959) -
Per-command hook log files: Each background hook command writes to its own log file instead of sharing a pipeline log. Combined hook announcements (e.g., post-remove + post-switch) display on a single status line. (#1934, #1980)
-
Prune and list performance:
step prunestreams integration checks and removes candidates in parallel (~3x faster on repos with many branches). Multiple caching layers (integration target,git_dir,rev_parse_tree,resolve_preferring_branch) reduce redundantgit rev-parsecalls duringwt list. (#1950, #1957, #1966, #1948, #1943) -
Itemized
state clearoutput:wt config state clearshows per-category counts and cleans up stale trash from incomplete worktree removals. (#1961, #1960) -
Hook pipeline summary: Serial steps separated by
;instead of→, repeated unnamed sources collapsed into counted form (user ×2), and named steps showsource:nameprefix. (#1994) -
Copy-pasteable help text:
--helpoutput strips$prompts from code examples for direct copy-paste in the terminal. (#1992) -
Better PR lookup errors:
wt switch pr:N404 errors now include the repository name and suggestgh repo set-defaultfor fork workflows. Fixes #1925. (#1927, thanks @JustinPierce for reporting) -
Claude Code worktree hooks: WorktreeCreate and WorktreeRemove hooks for the Claude Code plugin. (#1959)
Fixed
-
File permissions lost on copy-ignored:
wt step copy-ignorednow preserves execute bits when copying files via reflink. Fixes #1936. (#1937, thanks @RileyMathews for reporting) -
Git alias breaks
wt: RelativeGIT_DIR/GIT_WORK_TREEpaths inherited from git aliases now normalized to absolute paths at startup. Fixes #1914. (#1915, thanks @yasuhiroki for reporting) -
Diagnostic files in state logs:
verbose.loganddiagnostic.mdnow properly categorized inwt config state logsoutput. (#1981) -
Integration target in removal display: Background removal now shows
origin/main(effective target) instead ofmainwhen the remote is ahead. (#1993) -
Worktree-path hint suppression: The "customize worktree locations" hint no longer appears when project-specific
worktree-pathis configured. (#1941) -
State logs formatting: Missing newline between log sections in
wt config state logsoutput. (#1968) -
Claude Code WorktreeCreate hook: Fixed jq filter using wrong input field. (#1964)
-
OpenCode unicode escaping: Fixed broken emoji markers depending on Bun version. (#1935, thanks @noirbizarre)
Documentation
- Clarified plugin install command. (#1906, thanks @suyua9)
- Fixed inaccurate logs documentation. (#1986)
Internal
- Consolidated
TestRepointo singlesrc/testingmodule, shared across lib and bin unit tests. (#1944, #1963, #1971, #1991) - Simplified dispatch, timeout, and copy pool internals. (#1949, #1930, #1931)
Install worktrunk 0.35.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.35.0/worktrunk-installer.sh | sh && wt config shell installInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/max-sixty/worktrunk/releases/download/v0.35.0/worktrunk-installer.ps1 | iex"; git-wt config shell installInstall prebuilt binaries via Homebrew
brew install worktrunk && wt config shell installDownload worktrunk 0.35.0
| File | Platform | Checksum |
|---|---|---|
| worktrunk-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| worktrunk-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| worktrunk-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| worktrunk-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| worktrunk-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Install via Cargo
cargo install worktrunk && wt config shell installInstall via Winget (Windows)
winget install max-sixty.worktrunk && git-wt config shell installInstall via AUR (Arch Linux)
paru worktrunk-bin && wt config shell install