gdvm

gdvm is a friendly Godot version manager that lets you install and manage multiple versions of Godot with ease. It uses a hybrid CLI/TUI design with flexible query support, allowing you to find versions using keywords like latest, 4 mono, or 3.3 rc4. It works on Windows, macOS, and Linux with support for both standard and .NET builds.

Features

Installation

Windows Installation

Install using Scoop:

scoop bucket add patricktcoakley https://github.com/patricktcoakley/scoop-bucket
scoop install patricktcoakley/gdvm

⚡ gdvmup (Alternative)

Experimental one-line PowerShell installer:

irm https://raw.githubusercontent.com/patricktcoakley/gdvm/main/installer.ps1 | iex

💾 Manual Binary

📥 Download Windows x64

macOS Installation

Install using Homebrew:

brew tap patricktcoakley/formulae
brew install gdvm

Linux Installation

Install using Homebrew on Linux:

brew tap patricktcoakley/formulae
brew install gdvm

💾 Manual Binary (Alternative)

📥 Download Linux x64

🔧 Build from Source (All Platforms)

Clone the repository and build with .NET 9 SDK:

git clone https://github.com/patricktcoakley/gdvm.git
cd gdvm
dotnet build -c Release

📋 View all releases

Quick Usage

Install Godot versions:

gdvm install latest        # Latest stable release
gdvm install latest mono  # Latest .NET stable release
gdvm install 4 mono       # Latest 4.x with .NET support
gdvm install 3.3 rc       # Latest 3.3 release candidate
gdvm install 4.4.1        # Specific version

Set default version:

gdvm set 4.3-stable-mono   # Set specific version as default
gdvm set -i                # Interactive version picker

Launch Godot:

gdvm godot                 # Launch default version
gdvm godot -i              # Interactive version picker
gdvm godot --args --headless  # Pass arguments to Godot

Project-specific versions:

gdvm local                 # Detect and set version for current project
gdvm local 4.3 mono        # Set specific version for project
gdvm godot                 # Auto-detects project version

List and manage versions:

gdvm list                  # Show installed versions
gdvm search 4              # Search available versions
gdvm search 4.2 rc         # Search specific release candidates
gdvm remove 3.6-stable-mono # Remove installed version
gdvm which                 # Show current default version location

Commands Reference

Core Commands

gdvm install [--query|-q <...strings>]

Install Godot versions with powerful query system. If no arguments are supplied, prompts interactively.

Query Examples:

The last installed version automatically becomes the default.

gdvm list

List all locally installed Godot versions showing version, type, and runtime.

gdvm set [--interactive|-i] [<...strings>]

Set the default Godot version. Prompts interactively if no arguments supplied.

Options:

gdvm godot [options]

Launch Godot with intelligent version detection and project awareness.

Key Features:

Options:

Auto-attached mode for arguments like --version, --help, --headless

gdvm local [--interactive|-i] [<...strings>]

Manage project-specific versions via .gdvm-version files.

Behavior:

gdvm search [<...strings>]

Search all available remote Godot versions with filtering.

Query Examples:

gdvm remove [<...strings>]

Remove installed Godot versions with smart selection.

Behavior:

Removing the current default version will unset it.

gdvm which

Display the file path that the current Godot symlink points to.

gdvm logs [--level|-l <string>] [--message|-m <string>]

View application logs with optional filtering by level or message content.

Installation Paths

Storage locations:

Folder structure: VERSION-TYPE-RUNTIME (e.g., 4.3-stable-mono)

Symlinks: Created in bin/ folder for easy access via gdvm godot

Project Integration

GDVM integrates seamlessly with Godot projects through:

  1. .gdvm-version files - Explicit version locking
  2. project.godot detection - Automatic version detection from project files
  3. Missing version handling - Prompts to install required versions
  4. Direct launching - gdvm godot opens projects with correct version

Version Query System

GDVM supports flexible version queries, including:

Learn More

For detailed documentation, advanced features, and troubleshooting, visit the full README on GitHub.