GVM (Global Version Manager)
GVM is a programming language version manager, like `nvm`, but extensible to support all programming languages.

Installation ❘
Features ❘
Languages ❘
Quick-Start ❘
License
English | 简体中文
A tool to manage multiple versions of programming languages.
Usage:
gvm [command]
Available Commands:
add Add a new addon to the GVM
completion Generate the autocompletion script for the specified shell
current Show Current version of a language
help Help about any command
install Install a specific version of a language
ls List installed versions of language
ls-remote List remote versions of language
set-language Set default application language, supported languages: en, zh
ui Run in the terminal UI
uninstall Uninstall a specific version of a language
use Set default versions of language
version Print version information
Flags:
-d, --debug debug mode
-h, --help help for gvm
Use "gvm [command] --help" for more information about a command.
🤘 Features
- Manage multiple versions of various programming languages (e.g., Go, Node, Java, etc.; more coming soon)
- Easy installation, uninstallation, and switching between language versions
- List both locally installed and remotely available versions for each language
- Operate via both Command Line Interface (CLI) and Terminal User Interface (TUI)
- Set default versions for each language
- Shell autocompletion for faster command input
- Cross-platform support, with Docker images and binary releases
- Extensible architecture—easy to add support for new languages
🐍 Supported Programming Languages
- Golang
- Node
- Java (zulu)
- Python
- C#
- C++/C
🌈 Screenshots

🐳 Docker Container
Release
docker pull toodo/gvm
docker run -it -e TERM=xterm toodo/gvm ui
🔔 Note: The above example runs the gvm ui command in an interactive terminal. To run gvm against other compatible servers, or to enter the container interactively for debugging or inspection, use:
docker run -it --entrypoint=/bin/sh toodo/gvm
📦 Installation
📁 From Binary
Download the appropriate version for your platform from the releases page.
🛠️ From Source
- compile glctl and place it in _output/
git clone https://github.com/toodofun/gvm.git
cd gvm
make build
🚀 Quick Start
📄 Usage
gvm <command> [flags]
gvm ui
🥪 Available Commands
- Command Line Interface (CLI)
ls-remote <lang>: List remote versions of a language
ls <lang>: List installed versions of a language
install <lang> <version>: Install a specific version of a language
uninstall <lang> <version>: Uninstall a specific version of a language
use <lang> <version>: Set the default version of a language
current <lang>: Show the current version of a language
- Terminal User Interface (TUI)
ui: Run in terminal interface
💕 Acknowledgements
Grateful acknowledgement to JetBrains for supporting this project through their Open Source License Program and providing exceptional development tools.
🧠 TODOs
- This cli tool is still in the development stage, and most of the programming languages are not completed. Everyone contribute is very much needed. 🙋♂️
🤝 Issues
If you have an issue: report it on the issue tracker
🧑💻 Contributing
Contributions are always welcome. For more information, check out the contributing guide
💕 Star History

📘 License
Licensed under the Apache License 2.0. See LICENSE for details.