gwm

gwm 1.11.0

git worktree manager - a TUI and CLI over git worktrees

  • By Kylian Bardini
  • Open Source
  • Portable
  • Updated Oct 27, 2026
Download for Windows

About gwm

gwm is a terminal UI and CLI over git worktrees, with native libgit2 and a per-repo .gwm.toml bootstrap (file copies, regex guards, lifecycle hooks). The installed command is gwm.

What's new in 1.11.0

[1.11.0] - 2026-10-26

Security

• cargo audit failed on dev itself:the YAML parser under the crate is
unmaintained (#688).
RUSTSEC-2024-0449 marks unsafe-libyaml unmaintained:the repository was
archived on 2024-03-25, and the crate is a machine translation of libyaml's C
into unsafe Rust, so bugs found in it are not fixed upstream. It reached this
crate through serde_yaml_ng 0.10.0, a direct dependency, and the advisory
entered the database after this repo's last green cargo audit, which is why
a check that had been green went red without a line of code changing.

Replaced by the pair the advisory itself names, both written in safe Rust:
serde-saphyr for the one typed parse in src/, and saphyr for the
dynamic tree the workflow guards read. unsafe-libyaml is gone from the
graph entirely rather than accepted through an ignore in audit.toml,
which ci.yml allows with a rationale (#340) and which #688 offered as the
other outcome.

The other candidates, and why each was not taken. serde_norway depends on
unsafe-libyaml-norway, the same translated C under a new name, which
silences the advisory by renaming the crate rather than by fixing the cause.
serde_yml carries RUSTSEC-2025-0068, unsound, with a segfault reachable
through its serializer, patched = [] and the project archived, so that one
is a disqualification.

noyalib, the advisory's second suggestion, is not disqualified, and the
first draft of this entry said it was:it carries RUSTSEC-2026-0333, but
that advisory is patched = [">= 0.0.53"] and the current release is 0.0.58,
so a current noyalib is clean. What it is instead is a judgement:it was at
its 58th patch release before a 0.1, it took a denial-of-service advisory two
weeks before this was written, and serde_yml, from the same author, is the
archived unsound crate above. serde-saphyr is the advisory's first
suggestion and the one taken.

A fourth route was measured and dropped, and is worth recording because it
looked free:deserialising into serde_json::Value through serde-saphyr
would have been a near-mechanical rename of every read the swap touches,
the bulk of them in release_workflow_tests.rs. No count is given because
three attempts at one were each wrong and none of them credited a guard with
anything:a figure derived in prose drifts exactly like the floor it …

Full release notes »

Technical details

PublisherKylian Bardini
Version1.11.0
Release date2026-10-26
LicenseMIT
Installer typezip
Architecturex64
Package IDkbrdn1.gwm
DependenciesMicrosoft.VCRedist.2015+.x64

Install gwm from the command line

Install with Windows Package Manager
winget install --id=kbrdn1.gwm -e
Update to the latest version
winget upgrade --id=kbrdn1.gwm -e
Uninstall
winget uninstall --id=kbrdn1.gwm -e

cligitgit-worktreelibgit2rustterminaltuiworktree

gwm version history

1.10.0 Sep 1, 2026

[1.10.0] - 2026-09-01

Added

• Ctrl+n opens the create form on an issue that already exists
(#625). gwm create --issue
(#617) derives the whole <type> <issue> <desc> triple from an issue on the
forge, and it was CLI-only. The TUI is where a worktree usually gets created,
so the one place already showing a worktree list and its linked issues was
the one place that still asked for the title to be retyped as a slug and the
branch type to be read off the labels by hand.

Ctrl+n (and create-from-issue in the command palette) opens the form on a
single field, the issue number. Enter looks the issue up rather than creating
anything; when the answer lands the form becomes the ordinary structured form
with the type, the number and the derived slug in it, and a second Enter
creates the worktree. Prefilling rather than creating is the point:the slug
is a guess about a title, and this is the surface that can show the guess
before committing to it. The derivation runs through the very functions the
CLI uses, so the two cannot produce different slugs for the same title.

Where the CLI has to refuse, the form asks. A non-interactive command has
nowhere to ask when the labels name no branch type or name two, which is what
--type is for; the form lands the cursor on the type selector with
everything else filled. A closed issue prefills with a warning rather than …

1.9.0 Aug 15, 2026

[1.9.0] - 2026-08-16

Added

The libraries compiled into the binary ship their notices
(#577). git2 builds with
vendored-libgit2 and libz-sys with static, so every binary distributed
here statically contains libgit2 and zlib, and no package dependency carries
their terms. libgit2 is GPLv2 with a linking exception, and that
exception is what makes a permissively licensed binary possible at all: it
is conditional on the notice travelling with the distribution. zlib's terms
say its notice may not be removed. Neither was shipping, and neither had
anything to do with the project's own license, which is why this is separate
from #573 rather than part of it: both were unmet under MIT-only too.

Both notices now live under third-party/ and reach the release archives,
the .deb, the .rpm, the AUR package and the published crate. They are
taken from the crate source cargo actually built, not from the libraries'
upstream repositories, because those diverge: libgit2-sys vendors a pinned
tree while libgit2 main moves.

third-party/README.md records which crate version each came from, and that
record is checked against Cargo.lock. A dependency bump moves the vendored
library without touching a file anyone reads, so without the check the notice
would quietly go on describing a version the binary no longer contains.

Changed
…

1.1.1 Jul 16, 2026

Frequently asked questions

Is gwm free?

Yes. gwm is free and open-source software released under the MIT license.

What is the latest version of gwm?

The latest version is 1.11.0, released on Oct 26, 2026.

Is it safe to download gwm?

The download button links to the official installer published on github.com, the same file Windows Package Manager installs. You can verify the downloaded file by comparing its SHA-256 checksum with 07dac4515218109e16b778e8f77e1a8888def7baa5e00a8e848f2b73efade7ab.

Which Windows versions does gwm support?

gwm runs on Windows and is available for 64-bit (x64) systems.

How do I uninstall gwm?

Open Settings › Apps › Installed apps, find gwm and select Uninstall. From the command line, run winget uninstall --id=kbrdn1.gwm -e.

Is there a portable version of gwm?

Yes. gwm is available as a portable ZIP archive (gwm-v1.11.0-x86_64-pc-windows-msvc.zip, 64-bit (x64)) that runs without installation. Copy it to any folder or USB drive and run it from there.