Release Notes
Improved
-
wt step <alias>command: User-defined command templates with template variables ({{ branch }},{{ worktree }}, custom--var KEY=VALUE). Project-config aliases require approval; user-config aliases are trusted. Docs (#1348, thanks @cavanaug for the feature request in #1214) -
Remove worktrees from switch picker:
alt-rinwt switchinteractive picker removes the highlighted worktree directly (no force flags — matches safety defaults). (#1253, thanks @alfredomtx for the feature request in #1251) -
wt hook <type> --dry-run: Preview hook expansion with template variables resolved, without executing. (#1361) -
Hook template variables:
{{ hook_type }}and{{ hook_name }}are now available in hook command templates. (#1364) -
Typo suggestions for step commands: Unknown step commands and aliases now suggest the closest match. (#1363)
-
Syntax-highlighted
--help: Code blocks in--helpoutput now render with language-aware syntax highlighting (TOML, bash) instead of plain dimmed text. Help options are grouped under navigational headings (Picker Options, Automation). (#1365, #1355, #1359) -
Nix Home Manager module: Install worktrunk via Nix Home Manager. (#1287, thanks @DuskyElf; thanks @meicale for reporting #1257)
-
Output styling: Bold names replace quoted names in error messages, underlined references replace bright-black in hints,
@ pathconvention unified in section headings, and branch-worktree mismatch warnings now show both actual and expected paths. (#1375, #1380, #1285, #1376, #1377, thanks @jhigh2000 for reporting #1184)
Fixed
-
--no-cdwith interactive picker: The--no-cdflag is now passed through when usingwt switchwith the interactive picker. (#1331, thanks @cperalt for reporting #1330) -
Remote branches with
/in picker:wt switch --remotesnow correctly handles remote branches with/in the name (e.g.,origin/user/feature). (#1266, thanks @curtbushko for reporting #1260) -
Nushell config path on Windows:
wt config shell installnow uses the platform-appropriate config directory for nushell on Windows. (#1294, thanks @deltoss for reporting #1293) -
Git for Windows per-user install: Detect per-user Git for Windows installations and show a clean error message instead of panicking when Git Bash is not found. (#1261, #1262, thanks @JefMasereel for reporting #1259)
-
JSON output
summaryfield:wt list --format=jsonnow includes thesummaryfield. (#1339) -
Squash merge message: Uses source branch name instead of target branch in the merge commit message. (#1319, thanks @ricafeal)
-
Alias approval errors: Propagate the real error (e.g., "no remote URL found") instead of a vague "Cannot determine project identifier". (#1374)
-
wt step pruneoutput: Summary uses cleaner paired format ("Pruned 1 worktree & branch") and fixes post-remove hook display path for non-current worktrees. (#1344) -
VCS metadata in
copy-ignored: Exclude.git,.hg,.svn,_darcsdirectories fromwt step copy-ignored. (#1250) -
Nix evaluation warning: Use
stdenv.hostPlatform.systeminstead of deprecatedsystem. (#1336, thanks @onelocked)
Documentation
-
Home page SEO: Canonical URL deduplication and consistent tagline. (#1357)
-
LLM commit tools: Add opencode and consolidate other LLM commit tool references. (#1295)
Internal
-
Git plumbing: Replace porcelain commands with plumbing alternatives (
rev-parse --symbolic-full-name,log --no-walk,for-each-ref) for more robust output parsing. Cache deprecated-variable regexes and fix silent wrong results insame_commit()/trees_match(). (#1345, #1338, #1358) -
Error propagation:
repo_path()andShellConfig::get()now returnResultinstead of silently falling back. (#1280, #1262) -
CI improvements: Consolidated setup into composite action, replaced
gh run watchwith poll loops, added conflict resolution for bot PRs in nightly cleaner. (#1273, #1329, #1307)
Install worktrunk 0.29.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.29.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.29.0/worktrunk-installer.ps1 | iex"; git-wt config shell installInstall prebuilt binaries via Homebrew
brew install worktrunk && wt config shell installDownload worktrunk 0.29.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