github max-sixty/worktrunk v0.33.0
0.33.0

7 hours ago

Release Notes

Improved

  • Hook execution pipelines: Post-* hooks support TOML array syntax for serial dependencies — steps execute in order, with maps within steps running concurrently. post-start = [{ install = "npm install" }, { build = "npm run build", lint = "npm run lint" }] runs install first, then build and lint in parallel. Docs (#1713)

  • Copy-ignored exclude patterns: wt step copy-ignored now skips built-in VCS metadata and tool-state directories (.bzr/, .conductor/, .entire/, .hg/, .jj/, .pi/, .pijul/, .sl/, .svn/, .worktrees/) by default. Additional excludes are configurable via [step.copy-ignored] exclude = [...] in user or project config. (#1667, thanks @shunkakinoki for #1653)

  • Copy-ignored parallelized: wt step copy-ignored directory walks run in parallel with a dedicated 4-thread pool, improving performance on multi-core systems. (#1721)

  • Alias append semantics: Aliases now use append semantics across all config layers, matching hook merge behavior. Within user config, per-project aliases append to global aliases on collision (global first). Across configs, project-config aliases also run alongside user aliases (user first, then project with approval) — previously the user version silently suppressed the project version. (#1724, #1727)

  • Agent skill discovery: The website now serves .well-known/agent-skills/ for web-based skill discovery by AI agents. (#1751)

Fixed

  • Picker alt-r skipped remove hooks: Removing a worktree via alt-r in the picker bypassed pre-remove and post-remove hooks. Pre-remove hooks now run synchronously (non-zero exit aborts removal), and post-remove hooks spawn in the background. (#1710)

  • False positive shell integration warning: wt config show reported "Found wt in ... but not detected as integration" for Nushell and Fish wrapper files that ARE the integration. Fixes #1735. (#1736, thanks @saschabratton)

  • Bare repo config path ignored: wt hook approvals add and other config commands failed to find .config/wt.toml in bare repositories because they looked relative to the current worktree instead of the primary worktree. Fixes #1744. (#1745, thanks @jrdncstr)

Documentation

  • Help text for wt step subcommands cleaned up — redundant openers removed. (#1737)

  • Experimental badge placement fixed in generated documentation. (#1742, #1729, #1734, #1746)

Internal

  • Copy-ignored built-in exclude constants consolidated. (#1738)

  • Cmd::env() accepts AsRef<OsStr> for direct path compatibility. (#1723)

  • Picker width survey snapshots for layout testing at various terminal sizes. (#1613)

Install worktrunk 0.33.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.33.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.33.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.33.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.