Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Created with WinGet Releaser using komac v2.16.0
# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.12.0.schema.json

PackageIdentifier: max-sixty.worktrunk
PackageVersion: v0.60.0
InstallerType: zip
NestedInstallerType: portable
NestedInstallerFiles:
- RelativeFilePath: git-wt.exe
PortableCommandAlias: git-wt
- RelativeFilePath: wt.exe
PortableCommandAlias: wt
ReleaseDate: 2026-06-18
Installers:
- Architecture: x64
InstallerUrl: https://github.com/max-sixty/worktrunk/releases/download/v0.60.0/worktrunk-x86_64-pc-windows-msvc.zip
InstallerSha256: 7F0F07BDD2BCFE9C5FAE68002024E77BDABC162B69913D501BF1E30A76E26318
ManifestType: installer
ManifestVersion: 1.12.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Created with WinGet Releaser using komac v2.16.0
# yaml-language-server: $schema=https://aka.ms/winget-manifest.defaultLocale.1.12.0.schema.json

PackageIdentifier: max-sixty.worktrunk
PackageVersion: v0.60.0
PackageLocale: en-US
Publisher: max-sixty
PublisherUrl: https://github.com/max-sixty
PublisherSupportUrl: https://github.com/max-sixty/worktrunk/issues
PackageName: worktrunk
PackageUrl: https://github.com/max-sixty/worktrunk
License: MIT OR Apache-2.0
LicenseUrl: https://github.com/max-sixty/worktrunk/blob/HEAD/LICENSE
ShortDescription: A Git worktree manager for trunk-based development
Description: |-
worktrunk (wt) is a Git worktree manager designed for trunk-based development workflows.
It simplifies creating, switching between, and managing Git worktrees, making it easy to
work on multiple features or branches simultaneously without the overhead of stashing
or switching branches in a single working directory.
Tags:
- cli
- git
- git-worktree
- rust
- terminal
- worktree
ReleaseNotes: |-
Release Notes
Improved
- Package installs complete branch and worktree names: A plain brew install worktrunk (or other package install) now tab-completes branch and worktree names, not just subcommands and flags. wt config shell completions <shell> emits a dynamic registration that calls the binary at completion time (the maintained clap_complete::env path), matching what gh, rustup, and kubectl ship. (#3105, thanks @bendrucker)
- wt step relocate moves dirty linked worktrees: Relocating a linked worktree with uncommitted or untracked changes no longer skips it. git worktree move carries those files along, so the dirty-skip was a worktrunk policy rather than a git limitation. The main worktree still skips when dirty (without --commit), since its relocation falls back to git checkout, which refuses to switch over a dirty tree. (#3104, thanks @lunaynx for reporting)
- --dry-run previews print to stdout: wt hook <type>, wt step relocate, wt step prune, wt step copy-ignored, and wt config shell install/uninstall now send their --dry-run preview to stdout (the command's answer) while narration stays on stderr. This matches wt list, git clean -n, and terraform plan, and keeps previews pageable and pipeable. (Breaking: scripts reading these previews from stderr should now read stdout) (#3085)
- Picker gutter distinguishes local and remote branches: With --branches and --remotes, the wt switch picker marks each row's kind in the gutter: / for a local branch without a worktree and | for a remote branch, alongside the existing @/^/+ worktree glyphs. (#3115)
- wt list --format=json gains structured repo metadata: JSON output adds repo (the local checkout's primary remote) and ci.repo (the repository ci.url targets, which differs for fork PRs) objects carrying host/owner/name/provider; the existing repo_url and ci.repo_url strings remain. The provider honors the configured [forge].platform on hosts that can't be auto-detected. (#3021, thanks @jeremy0dell)
- wt step eval --format=json: wt step eval gains a structured {name, template, result} JSON lane on stdout, the machine-readable analog of its -v view. Text mode is unchanged. (#3106)
- --format=claude-code rejected where it never applied: wt list and wt config state get accepted --format=claude-code silently and treated it as table; the value only ever meant anything on wt list statusline. Both now fail fast with invalid value 'claude-code'. (Breaking: wt list --format=claude-code and wt config state get --format=claude-code now error) (#3116)
Fixed
- cargo install worktrunk builds from crates.io: Installing from crates.io failed to compile with environment variable VERGEN_GIT_DESCRIBE not defined at compile time, because the package archive has no .git for the build script to read. The version lookup now falls back to the cargo package version when git-describe is unavailable. (#3124, fixes #3123, thanks @kerrickstaley for reporting)
- Tab-completion works in repos with no commits: wt switch <TAB> and wt remove <TAB> returned nothing on a fresh git init repo, because the unborn default branch has no entry under refs/heads/. Completion now also draws on worktree branches, so the unborn main (and any wt switch --create branch on an empty repo) completes. (#3097, closes #3094)
- wt config state get ci-status --format=json honors [forge].platform: On a self-hosted host the parser can't recognize (Gitea, Azure DevOps, GitHub Enterprise on a generic domain), this path reported provider: "unknown" while wt list --format=json reported the configured provider. All structured-output paths now route the [forge].platform override through one accessor, so they stay consistent. (#3120)
Documentation
- wt list --help example tables fit the terminal: The captured wt list example tables in --help chop to terminal width with a dimmed ellipsis (matching real wt list) instead of word-wrapping and shearing their columns; hand-authored command examples still wrap. (#3125)
- /wt-switch-create cross-repo handling reworked: The Claude Code plugin command's skill reworks how it creates and enters a worktree in another repo, built around what the harness actually does (EnterWorktree re-roots within the current repo; a cd reaches another repo when it's in additionalDirectories). The procedure dropped from five steps to three. (#3118)
- Help-text and docs refinements: --format help renders its values inline ([possible values: table, json]) instead of an expanded block; wt switch and wt step push help got smaller clarifications; and web-doc terminal blocks no longer wrap command-only lines. (#3096, #3108, #3110, #3112, #3126)
Install worktrunk 0.60.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.60.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.60.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.60.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
ReleaseNotesUrl: https://github.com/max-sixty/worktrunk/releases/tag/v0.60.0
ManifestType: defaultLocale
ManifestVersion: 1.12.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Created with WinGet Releaser using komac v2.16.0
# yaml-language-server: $schema=https://aka.ms/winget-manifest.version.1.12.0.schema.json

PackageIdentifier: max-sixty.worktrunk
PackageVersion: v0.60.0
DefaultLocale: en-US
ManifestType: version
ManifestVersion: 1.12.0