Skip to content

Releases: max-sixty/worktrunk

0.23.1

07 Feb 07:00

Choose a tag to compare

Release Notes

Improved

  • Interactive picker runs hooks: wt switch without arguments (the interactive picker) now runs post-switch, post-start, and post-create hooks, matching the non-interactive path. (#942)

  • Combined hook output during removal: Post-remove and post-switch hooks during worktree removal are now shown on a single output line instead of two separate lines. (#943)

Fixed

  • Shell escape corruption with template filters: Shell escaping was applied before template rendering, so filters like sanitize operated on already-escaped strings, corrupting values with special characters (e.g., apostrophes in branch names). (#944)

  • wt switch - history corruption: wt switch foo while already in foo would incorrectly record foo as the previous branch, breaking wt switch - ping-pong. (#944)

  • --base without --create showed wrong error: Using --base without --create could produce misleading errors (e.g., "No previous branch") instead of the expected warning that --base requires --create. (#944)

Install worktrunk 0.23.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.23.1/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.23.1/worktrunk-installer.ps1 | iex"; git-wt config shell install

Install prebuilt binaries via Homebrew

brew install worktrunk && wt config shell install

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

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

0.23.0

06 Feb 02:53

Choose a tag to compare

Release Notes

Improved

  • Preserve subdirectory position when switching: wt switch now lands in the same subdirectory of the target worktree if it exists, falling back to the root if it doesn't. Docs (#939, thanks @frederik-suerig for requesting)

  • wt switch --no-cd: Skip the directory change after switching, useful for scripting or running commands in another worktree without leaving your current shell position. Docs (#932, thanks @ArnaudRinquin for requesting)

  • Alt-c to create worktree from picker: In the interactive picker, press Alt-c to create a new worktree using the current query as the branch name. (#933)

  • Faster preview tab switching: Preview tabs (HEAD±, log, main…±, remote⇅) are now pre-computed in a background thread, making tab switching near-instant. (#935)

Fixed

  • Pager width detection: Makes preview pane width available to pagers via $COLUMNS, so tools like delta can use it for correct side-by-side rendering (e.g., pager = "delta --width=$COLUMNS"). Fixes #924. (thanks @tnlanh for reporting) (#930)

  • ANSI style bleeding in preview tabs: Fixed styling artifacts where dividers appeared emphasized and diffstat lines appeared dim. (#931)

  • URL template expansion with --skip: Skip URL template expansion when --skip url-status is used, avoiding unnecessary work. (#923)

  • Hook error consistency: wt hook <type> now errors consistently for all hook types when no hooks are configured, instead of silently succeeding for some types. (#916)

Documentation

  • Improved install instructions in release notes. (#918)

Internal

  • CI: check for existing fix PRs before creating duplicates. (#922)

Install worktrunk 0.23.0

Install prebuilt binaries via shell script

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

0.22.0

02 Feb 14:27

Choose a tag to compare

Release Notes

Improved

  • wt switch integrates interactive picker: wt switch without arguments now opens the interactive picker (previously wt select). The separate wt select command is deprecated with a warning directing users to use wt switch instead. Closes #890. (thanks @strangemonad for the suggestion) (#894)

  • TOML syntax highlighting: Config output from wt config show and wt config shell show-theme now renders TOML with syntax highlighting (table headers cyan, string values green, comments dimmed). (#905)

  • Bash syntax highlighting improvements: Multi-line bash commands in hook previews now preserve syntax highlighting across newlines. Wrapped continuation lines are indented with 3 extra spaces to distinguish terminal-forced wraps from actual newlines. (#906)

  • Unified background hook output: Contiguous post-switch and post-start hooks are now combined into a single output line instead of two separate lines. (#908)

Documentation

  • Removed redundant horizontal rules before H1 headers in documentation pages. (#909)

Internal

  • Updated GitHub Actions and Rust nightly versions. (#910)
  • Bumped tree-sitter ecosystem to 0.26 for unified multi-line highlighting. (#906)
  • Dependency updates: minijinja 2.15.1, clap, indexmap, ignore, thiserror, time, and others. (#912, #913)

Install worktrunk 0.22.0

Install prebuilt binaries via shell script

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

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.22.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.21.0

30 Jan 02:18

Choose a tag to compare

Release Notes

Improved

  • Absolute paths in worktree-path templates: New {{ repo_path }} variable enables absolute path configurations like {{ repo_path }}/../{{ repo }}.{{ branch | sanitize }}. Tilde expansion is also supported (~/worktrees/{{ repo }}/{{ branch }}). Fixes #902. (thanks @bingryan for reporting) (#904)

Documentation

  • Documented prefix stripping in worktree-path templates using minijinja's built-in replace filter and slicing syntax. Closes #900. (thanks @laurentkempe for requesting) (#903)

Install worktrunk 0.21.0

Install prebuilt binaries via shell script

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

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.21.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.20.3

29 Jan 06:39

Choose a tag to compare

Release Notes

Fixed

  • PowerShell auto-configuration on Windows: When running wt config shell install from cmd.exe or PowerShell, both PowerShell profile files are now created automatically (Documents/PowerShell and Documents/WindowsPowerShell). Fixes #885. (thanks @DiTo97 for reporting) (#898)

  • -C flag respected in hook context: The -C flag now correctly sets the worktree path for hooks, fixing wt -C /path hook ... commands that were using the wrong context. (#899)

  • --config path validation: Now warns when --config points to a non-existent file instead of silently using defaults. (#895)

Documentation

  • Fix shell quoting in hook examples — template variables are auto-escaped, so manual quoting caused issues with special characters. (#895)

  • Updated documentation to use tool-agnostic terminology for LLM commit messages. (#891)

Internal

  • Consolidated PR/MR resolution into unified remote_ref module. (#893)

  • Simplified command structure and removed dead code. (#892)

  • Eliminated Settings types, added accessor methods to Config types. (#896)

Install worktrunk 0.20.3

Install prebuilt binaries via shell script

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

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.20.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.20.2

28 Jan 03:34

Choose a tag to compare

Release Notes

Fixed

  • PowerShell shell integration: Fixed shell integration not working on Windows PowerShell. The init script now includes | Out-String to convert array output to a string. Existing configs without this fix are detected as "not installed" so wt config shell install will update them automatically. Fixes #885. (thanks @DiTo97 for reporting) (#888)

  • Branch removal message: "No worktree found for branch X" now shows as info (○) instead of warning (▲) when removing a branch-only, since this is expected behavior. (#887)

Documentation

  • Documented main worktree behavior in wt step relocate --help. (#889)

Install worktrunk 0.20.2

Install prebuilt binaries via shell script

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

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.20.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.20.1

27 Jan 06:38

Choose a tag to compare

Release Notes

Improved

  • wt statusline --format=json: Output current worktree as JSON (same structure as wt list --format=json). Also adds --format=claude-code as canonical syntax (the old --claude-code flag remains supported). Fixes nested worktree detection that incorrectly identified parent worktrees. (#875)

  • wt config show shell status: Each shell integration line now starts with the shell name (e.g., "bash: Already configured...") for easier scanning. (#881)

  • wt config show performance: 8x faster (~1.2s → ~150ms) by using PATH lookup instead of running claude --version. (#883)

Fixed

  • Config TOML formatting: Fixed spurious empty [commit] header appearing when only [commit.generation] is configured. (#879)

  • Documentation URLs: Fixed broken worktrunk.dev URLs in fish wrapper and config templates. (#882)

Documentation

  • Fixed worktree-path example on tips page. (#876, thanks @uriahcarpenter)

  • Fixed OSC 8 hyperlink sequences leaking through to web docs as garbage text. (#870)

Internal

  • Demo snapshot mode for regression testing of command output. (#871)

  • CI improvements: nextest binary compatibility fix, pinned runner versions, weekly renovation workflow. (#878, #884)

Install worktrunk 0.20.1

Install prebuilt binaries via shell script

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

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.20.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.20.0

26 Jan 19:29

Choose a tag to compare

Release Notes

Improved

  • wt step relocate command: Move worktrees to their expected paths based on the worktree-path template. Supports --dry-run preview, filtering by branch name, and --commit to auto-commit dirty worktrees before moving. Handles complex scenarios including worktree swaps (A→B, B→A), chains, and the --clobber flag to back up blocking non-worktree paths. Docs (#790)

  • LLM setup prompt: First-time interactive prompt when users attempt wt merge, wt step commit, or wt step squash without LLM configuration. Detects available tools (claude, codex) and offers auto-configuration with ? to preview the generated config. Add skip-commit-generation-prompt to user config to suppress. (#867)

  • Consistent prompt styling: Interactive prompts now use consistent cyan styling via prompt_message() formatting. (#858)

Fixed

  • Path display in error messages: User-facing paths now consistently use format_path_for_display(), fixing cases where raw .display() output could show inconsistent path formats. (#856)

Documentation

  • Added Quick Start section to front page showing the switch → list → merge workflow. (#864)
  • Updated template documentation: removed deprecated template-file options, added {{ git_diff_stat }} variable, clarified squash-only variables. (#854)
  • Fixed stale documentation for [commit.generation] config format, statusline context gauge, and CI status for remote-only branches. (#853)

Internal

  • Bumped nix crate from 0.30.1 to 0.31.1. (#860)
  • Refactored deprecation detection for better modularity. (#852)

Install worktrunk 0.20.0

Install prebuilt binaries via shell script

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

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.20.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.19.0

25 Jan 22:57

Choose a tag to compare

Release Notes

Improved

  • LLM commit configuration redesign: The [commit-generation] section is now [commit.generation], and command + args are unified into a single shell-executed command string. Existing configs continue to work — a deprecation warning shows the new format and creates a .new config file you can apply with mv. Claude Code (claude -p) and Codex (codex exec) are documented as first-class options alongside llm. See the LLM commits guide. (#809, #837)

  • Per-project hooks: User config can define hooks per-project that append to global hooks. Execution order: global → per-project → project config. Configure under [projects."owner/repo".hooks]. (#842)

  • Context window gauge for Claude Code: Statusline mode shows a moon phase gauge (🌕🌔🌓🌒🌑) for context window usage. (#840)

  • CI status for remote-only branches: wt list --remotes shows CI status for branches that only exist on the remote. (#817)

  • Hook log file lookup: wt config state logs get --hook=<spec> returns the path to a specific hook's log file. (#816, thanks @EduardoSimon for requesting)

  • Branch/fork info in PR/MR display: wt switch pr:N shows the source branch (e.g., feature-auth) or fork reference (e.g., contributor:feature) alongside PR details. (#808)

  • Claude Code section in wt config show: Shows Claude CLI installation status, plugin status, and statusline configuration. (#833)

  • Deprecation details moved to wt config show: Other commands show a brief pointer instead of full deprecation details. (#828)

  • Config validation suggests correct file: When a config key belongs in user config but appears in project config (or vice versa), the warning suggests the correct location. (#804)

  • Tilde paths in hints: Shell command hints use ~ instead of full home directory paths when safe. (#710)

  • Improved --create conflict error: wt switch --create pr:101 shows the existing branch name in the error. (#807)

  • CI status prioritized in statusline: CI status is retained longer when the statusline truncates. (#845)

Fixed

  • Template expansion bugs: Fixed worktree_path_of_branch not respecting shell_escape flag, Windows CI cache rename failures, and WORKTRUNK_MAX_CONCURRENT_COMMANDS=0 meaning "no limit". (#847, #849)

  • Hook and CI status panics: Fixed panic when serializing mixed named/unnamed hook configs, banned colons in hook names to prevent parsing ambiguity, and fixed GitLab MR detection when multiple MRs exist without project ID. (#846, #848)

  • Pre-commit hooks for clean worktree squash: Pre-commit hooks are collected for approval when squashing on a clean worktree. Previously only collected when dirty. (#695)

  • Hint message formatting: Fixed ANSI escape code interference in dim hint messages. (#836)

  • Spurious [commit] header: Fixed config migration showing [commit] section header when only commit-generation fields needed migration. (#834)

Documentation

  • Added at-a-glance examples to config documentation. (#826)
  • Clarified user project-specific settings section. (#835)
  • Consistent worktree terminology throughout docs. (#813)
  • Added tip for monitoring hook logs. (#838)

Internal

  • Replaced manual quote escaping with shell_escape crate. (#810)
  • Used sanitize-filename crate for filename sanitization. (#832)
  • Cached CI tool availability checks. (#831)
  • Moved inline imports to module top level. (#818, #819, #820, #822)

Install worktrunk 0.19.0

Install prebuilt binaries via shell script

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

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

Download worktrunk 0.19.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.18.2

22 Jan 08:35

Choose a tag to compare

Release Notes

Improved

  • PR/MR context display: wt switch pr:N and mr:N now show PR/MR details (title, author, state, URL) after fetching. (#782)

  • Fork PR branch conflicts: When a fork PR's branch name conflicts with an existing local branch (e.g., contributor opens PR from their main), worktrunk now creates a prefixed branch like contributor/main instead of failing. Closes #714. (thanks @vimtor for reporting)

Fixed

  • Help output formatting: Fixed double blank lines appearing after demo comments in help output. (#795)

  • Error handling reliability: Replaced fragile string-based error parsing with structured approaches for git stash, GitHub CLI, and GitLab CLI operations. (#787)

Documentation

  • ci-status help text: Improved clarity of the ci-status configuration documentation. (#794)

  • wt remove help text: Simplified short description and added documentation for pre-remove and post-remove hooks. (#792)

  • Subcommand documentation: Fixed generated website docs for subcommands (like wt step copy-ignored, wt config state) to include their short descriptions. (#793)

Install worktrunk 0.18.2

Install prebuilt binaries via shell script

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

Install prebuilt binaries via Homebrew

brew install max-sixty/worktrunk/wt

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