github max-sixty/worktrunk v0.29.0
0.29.0

latest releases: v0.45.2, v0.45.1, v0.45.0...
one month ago

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-r in wt switch interactive 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 --help output 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, @ path convention 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-cd with interactive picker: The --no-cd flag is now passed through when using wt switch with the interactive picker. (#1331, thanks @cperalt for reporting #1330)

  • Remote branches with / in picker: wt switch --remotes now 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 install now 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 summary field: wt list --format=json now includes the summary field. (#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 prune output: 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, _darcs directories from wt step copy-ignored. (#1250)

  • Nix evaluation warning: Use stdenv.hostPlatform.system instead of deprecated system. (#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 in same_commit()/trees_match(). (#1345, #1338, #1358)

  • Error propagation: repo_path() and ShellConfig::get() now return Result instead of silently falling back. (#1280, #1262)

  • CI improvements: Consolidated setup into composite action, replaced gh run watch with 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 install

Install 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 install

Install prebuilt binaries via Homebrew

brew install worktrunk && wt config shell install

Download 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 install

Install via Winget (Windows)

winget install max-sixty.worktrunk && git-wt config shell install

Install via AUR (Arch Linux)

paru worktrunk-bin && wt config shell install

Don't miss a new worktrunk release

NewReleases is sending notifications on new releases.