unity-version-manager

September 12, 2025 ยท View on GitHub

A command-line application to manage unity versions. This tool allows to install and manage multiple unity versions on a system from the command-line. This tool is compatible with Unity-Hub and will use the installation destination configured there by default.

Installation

install with cargo

cargo install unity-version-manager

install from source with cmake

git clone git@github.com:Larusso/unity-version-manager.git
cd unity-version-manager
make install

install from source with cargo

git clone git@github.com:Larusso/unity-version-manager.git
cd unity-version-manager
cargo install --path ./uvm

Usage

The uvm (unity-version-manager) is a command-line tool for managing Unity installations and projects.

uvm [OPTIONS] <COMMAND>

Core Commands

CommandDescription
installInstall specified Unity version with optional modules
uninstallUninstall Unity version or specific modules
listList installed Unity versions (from Hub, system, or all)
launchLaunch Unity with a project, optionally with specific build platform

Project & Version Management

CommandDescription
detectFind which Unity version was used to create a project
modulesList available modules for a specific Unity version
versionUnity version utilities (latest, matching version requirements)

Detailed Command Usage

Install Unity

# Install specific Unity version
uvm install 2023.1.4f1

# Install with additional modules
uvm install 2023.1.4f1 --module android --module ios

# Install to custom location
uvm install 2023.1.4f1 /path/to/install

# Install with sync modules (dependencies)
uvm install 2023.1.4f1 --module android --with-sync

List Unity Installations

# List Unity Hub installations (default)
uvm list

# List all Unity installations
uvm list --all

# List system installations only
uvm list --system

# Show path only
uvm list --path

Launch Unity Projects

# Launch Unity with current directory as project
uvm launch

# Launch specific project
uvm launch /path/to/project

# Launch with specific platform
uvm launch /path/to/project --platform android

# Auto-detect project and use its Unity version
uvm launch --force-project-version

Version Management

# Get latest LTS version
uvm version latest --stream lts

# Find versions matching requirement
uvm version matching ">=2023.1"

# List modules for specific version
uvm modules 2023.1.4f1

# List modules by category
uvm modules 2023.1.4f1 --category platforms

Global Options

OptionDescription
-d, --debugPrint debug output
-v, --verbosePrint more output (can be repeated)
-c, --colorControl color output: auto, always, never
-h, --helpPrint help information
-V, --versionPrint version information

Development

Workspace Structure

This project uses a Cargo workspace with multiple crates:

CrateDescription
uvmMain CLI application (produces uvm binary)
unity-versionUnity version parsing and management
unity-hubUnity Hub integration
unity-typesBase Unity data types
uvm_installUnity installation logic
uvm_live_platformUnity release platform API
uvm_install_graphInstallation dependency graph
uvm_move_dirCross-platform directory operations

Building from Source

git clone git@github.com:Larusso/unity-version-manager.git
cd unity-version-manager
cargo build --workspace

Running Tests

cargo test --workspace

Running Development Version

# Run the uvm binary directly
cargo run --bin uvm -- --help

# Install locally for testing
cargo install --path ./uvm

License

Apache License 2.0