Skip to content

Releases: max-sixty/worktrunk

0.10.0

08 Jan 07:06

Choose a tag to compare

Release Notes

Improved

  • wt step copy-ignored: Copy gitignored files listed in .worktreeinclude between worktrees. Useful for syncing .env files, IDE settings, and build caches to new worktrees via post-create hooks. Uses COW (reflink) copying for efficient handling of large directories. Matches Claude Code Desktop's worktree file syncing behavior.
  • --foreground flag: Debug background hooks by running them in the foreground. Available on wt hook post-start, wt hook post-switch, and wt remove. Replaces the deprecated --no-background flag.
  • --var flag for hooks: Override template variables when running hooks manually, e.g., wt hook post-create --var target=main.
  • [ci] platform config: Explicitly set CI platform (github or gitlab) for GitHub Enterprise or self-hosted GitLab where URL-based detection fails.
  • Upstream diff in wt select: Tab 4 shows ahead/behind diff vs upstream tracking branch (remote⇅), matching the column in wt list.
  • {{ base }} and {{ base_worktree_path }} variables: New template variables for creation hooks (post-create, post-start, post-switch) to access the base branch name and worktree path.
  • -vv diagnostic reports: Double-verbose flag writes a diagnostic report to .git/wt-logs/diagnostic.md with environment info, configs, and logs for easy bug reporting.

Fixed

  • Warning ordering: Warnings about state discovered during evaluation now appear before the action message, making them feel like considered observations rather than afterthoughts.
  • Config validation in wt config show: Now validates TOML syntax and schema, displaying parse errors with details.

Documentation

  • Undocumented features: Added documentation for --show-prompt and --stage flags on wt step commit/squash, skip-shell-integration-prompt config, and [select] pager config.

Install worktrunk 0.10.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.10.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.10.0/worktrunk-installer.ps1 | iex"

Download worktrunk 0.10.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.9.5

07 Jan 00:10

Choose a tag to compare

Release Notes

Improved

  • Pager config for wt select: New [select] pager config option to customize the diff pager in wt select previews. Auto-detects delta/bat when not configured.
  • Infinity symbol for extreme diffs: wt list shows instead of 9K for diffs >= 10,000 commits, avoiding misleading values.

Fixed

  • Windows shell integration message: Warning now shows just the command name instead of the full absolute path, and gives targeted advice when only the .exe suffix differs.
  • URL column width: Column width in wt list now accounts for hyperlink display showing just :PORT instead of full URLs.

Internal

  • Deprecated template-file and squash-template-file: Legacy LLM template config options now show deprecation warnings.
  • Path handling improvements: Replaced string manipulation with proper Path/PathBuf stdlib methods throughout the codebase.

Install worktrunk 0.9.5

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.9.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.9.5/worktrunk-installer.ps1 | iex"

Download worktrunk 0.9.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.9.4

06 Jan 03:37

Choose a tag to compare

Release Notes

Improved

  • Diagnostic report generation: wt list --verbose generates diagnostic reports (.git/wt-logs/diagnostic.md) when warnings or errors occur, with a gh issue create command hint when GitHub CLI is available.
  • Alias bypass detection: wt config show detects shell aliases that point to binary paths (e.g., alias gwt="/usr/bin/wt") and warns that they bypass shell integration with suggested fixes.
  • Switch message clarity: Messages now explicitly state what was created — "Created branch X and worktree" vs "Created worktree for X" vs "Switched to worktree for X".
  • Worktree-path hint: One-time hint after first wt switch --create suggesting wt config create to customize worktree locations.
  • Path mismatch warnings: wt remove and wt merge show warnings when worktree paths don't match the config template.
  • CLI command ordering: Commands reordered by usage frequency in --help (switch, list, remove, merge...).

