Skip to content

Releases: max-sixty/worktrunk

0.18.1

21 Jan 19:49

Choose a tag to compare

Release Notes

Fixed

  • Submodule worktree paths: Worktrees are now created in the correct location when running inside a git submodule. Previously, worktrees were created relative to the parent repo's .git/modules/ directory instead of the submodule's working directory. (#762, thanks @lajarre; #777, thanks @mhonsel for reporting)
  • Shell integration warnings: Warnings about shell integration now check if the current shell has integration configured, not whether any shell does. This fixes misleading "shell requires restart" messages when e.g. bash had integration but the user was running fish. (#772)
  • "Not found" error messages: Improved error message phrasing — "No branch named X" instead of "Branch X not found", "Branch X has no worktree" instead of "No worktree found for branch X". Context-appropriate hints now appear (e.g., wt remove no longer suggests --create). (#774)

Internal

  • Unified PR/MR reference resolution, reducing code duplication. (#778)

Install worktrunk 0.18.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.18.1/worktrunk-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/max-sixty/worktrunk/releases/download/v0.18.1/worktrunk-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.18.1

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

0.18.0

21 Jan 00:55

Choose a tag to compare

Release Notes

Improved

  • Post-remove hook: New hook type runs after worktree removal. Template variables ({{ branch }}, {{ worktree_path }}, {{ commit }}) reference the removed worktree, enabling cleanup scripts for containers, servers, or other resources. (#757)
  • Graceful handling of missing worktree directories: wt remove now prunes stale git metadata when the worktree directory was deleted externally (e.g., rm -rf), making the command more idempotent. Fixes #724. (thanks @strangemonad for reporting)
  • Config validation warnings at load time: Unknown fields in config files (typos like [commit-gen] instead of [commit-generation]) now show warnings immediately instead of only in wt config show. (#758)

Fixed

  • Age column shows "future" on NixOS/direnv: wt list no longer uses SOURCE_DATE_EPOCH for time calculations, which NixOS and direnv commonly set to past timestamps for reproducible builds. Fixes #763. (thanks @ngotchac for reporting)
  • CI status with URL-based pushremote: CI detection now works when branch.<name>.pushremote is set to a URL directly (as gh pr checkout does) instead of a remote name. (#769)
  • GitLab nested groups in URL parsing: URLs like gitlab.com/group/subgroup/repo now correctly identify repo as the repository name instead of subgroup. This was a security fix — previously, approval bypass was possible across sibling repos in the same parent group. (#768)
  • GitLab CI status detection: Fixed multiple issues with glab CLI compatibility — MR lookup now uses two-step resolution, "manual" pipelines show as running instead of failed, and rate limit errors are handled properly. Fixes #764. (thanks @ngotchac for reporting)

Internal

  • Refactored accessor functions to use bare nouns per Rust convention. (#765)
  • Clarified target/integration naming across codebase. (#755)

Install worktrunk 0.18.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.18.0/worktrunk-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/max-sixty/worktrunk/releases/download/v0.18.0/worktrunk-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.18.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

0.17.0

20 Jan 06:23

Choose a tag to compare

Release Notes

Improved

  • Per-project config overrides (Experimental): Override settings per-project in user config. Supports worktree-path, commit-generation, list, commit, and merge sections. Config precedence: CLI arg > project config > global config > default. Closes #596. (#749)
  • Search all remotes for branch existence: Branch existence checks and completions now search all remotes instead of just the primary remote, matching git's behavior. When a branch exists on multiple remotes, completions show all of them (e.g., feature ⇣ 2d origin, upstream). (#744)
  • CI detection for fork workflows: CI status detection now searches all remotes and uses gh config get git_protocol / glab config get git_protocol for fork URL protocol preference instead of inferring from existing remotes. (#753)

Fixed

  • Same-repo PR switching with stale refs: wt switch pr:N for same-repo PRs now fetches the branch before validation, fixing "Branch not found" errors when local refs were stale. (#742)
  • Project identifier collision for repos without remotes: Repos without remotes now use their full canonical path as the project identifier instead of just the directory name, preventing approval collisions between unrelated repos (e.g., ~/work/myproject vs ~/personal/myproject). Users with remoteless repos will need to re-approve commands. (#747)

Internal

  • Cross-platform path handling improvements using path-slash crate and Path::file_name(). (#750)
  • Renamed WorktrunkConfig to UserConfig internally. (#746)

Install worktrunk 0.17.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.17.0/worktrunk-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/max-sixty/worktrunk/releases/download/v0.17.0/worktrunk-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.17.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

0.16.0

19 Jan 19:50

Choose a tag to compare

Release Notes

Improved

  • Background hook verbosity: Background hooks (post-start, post-switch) now show a single-line summary by default instead of per-hook output. Use -v to see detailed output with expanded commands. We're open to feedback on this change — let us know in #690. (thanks @clutchski for reporting)

Internal

  • Fixed dead Apple documentation link in copy-ignored rationale. (#743)

Install worktrunk 0.16.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.16.0/worktrunk-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/max-sixty/worktrunk/releases/download/v0.16.0/worktrunk-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.16.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

0.15.5

19 Jan 18:16

Choose a tag to compare

Release Notes

Fixed

  • Hook execution order: Hooks now run in the order defined in the config file. Previously, HashMap iteration randomized the order. Fixes #737. (thanks @ngotchac for reporting)

Install worktrunk 0.15.5

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.15.5/worktrunk-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/max-sixty/worktrunk/releases/download/v0.15.5/worktrunk-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.15.5

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

0.15.4

19 Jan 08:01

Choose a tag to compare

Release Notes

Improved

  • Git progress for slow worktree creation: When git worktree add takes more than 400ms (common on large repos), worktrunk now shows a progress message and streams git's output instead of going silent. (#725)
  • Verbose template expansion output: -v now shows template expansion details: the template, expanded command, and any undefined variables with SemiStrict fallback behavior. (#712)
  • Shell integration hint for explicit path invocation: When running wt via explicit path (e.g., ./target/debug/wt) with shell integration configured, the warning now suggests running wt switch <branch> to use the shell-wrapped command. (#721)

Fixed

  • Unsafe upstream when creating branch from remote base: wt switch --create feature --base=origin/main no longer sets up tracking to origin/main, preventing accidental pushes to the base branch. Fixes #713. (thanks @kfirba)
  • Credential redaction in debug logs: URLs with embedded credentials (e.g., https://token@github.com/...) are now redacted in -vv debug output. (#718)
  • Hook preview shows template on expansion failure: wt hook show --expanded now displays both the error message and original template when expansion fails, instead of hiding the template. (#722)

Documentation

  • Homebrew install uses core tap: Install command updated from max-sixty/worktrunk/wt to worktrunk. (#716, thanks @chenrui333)
  • Hook docs reordered: post-start (background) is now the recommended default, with post-create for blocking dependencies. (#733)

Internal

  • Simplified GitHub/GitLab CI status detection. (#730)
  • Previous worktree gutter changed from - to + for visual consistency. (#699)

Install worktrunk 0.15.4

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.15.4/worktrunk-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/max-sixty/worktrunk/releases/download/v0.15.4/worktrunk-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.15.4

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

0.15.3

18 Jan 09:23

Choose a tag to compare

Release Notes

Fixed

  • --execute command display: Shows the expanded command in a gutter with path context instead of showing the raw template before expansion. (#708)
  • CRLF line endings in error display: Multiline errors with Windows (\r\n) or old Mac (\r) line endings now display correctly instead of falling through to single-line handling. (#707)

Documentation

  • Arch Linux install via AUR: Added installation instructions and shell integration command. (#709, #561, thanks @razor-x)

Install worktrunk 0.15.3

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.15.3/worktrunk-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/max-sixty/worktrunk/releases/download/v0.15.3/worktrunk-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.15.3

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

0.15.2

18 Jan 06:52

Choose a tag to compare

Release Notes

Improved

  • wt config shell completions <shell>: Generate static shell completion scripts for package managers and custom installation. (#701, thanks @chenrui333)
  • Debug logging threshold: Now requires -vv instead of -v for debug logging and diagnostic file generation, freeing -v for future use. (#702)

Fixed

  • Fork PR fetching: wt switch pr:N now works when origin points to a fork by fetching PR refs from the upstream remote. Shows actionable error with git remote add command if upstream remote is missing. (#704)
  • Fork PR branch naming: Fork PR branches now use the original branch name (e.g., feature-fix) instead of owner/feature-fix, so git push works correctly. (#706)
  • Config race conditions: File locking prevents corruption when multiple wt processes modify config simultaneously. (#693)
  • Nested worktree detection: Current worktree indicator (@) now shows on the correct worktree when worktrees are nested (e.g., .worktrees/ layout inside repo). (#697)
  • Symlink path resolution: Worktree commands work correctly on systems with symlinks (e.g., macOS /var/private/var). (#696)
  • Pre-remove hook failures: Shell no longer cd's to main worktree when pre-remove hooks fail, leaving user in their current location. (#692)
  • PowerShell completion robustness: Completion registration errors no longer break the shell wrapper function. (#674)

Documentation

  • Added missing orphan () symbol and no_worktree state to JSON output documentation. (#687)
  • Clarified Unicode handling in shell detection. (#700)

Internal

  • Refactored large files into focused modules. (#688)
  • Consolidated integration reason computation into Repository method. (#689)
  • Added verbose level tracking infrastructure for future -v output. (#703)
  • PowerShell template uses WORKTRUNK_BIN for test isolation. (#674)

Install worktrunk 0.15.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.15.2/worktrunk-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/max-sixty/worktrunk/releases/download/v0.15.2/worktrunk-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.15.2

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

0.15.1

16 Jan 08:31

Choose a tag to compare

Release Notes

Improved

  • wt config show diagnostics: When shell integration is not active, now shows how the command was invoked, the binary path (if different), and $SHELL environment variable. Helps diagnose setup issues. (#683)
  • Help pager follows git convention: -h never opens a pager, --help uses pager when available. Closes #583. (#651, thanks @razor-x)
  • Verbose mode logging: -v now logs command stdout/stderr and all spawned processes including background hooks, wt for-each commands, and shell probes. (#680)

Documentation

  • FAQ reordered: Questions now ordered by frequency and importance.

Internal

  • AUR package: Worktrunk now published to Arch Linux AUR on each release. (#585, thanks @razor-x)
  • Codecov Test Analytics: Integration tests now report to Codecov Test Analytics. (#682)

Install worktrunk 0.15.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.15.1/worktrunk-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/max-sixty/worktrunk/releases/download/v0.15.1/worktrunk-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.15.1

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

0.15.0

16 Jan 04:45

Choose a tag to compare

Release Notes

Improved

  • wt switch pr:<number> syntax (experimental): Switch directly to a GitHub PR by number. Same-repo PRs delegate to normal switch flow; fork PRs fetch from refs/pull/N/head and configure pushRemote. (#673, closes #657, thanks @wladpaiva for requesting)
  • --force hint for dirty worktrees: When wt remove fails due to uncommitted changes, the hint now shows the full command: wt remove <branch> --force. (#671)

Documentation

  • Windows install guidance: Winget as recommended install (ships git-wt by default), plus the App Execution Aliases workaround to use wt directly. Closes #133. (thanks @ctolkien for reporting, @shanselman for the aliases tip, @Farley-Chen for #648)
  • Caddy subdomain routing pattern: Clean URLs like feature-auth.myproject.lvh.me via Caddy reverse proxy with dynamic route registration.
  • tmux session per worktree pattern: Dedicated tmux session with multi-pane layout per worktree.

Install worktrunk 0.15.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.15.0/worktrunk-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/max-sixty/worktrunk/releases/download/v0.15.0/worktrunk-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.15.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