{"id":13609841,"url":"https://github.com/tristanisham/zvm","last_synced_at":"2026-01-23T01:09:01.785Z","repository":{"id":63396929,"uuid":"563690547","full_name":"tristanisham/zvm","owner":"tristanisham","description":"zvm (Zig Version Manager) lets you easily install/upgrade between different versions of Zig.","archived":false,"fork":false,"pushed_at":"2025-12-03T20:42:37.000Z","size":31296,"stargazers_count":805,"open_issues_count":11,"forks_count":55,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-12-07T00:52:43.645Z","etag":null,"topics":["version-control","version-manager","versioning","zig","ziglang"],"latest_commit_sha":null,"homepage":"https://www.zvm.app","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tristanisham.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.MD","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["tristanisham"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"polar":"tristanisham","custom":null}},"created_at":"2022-11-09T05:55:03.000Z","updated_at":"2025-12-06T20:37:15.000Z","dependencies_parsed_at":"2023-01-30T04:30:21.185Z","dependency_job_id":"cb407551-6a70-4415-a545-09d7a189afc2","html_url":"https://github.com/tristanisham/zvm","commit_stats":{"total_commits":437,"total_committers":29,"mean_commits":"15.068965517241379","dds":"0.17848970251716245","last_synced_commit":"4fea70e6d608f32b63eb757a95119b1e43b0203c"},"previous_names":[],"tags_count":63,"template":false,"template_full_name":null,"purl":"pkg:github/tristanisham/zvm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristanisham%2Fzvm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristanisham%2Fzvm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristanisham%2Fzvm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristanisham%2Fzvm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tristanisham","download_url":"https://codeload.github.com/tristanisham/zvm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tristanisham%2Fzvm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28676626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T01:00:35.747Z","status":"ssl_error","status_checked_at":"2026-01-23T01:00:19.529Z","response_time":144,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["version-control","version-manager","versioning","zig","ziglang"],"created_at":"2024-08-01T19:01:38.613Z","updated_at":"2026-01-23T01:09:01.775Z","avatar_url":"https://github.com/tristanisham.png","language":"Go","funding_links":["https://github.com/sponsors/tristanisham","https://polar.sh/tristanisham","https://www.paypal.com/donate/?hosted_button_id=HFTFEFXP2A388"],"categories":["Development Tools","Go","Version Managers","Fundamentals"],"sub_categories":["Zig","Package and Version Manager"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"400px\"  src =\"https://github.com/tristanisham/zvm/assets/23124818/be5c3713-8aaf-4419-a1ae-acb29da36eae\"/\u003e\n\u003c/p\u003e\n\nZig Version Manager (zvm) is a tool for managing your\n[Zig](https://ziglang.org/) installs. With std under heavy development and a\nlarge feature roadmap, Zig is bound to continue changing. Breaking existing\nbuilds, updating valid syntax, and introducing new features like a package\nmanager. While this is great for developers, it also can lead to headaches when\nyou need multiple versions of a language installed to compile your projects, or\na language gets updated frequently.\n\n## Donate\n\n- [Paypal](https://www.paypal.com/donate/?hosted_button_id=HFTFEFXP2A388)\n\n## Join our Community\n\n- [Twitch](https://twitch.tv/atalocke)\n- [Twitter|X](https://twitter.com/atalocke)\n\n\u003ca href=\"https://polar.sh/tristanisham\"\u003e\u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://polar.sh/embed/subscribe.svg?org=tristanisham\u0026label=Subscribe\u0026darkmode\"\u003e\u003cimg alt=\"Subscribe on Polar\" src=\"https://polar.sh/embed/subscribe.svg?org=tristanisham\u0026label=Subscribe\"\u003e\u003c/picture\u003e\u003c/a\u003e\n\n\n# Installing ZVM\n\nZVM lives entirely in `$HOME/.zvm` on all platforms it supports. Inside of the\ndirectory, ZVM will download new ZIG versions and symlink whichever version you\nspecify with `zvm use` to `$HOME/.zvm/bin`. You should add this folder to your\npath. After ZVM 0.2.3, ZVM's installer will now add ZVM to `$HOME/.zvm/self`.\nYou should also add this directory as the environment variable `ZVM_INSTALL`.\nThe installer scripts should handle this for you automatically on *nix and\nWindows systems.\n\nIf you don't want to use `ZVM_INSTALL` (like you already have ZVM in a place you\nlike), then ZVM will update the exact executable you've called `upgrade` from.\n\n# Linux, BSD, MacOS, *nix\n\n```sh\ncurl https://raw.githubusercontent.com/tristanisham/zvm/master/install.sh | bash\n```\n\n\u003c!-- This script will **automatically append** ZVM's required environment variables (see below) to `~/.profile` or `~/.bashrc`. --\u003e\n\n\u003c!-- If these files don't exist, append the following to your shell's startup script.\n```sh\necho \"# ZVM\" \u003e\u003e $HOME/.profile\necho export ZVM_INSTALL=\"$HOME/.zvm/self\" \u003e\u003e $HOME/.profile\necho export PATH=\"$PATH:$HOME/.zvm/bin\" \u003e\u003e $HOME/.profile\necho export PATH=\"$PATH:$ZVM_INSTALL/\" \u003e\u003e $HOME/.profile\n``` --\u003e\n\n# Windows\n\n## PowerShell\n\n```ps1\nirm https://raw.githubusercontent.com/tristanisham/zvm/master/install.ps1 | iex\n```\n\n## Command Prompt\n\n```cmd\npowershell -c \"irm https://raw.githubusercontent.com/tristanisham/zvm/master/install.ps1 | iex\"\n```\n\n# If You Have a Valid Version of Go Installed\n\n```sh\ngo install -ldflags \"-s -w\" github.com/tristanisham/zvm@latest\n```\n\n## Manually\n\nPlease grab the\n[latest release](https://github.com/tristanisham/zvm/releases/latest).\n\n## Putting ZVM on your Path\n\nZVM requires a few directories to be on your `$PATH`. If you don't know how to\nupdate your environment variables permanently on Windows, you can follow\n[this guide](https://www.computerhope.com/issues/ch000549.htm). Once you're in\nthe appropriate menu, add or append to the following environment variables:\n\nAdd\n\n- ZVM_INSTALL: `%USERPROFILE%\\.zvm\\self`\n\nAppend\n\n- PATH: `%USERPROFILE%\\.zvm\\bin`\n- PATH: `%ZVM_INSTALL%`\n\n## Configure ZVM path\n\nIt is possible to overwrite the default behavior of ZVM to adhere to XDG\nspecification on Linux. There's an environment variable `ZVM_PATH`. Setting it\nto `$XDG_DATA_HOME/zvm` will do the trick.\n\n## Community Package\n\n### AUR\n\n`zvm` on the [Arch AUR](https://aur.archlinux.org/packages/zvm) is a\ncommunity-maintained package, and may be out of date.\n\n# Why should I use ZVM?\n\nWhile Zig is still pre-1.0 if you're going to stay up-to-date with the master\nbranch, you're going to be downloading Zig quite often. You could do it\nmanually, having to scroll around to find your appropriate version, decompress\nit, and install it on your `$PATH`. Or, you could install ZVM and run\n`zvm i master` every time you want to update. `zvm` is a static binary under a\npermissive license. It supports more platforms than any other Zig version\nmanager. Its only dependency is `tar` on Unix-based systems. Whether you're on\nWindows, MacOS, Linux, a flavor of BSD, or Plan 9 `zvm` will let you install,\nswitch between, and run multiple versions of Zig.\n\n# Contributing and Notice\n\n`zvm` is stable software. Pre-v1.0.0 any breaking changes will be clearly\nlabeled, and any commands potentially on the chopping block will print notice.\nThe program is under constant development, and the author is very willing to\nwork with contributors. **If you have any issues, ideas, or contributions you'd\nlike to suggest\n[create a GitHub issue](https://github.com/tristanisham/zvm/issues/new/choose)**.\n\n# How to use ZVM\n\n## Install\n\n```sh\nzvm install \u003cversion\u003e \n# Or\nzvm i \u003cversion\u003e\n```\n\nUse `install` or `i` to download a specific version of Zig. To install the\nlatest version, use \"master\".\n\n```sh\n# Example\nzvm i master\n```\n\n### Force Install\n\nAs of `v0.7.6` ZVM will now skip downloading a version if it is already\ninstalled. You can always force an install with the `--force` or `-f` flag.\n\n```sh\nzvm i --force master\n```\n\nYou can also enable the old behavior by setting the new `alwaysForceInstall`\nfield to `true` in `~/.zvm/settings.json`.\n\n### Install ZLS with ZVM\n\nYou can now install ZLS with your Zig download! To install ZLS with ZVM, simply\npass the `--zls` flag with `zvm i`. For example:\n\n```sh\nzvm i --zls master\n```\n\n#### Select ZLS compatibility mode\n\nBy default, ZVM will install a ZLS build, which can be used with the given Zig\nversion, but may not be able to build ZLS from source. If you want to use a ZLS\nbuild, which can be built using the selected Zig version, pass the `--full` flag\nwith `zvm i --zls`. For example:\n\n```sh\nzvm i --zls --full master\n```\n\n\u003e [!IMPORTANT]\n\u003e This does not apply to tagged releases, e.g.: `0.13.0`\n\n## Switch between installed Zig versions\n\n```sh\nzvm use \u003cversion\u003e\n```\n\nUse `use` to switch between versions of Zig.\n\n```sh\n# Example\nzvm use master\n```\n\n## List installed Zig versions\n\n```sh\n# Example\nzvm ls\n```\n\nUse `ls` to list all installed version of Zig.\n\n### List all versions of Zig available\n\n```sh\nzvm ls --all\n```\n\nThe `--all` flag will list the available versions of Zig for download. Not the\nversions locally installed.\n\n### List set version maps\n\n```sh\nzvm ls --vmu\n```\n\nThe `--vmu` flag will list set version maps for Zig and ZLS downloads.\n\n## Uninstall a Zig version\n\n```sh\n# Example\nzvm rm 0.10.0\n```\n\nUse `uninstall` or `rm` to remove an uninstalled version from your system.\n\n## Upgrade your ZVM installation\n\nAs of `zvm v0.2.3` you can now upgrade your ZVM installation from, well, zvm.\nJust run:\n\n```sh\nzvm upgrade\n```\n\nThe latest version of ZVM should install on your machine, regardless of where\nyour binary lives (though if you have your binary in a privileged folder, you\nmay have to run this command with `sudo`).\n\n## Clean up build artifacts\n\n```sh\n# Example\nzvm clean\n```\n\nUse `clean` to remove build artifacts (Good if you're on Windows).\n\n## Run installed version of Zig without switching your default\n\nIf you want to run a version of Zig without setting it as your default, the new\n`run` command is your friend.\n\n```sh\nzig version\n# 0.13.0\n\nzvm run 0.11.0 version\n# 0.11.0\n\nzig version\n# 0.13.0\n```\n\nThis can be helpful if you want to test your project on a newer version of Zig\nwithout having to switch between bins, or on alternative flavor of Zig.\n\n## How to use with alternative VMUs\n\nMake sure you switch your VMU before using `run`.\n\n```sh\nzvm vmu zig mach\nzvm run mach-latest version\n# 0.14.0-dev.1911+3bf89f55c\n```\n\nIf you would like to run the currently set Zig, please keep using the standard\n`zig` command.\n\n## Set Version Map Source\n\nZVM lets you choose your vendor for Zig and ZLS. This is great if your company hosts\nits own internal fork of Zig, you prefer a different flavor of the language,\nlike Mach.\n\n```sh\nzvm vmu zig \"https://machengine.org/zig/index.json\" # Change the source ZVM pulls Zig release information from.\n\nzvm vmu zls https://validurl.local/vmu.json\n                                       # ZVM only supports schemas that match the offical version map schema. \n                                       # Run `vmu default` to reset your version map.\n\nzvm vmu zig default # Resets back to default Zig releases.\nzvm vmu zig mach # Sets ZVM to pull from Mach nominated Zig.\n\nzvm vmu zls default # Resets back to default ZLS releases.\n```\n\n## Use a Custom Mirror Distribution Server\nZVM now lets you set your own Mirror Distribution Server. If you cannot or choose not to use the official Zig mirror list, you can host your own, or use another grouping of mirrors.\n\n```sh\nzvm mirrorlist \u003curl\u003e\n# Reset to the official mirror\nzvm mirrorlist default\n```\n\n## Print program help\n\nPrint global help information by running:\n\n```sh\nzvm --help\n```\n\nPrint help information about a specific command or subcommand.\n\n```sh\nzvm list --help\n```\n\n```\nNAME:\n   zvm list - list installed Zig versions. Flag `--all` to see remote options\n\nUSAGE:\n   zvm list [command options] [arguments...]\n\nOPTIONS:\n   --all, -a   list remote Zig versions available for download, based on your version map (default: false)\n   --vmu       list set version maps (default: false)\n   --help, -h  show help\n```\n\n## Print program version\n\n```sh\nzvm --version\n```\n\nPrints the version of ZVM you have installed.\n\n\u003chr\u003e\n\n## Option flags\n\n### Color Toggle\n\nEnable or disable colored ZVM output. No value toggles colors.\n\n#### Enable\n\n- on\n- yes/y\n- enabled\n- true\n\n#### Disabled\n\n- off\n- no/n\n- disabled\n- false\n\n```sh\n--color # Toggle ANSI color printing on or off for ZVM's output, i.e. --color=true\n```\n\n## Environment Variables\n\n- `ZVM_DEBUG` enables DEBUG logging for your executable. This is meant for\n  contributors and developers.\n- `ZVM_SET_CU` Toggle the automatic upgrade checker. If you want to reenable the\n  checker, just `unset ZVM_SET_CU`.\n- `ZVM_PATH` replaces the default install location for ZVM Set the environment\n  variable to the parent directory of where you've placed the `.zvm` directory.\n- `ZVM_SKIP_TLS_VERIFY` Do you have problems using TLS in your environment?\n  Toggle off verifying TLS by setting this environment variable.\n  - By default when this is enabled ZVM will print a warning. Set this variable\n    to `no-warn` to silence this warning.\n\n## Settings\n\nZVM has additional setting stored in `~/.zvm/settings.json`. You can manually\nupdate version maps, toggle color support, and disable the automatic upgrade\nchecker here. All settings are also exposed as flags or environment variables.\nThis file is stateful, and ZVM will create it if it does not exist and utilizes\nit for its operation.\n\n## Please Consider Giving the Repo a Star ⭐\n\n\u003c!-- https://star-history.com/#tristanisham/zvm\u0026Timeline --\u003e\n\u003ca href=\"https://github.com/tristanisham/zvm\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=tristanisham/zvm\u0026type=Timeline\u0026theme=dark\" /\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=tristanisham/zvm\u0026type=Timeline\" /\u003e\n    \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=tristanisham/zvm\u0026type=Timeline\" /\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftristanisham%2Fzvm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftristanisham%2Fzvm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftristanisham%2Fzvm/lists"}