Fixed

  • Progress counter overflow: Fixed wt list progressive rendering when URL sends caused completed count to exceed expected count.
  • Windows shell integration: Shell function now correctly strips .exe suffix, relying on MSYS2/Git Bash automatic resolution (fixes #348).
  • Prunable worktrees: Gracefully handle worktrees where the directory was deleted but git still tracks metadata.
  • Help text tables: Disabled clap text wrapping to preserve markdown tables in --help output.

Documentation

  • FAQ entries: Added entries for "What files does Worktrunk create?" and "What can Worktrunk delete?".

Internal

  • Hint state management: New wt config state hints subcommand for viewing and clearing shown hints.
  • Deprecated config deduplication: Migration files (.new) only written once per repo, tracked via git config hints.

Install worktrunk 0.9.4

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.9.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.9.4/worktrunk-installer.ps1 | iex"

Download worktrunk 0.9.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.9.3

05 Jan 04:42

Choose a tag to compare

Release Notes

Improved

  • Terminal hyperlinks for URLs: The URL column in wt list now shows clickable links (OSC 8) in supported terminals, displaying a compact :port that links to the full URL.
  • Statusline truncation: Statusline output now intelligently truncates by dropping low-priority segments (URL, CI) before high-priority ones (branch, model) when exceeding terminal width.
  • Statusline URL: When a project has a [list] url template configured, the URL now appears in statusline output for shell prompts.
  • Bare repo default branch detection: Uses symbolic-ref HEAD as a heuristic for detecting the default branch in bare repos and empty repos before the first commit.
  • Terminology: Renamed "path mismatch" to "branch-worktree mismatch" for clarity. In JSON output (wt list --format=json), the field path_mismatch is now branch_worktree_mismatch.

Fixed

  • Empty bare repo bootstrap: wt switch --create main now works in empty bare repos by handling unborn branches correctly.

Documentation

  • CLI help text: Improved descriptions across multiple commands including wt, wt list, wt select, wt step, wt merge, wt remove, and wt hook.
  • Web docs copy button: Fixed copy button position so it stays at top-right when scrolling horizontally through code blocks.

Internal

  • Claude Code plugin detection: wt config show now displays whether the worktrunk Claude Code plugin is installed, with install hints if needed.
  • Hyperlink diagnostics: wt config show shows hyperlink support status (active/inactive).

Install worktrunk 0.9.3

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.9.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.9.3/worktrunk-installer.ps1 | iex"

Download worktrunk 0.9.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.9.2

04 Jan 18:52

Choose a tag to compare

Release Notes

Fixed

  • Locked worktree detection: wt remove now detects locked worktrees upfront and shows a clear error with unlock instructions, instead of reporting success but silently failing. (#408, #412)
  • Windows Git Bash shell integration: Shell detection now handles Windows-style paths in $SHELL (e.g., C:\Program Files\Git\usr\bin\bash.exe). Fixes #348. (#398)

Documentation

  • CLI help text clarity: Improved descriptions for wt, wt list, wt step push, wt step squash, wt remove, and wt config state. (#410)
  • Installation commands: Removed $ prefixes from install commands for easier copy-paste. (#405, thanks @muzzlol)

Internal

  • Home worktree lookup: Centralized with find_home() and home_path() methods for more consistent behavior with bare repos.
  • Windows CI: Added cross-platform mock infrastructure for testing Windows-specific behavior.

Install worktrunk 0.9.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.9.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.9.2/worktrunk-installer.ps1 | iex"

Download worktrunk 0.9.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.9.1

03 Jan 08:15

Choose a tag to compare

Release Notes

Improved

  • Shell integration debug info: wt config show now displays invocation details (path, git subcommand mode, explicit path usage) to help diagnose shell integration issues. "Shell integration not active" is now a warning instead of a hint.

Install worktrunk 0.9.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.9.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.9.1/worktrunk-installer.ps1 | iex"

Download worktrunk 0.9.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.9.0

03 Jan 02:54

Choose a tag to compare

Release Notes

Improved

  • Shell integration prompt: When shell integration isn't active after wt switch, an interactive prompt offers to install it. The prompt remembers your choice and falls back to a hint for non-TTY environments.
  • Template variable names: Renamed for clarity: repo_rootrepo_path, worktreeworktree_path, main_worktreerepo. Added main_worktree_path for accessing the main worktree's absolute path. Deprecated names work with migration warnings and auto-generated .new config files.
  • Shell integration warnings: Specific diagnostic messages when shell cd won't work: "shell integration not installed", "shell requires restart", "ran ./wt; shell integration wraps wt", or "ran git wt; running through git prevents cd".
  • RUNTIME section in wt config show: Displays binary name, version, and shell integration status to help debug invocation issues.
  • Clickable CI indicator: The CI status indicator (●) in wt list output is now a clickable link to the PR in terminals that support OSC 8 hyperlinks.
  • wt switch help text: Clarifies the difference from git switch and documents common failure conditions.

Fixed

  • Hook path display: Hook announcements show the execution path when shell integration isn't active.
  • Approval matching with deprecated vars: Approvals now match regardless of whether they were saved with deprecated or current variable names.
  • Documentation filter syntax: Fixed incorrect Jinja filter examples that showed ~ concatenation with | filter without parentheses. (#373, thanks @coriocactus)

Documentation

  • Pre-remove hook example: Added pattern for cleaning up background processes (e.g., killing dev servers) when worktrees are removed.

Install worktrunk 0.9.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.9.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.9.0/worktrunk-installer.ps1 | iex"

Download worktrunk 0.9.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.8.5

02 Jan 05:24

Choose a tag to compare

Release Notes

Improved

  • Windows git-wt command: Winget now ships with git-wt as a workaround to the Windows Terminal wt naming conflict. We're still considering better options — see #133.

Install worktrunk 0.8.5

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.8.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.8.5/worktrunk-installer.ps1 | iex"

Download worktrunk 0.8.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.8.4

02 Jan 02:42

Choose a tag to compare

Release Notes

Improved

  • Shell integration detection: More robust detection of git wt (space) vs git-wt patterns. wt config show now displays line numbers for detected shell integration.
  • Windows wt select error: Shows a helpful error message with alternatives instead of "unrecognized subcommand".

Fixed

  • Markdown table rendering: Escaped pipe characters (\|) in help output now render correctly.
  • Dim styling on wrapped lines: Dim text attribute now preserved on continuation lines when text wraps.
  • Path occupied hint: Fixed tilde expansion issue where ~/... paths didn't work in shell commands.

Documentation

  • Hook design guide: Added comprehensive guide for designing hooks.
  • Command docs: Added wt config show to command documentation.
  • Windows paths: Documented MSYS2 auto path conversion for Windows shell integration.

Internal

  • Output system: Consolidated output functions, removed redundant aliases.
  • Zsh compinit: Improved handling of "insecure directories" warning in tests.

Install worktrunk 0.8.4

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.8.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.8.4/worktrunk-installer.ps1 | iex"

Download worktrunk 0.8.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.8.3

31 Dec 23:44

Choose a tag to compare

Release Notes

Improved

  • Hook execution path: Shows the execution path when post-merge hooks run in a different directory than where the user invoked the command (e.g., with --no-remove).
  • TTY check for wt select: Now fails gracefully when run in a non-interactive terminal instead of hanging.
  • Background hooks: post-start and post-switch hooks spawn in background via stdin piping, matching their normal behavior during wt switch.
  • Occupied path error message: When a worktree path is occupied by a different branch, the error now explains the situation clearly and suggests git switch.
  • Shell integration hint: Shows a hint to restart the shell when shell integration is configured but not active.
  • Message style: Removed 2nd person pronouns ("you/your") from user-facing messages following CLI guidelines.

Fixed

  • wt hook post-start blocking: Fixed bug where wt hook post-start ran in foreground blocking the command, instead of spawning in background like during normal wt switch --create.
  • Approval bypass with project: prefix: Fixed security issue where using project: filter prefix (e.g., wt hook pre-merge project:) bypassed the approval check, allowing unapproved project commands to run.

Documentation

  • License file: Added combined MIT and Apache-2.0 license file.
  • Demo GIFs: Added demo GIFs to command pages on the documentation site.
  • Install instructions: Simplified to single-line commands.

Internal

  • Pre-commit hooks: Updated to immutable tags.
  • Lychee exclusions: Cleaned up link checker configuration.

Install worktrunk 0.8.3

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.8.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.8.3/worktrunk-installer.ps1 | iex"

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