ZVM v0.9.4 adds per-shell Zig versions, automatic project switching, disk deduplication, and a settings editor—plus stronger download verification and a new logo.
- Give each shell its own Zig version.
zvm envgenerates setup code for Bash, Zsh, Fish, and PowerShell. Once enabled, zvm use changes that shell’s version. Usezvm use --globalto change the default for new shells. - Switch versions when entering a project. Enable
zvm env --use-on-cdto select the version declared in the nearest build.zig or build.zig.zon. Missing versions produce installation instructions. - Save disk space with
zvm dedupe. Identical files across installed versions share storage through hard links. Deduplication includes progress reporting and reclaimed-space totals. Enablezvm dedupe --autoon to deduplicate future installations automatically; this is off by default. - Manage settings from the CLI.
zvm settingsopens an interactive editor with arrow-key and Vim-style controls. Read or change individual values with commands such aszvm settings .useColor false, or validate your configuration withzvm settings --check. - Use your own Zig builds. Link a local build into the ZVM directory and select it with zvm use local or zvm run local version.
Download verification now checks that official Zig signatures name the requested archive, tries other mirrors after verification failures, and records verified archive hashes to detect subsequent changes. Uninstall checks are stricter, and installation protects files shared by the dedupe store.
This release also fixes download spinners that kept drawing after interrupted or unknown-length transfers, replaces regex-based ZON version detection with a proper parser, and expands zvm clean to remove unused dedupe files and stale shell links.
Release archives are built in GitHub Actions with SHA-256 checksums and build-provenance attestations. Build tooling now uses Go 1.27.3, with updated dependencies, Nix support, manpages, and release validation.
Deduplication note: editing a shared file in place changes it in every deduplicated version that shares it. Leave locally modified Zig installations out of deduplication.
Upgrade with:
zvm upgrade
For package-manager installations, use your package manager’s update command.