xvm

command module
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 9, 2025 License: Apache-2.0 Imports: 17 Imported by: 0

README

XVM (Global Version Manager)

XVM is a programming language version manager, like `nvm`, but extensible to support all programming languages.

Workflow ci Go Report Card release Docker Pulls GitHub License GitHub go.mod Go version GitHub Downloads (all assets, all releases) Test Coverage

InstallationFeaturesLanguagesQuick-StartLicense

English | 简体中文

A tool to manage multiple versions of programming languages.

Usage:
  xvm [command]

Available Commands:
  add          Add a new addon to the XVM
  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 xvm

Use "xvm [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

usage

🐳  Docker Container

Release

docker pull toodo/xvm
docker run -it -e TERM=xterm toodo/xvm ui

🔔 Note: The above example runs the xvm ui command in an interactive terminal. To run xvm against other compatible servers, or to enter the container interactively for debugging or inspection, use:

docker run -it --entrypoint=/bin/sh toodo/xvm

📦  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://cnb.cool/zishuo/xvm.git
cd xvm
make build

🚀  Quick Start

📄 Usage

xvm <command> [flags]
  • Run terminal UI
 xvm 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

Star History Chart

📘  License

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

Documentation

The Go Gopher

There is no documentation for this package.

Source Files

  • main.go

Directories

Path Synopsis
internal
log
util/version
Package version supplies version information collected at build time to apimachinery components.
Package version supplies version information collected at build time to apimachinery components.
bun
lua
xvm
zig

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL