ZVM(1)
π ZVM β like, the manual but make it make sense
ok so bestie. this is zvm(1), a User Command, and honestly? it's the main character of your Zig toolchain. buckle up π
β¨ NAME β¨
zvm β manage installed Zig and ZLS versions. that's it. that's the whole vibe. you install Zig versions, you pick which one you're using, you yeet the ones you don't want. slay.
πΈ SYNOPSIS πΈ
zvm [global-options] command [command-options]
like, options first, then a command, then that command's own options. easy. iykyk.
π¦ DESCRIPTION π¦
okay so here's the tea β β zvm downloads, installs, selects, and removes Zig compiler versions. and it does not stop there, bestie, because it can also:
- install a compatible ZLS release β¨
- run an installed Zig version without selecting it globally (casual. noncommittal. we love that)
- give each shell its own version (every terminal gets to be its own person π )
- deduplicate installations
- use alternative version maps or mirrors
Zig installations and ZVM state live under ~/.zvm by default. want a different home base? set ZVM_PATH to use another base directory. simple as.
π GLOBAL OPTIONS π
--color modeβ sets colored output, obviously, we are not living in a greyscale world.modemay beon,yes,y,enabled,true,off,no,n,disabled, orfalse. any other value β including the default toggle β toggles the saved setting. heads up though: this option requires a value when specified. no vibes-only invocation, she needs an argument π-h,--helpβ show help. when you're lost, she's there π«Ά-v,--versionβ print the ZVM version and the target platform. two for one, iconic.
π₯ COMMANDS π₯
so many commands and every single one of them ate. here we go:
install,iβ download and install a Zig version, optionally with ZLS. seezvm-install(1).useβ select an installed Zig version. seezvm-use(1).envβ print shell code that gives the current shell its own Zig version, optionally switching automatically when you change directories. seezvm-env(1).runβ run Zig from an installed version or from the project's minimum Zig version. seezvm-run(1).list-remote,ls-remoteβ list Zig versions available from the configured version map. seezvm-list-remote(1).list,lsβ list installed Zig versions. seezvm-list(1).alias,kvβ create, inspect, or remove names for installed Zig versions. seezvm-alias(1).uninstall,rmβ remove an installed Zig version. say bye bestie π seezvm-uninstall(1).cleanβ remove downloaded build archives and unreferenced dedupe-store files. seezvm-clean(1).dedupeβ hard-link files that are identical across installed Zig versions. efficiency queen π seezvm-dedupe(1).upgradeβ upgrade ZVM itself, but only when self-upgrades are enabled in the build. seezvm-upgrade(1).mirrorlistβ select the mirror-list URL used for Zig downloads. seezvm-mirrorlist(1).settingsβ view, edit, or checksettings.json, either interactively or with jq-style paths. seezvm-settings(1).bugβ start a bug report with the current environment prefilled (king behavior, honestly). seezvm-bug(1).versionβ print the installed ZVM version. seezvm-version(1).vmuβ configure Zig and ZLS version-map sources. seezvm-vmu(1).completionβ generate a shell completion script. seezvm-completion(1).
π VERSION ARGUMENTS π
commands that accept a Zig version support exact releases such as 0.14.1, the development channel master, and development build identifiers.
release shorthand like 0.14 or .14 selects the newest matching patch release. the stable shorthand selects the newest stable release. ngl, that's convenient.
here's the nuance tho β π selection and removal resolve shorthand against installed versions, while installation may resolve it against the remote version map. same shorthand, different lookup, don't get caught out.
also: user-defined aliases may be used anywhere version arguments are accepted π
π§ ENVIRONMENT π§
ZVM_PATHβ ZVM base directory. defaults to~/.zvm.ZVM_MULTISHELL_PATHβ set byzvm-env(1)to the current shell's per-shell link; while it is set,zvm-use(1)changes only this shell. your terminal, your rules.ZVM_MULTISHELL_DIRβ directory for per-shell links. it must be an absolute path outside the ZVM base directory. defaults to$XDG_STATE_HOME/zvm/multishellsor the user cache directory; seezvm-env(1).ZVM_INSTALLβ directory containing the ZVM executable, for self-upgrades.ZVM_TARGET_OSβ override the operating system selected for an installation download.ZVM_TARGET_ARCHβ override the architecture selected for an installation download.ZVM_HTTP_TIMEOUTβ HTTP timeout in seconds for installation requests.ZVM_SET_CUβ if set, disable the automatic ZVM upgrade check. (a little peace and quiet π«Ά)ZVM_DEBUGβ if set, enable debug logging.ZVM_SKIP_TLS_VERIFYβ if set, disable TLS certificate verification for downloads. the valueno-warnalso suppresses the warning.
β οΈ okay so real talk: ZVM_SKIP_TLS_VERIFY turns off TLS certificate verification for downloads. that is a genuinely not-great security situation and you should not be chilling with it on by default. use at your own risk, bestie. π
BROWSERβ command used byzvm-bug(1)to open a report URL.
π FILES π
~/.zvm/settings.jsonβ persistent ZVM settings.~/.zvm/aliases.jsonβ version aliases used byzvm-alias(1).~/.zvm/bin/zigβ link to the currently selected Zig executable on Unix-like systems.~/.zvm/bin/zlsβ link to the selected ZLS executable, when installed.~/.zvm/store/β content-addressed hard links created byzvm-dedupe(1). never a Zig version. like, do not go poking around in there expecting a compiler, she's a storage girlie.
whenZVM_PATHis set, these paths are relative to that directory instead of~/.zvm. π
β EXAMPLES β
zvm install 0.14.1
zvm install --zls master
zvm use stable
zvm run 0.13 build test
zvm ls
zvm alias work 0.14.1
look at her go πβ¨
π BUGS π
report issues at https://github.com/tristanisham/zvm/issues/. please do, we want to know.
πΈ AUTHOR πΈ
Tristan Isham and ZVM contributors. legends, all of them π
π SEE ALSO π
zig(1), zvm-install(1), zvm-use(1), zvm-run(1), zvm-list(1), zvm-alias(1)
okay that's the whole page, you're officially educated π this was ZVM v0.9.4, dated August 2026 β go forth and manage those Zig versions, bestie. periodt. π¦
π¦ where this page comes from
- nixpkgs unstable: zvm 0.9.4
- Copyright 2026 Tristan Isham. All rights reserved
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms