godman (formerly Godot Manager) is a .NET 10 console/TUI tool to install, manage, and activate Godot Engine builds (Standard and .NET) on Linux and Windows.
- Install from official URLs (auto-built) or local archives; supports Linux and Windows, Standard or .NET editions.
- Scope-aware installs: user or global (requires administrator privileges for global scope).
- Each install is extracted into its own subfolder under the install root, based on downloaded archive name (with deterministic fallback when source URL has no archive filename).
- Registry of installs with activation; sets
GODOT_HOMEand writes shims (godotorgodot.cmd). - Interactive TUI (
tui) and CLI commands (list,fetch,install,activate,deactivate,remove,doctor,clean). - Dry-run mode to preview install/activate operations without making changes.
- Cleanup command to remove installs, shims, and config.
Pre-built releases are self-contained — no runtime needed. Just download and run.
Building from source requires:
winget install --id JanMesarc.GodMancurl -fsSL https://raw.githubusercontent.com/jame581/GodotManager/main/install.sh | bashDownload the latest .tar.gz from Releases and extract:
mkdir -p ~/.local/bin
tar -xzf godman-linux-x64-*.tar.gz -C ~/.local/bin
chmod +x ~/.local/bin/godmanNote: If
~/.local/binis not in your PATH, add it:echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrcThe one-liner installer above does this automatically.
# List installs
godman list
# Browse available versions from GitHub
godman fetch --stable --limit 10
# Preview installation (dry-run)
godman install --version 4.5.1 --edition Standard --platform windows --scope User --dry-run
# Install latest 4.5.1 Windows Standard (auto URL) to user scope and activate
godman install --version 4.5.1 --edition Standard --platform windows --scope User --activate
# Install .NET edition for Windows from auto URL, global scope (UAC prompt)
godman install --version 4.5.1 --edition DotNet --platform windows --scope Global --activate
# Install on Linux global scope (requires sudo)
sudo godman install --version 4.5.1 --edition Standard --platform linux --scope Global --activate
# Preview activation (dry-run)
godman activate <id> --dry-run
# Run TUI
godman tui
# Doctor and cleanup
godman doctor
godman clean --yes
# Enable diagnostic warnings for troubleshooting
godman activate <id> --verbose
godman install --version 4.5.1 --edition Standard --platform linux --activate --verboselist— show registered installs, active marker.fetch— browse available Godot versions from GitHub; options:--stable,--filter <VERSION>,--limit <COUNT>,--no-cache.install— download (auto URL) or use--archive; options:--version,--edition,--platform,--scope,--path,--activate,--force,--dry-run.activate <id>— switch active install; options:--dry-run.deactivate— deactivate the current active install (clearsGODOT_HOME, removes shims).remove <id> [--delete] [--dry-run]— unregister (optionally delete files);--dry-runpreviews without changes.doctor— check registry/env/shim.tui— interactive menu for the above.clean [--yes]— remove installs, shims, config.--version— show the current godman version.
All commands accept the following global options:
--verbose/-V— enable diagnostic warnings for best-effort operations (shim cleanup, PATH updates, shortcut creation, cache I/O, etc.). By default these operations fail silently; with--verbosethey printwarn:messages to the console.
- Config:
~/.config/godman/ - User installs:
~/.local/bin/godman/ - Global installs:
/usr/local/bin/godman/ - User shim:
~/.local/bin/godot - Global shim:
/usr/local/bin/godot
- Config:
%APPDATA%\godman\ - User installs:
%APPDATA%\godman\installs\ - Global installs:
C:\Program Files\godman\installs\ - User shim:
%APPDATA%\godman\bin\godot.cmd - Global shim:
C:\Program Files\godman\bin\godot.cmd
# Build the project
dotnet build
# Run all tests
dotnet test -v minimal
# Run integration tests only
dotnet test --filter "FullyQualifiedName~InstallerServiceIntegrationTests"
# Run with detailed output
dotnet test -v detailedTest Coverage:
- Unit tests for path resolution and configuration
- Integration tests for download/install flows with mocked HTTP
- Cross-platform validation (Windows/Linux)
- Isolated test environments with temporary directories
- Global installs require elevated privileges:
- Linux: run with
sudo - Windows: a UAC prompt will appear when global scope is selected
- Linux: run with
- Global activation also requires elevated privileges (because it updates system-wide environment variables/shims); on Windows,
activatenow shows a UAC prompt automatically. - Global cleanup requires elevated privileges; on Windows,
cleanshows a UAC prompt automatically when global paths are being removed. - Global scope sets system-wide environment variables and shims accessible to all users.
- The
fetchcommand queries GitHub API to discover available Godot versions. - Auto-URL construction for known Godot version patterns.
- Environment variable overrides available:
GODMAN_HOME,GODMAN_GLOBAL_ROOT - Windows environment variables: After activation,
GODOT_HOMEis set in the registry and current process. New terminal sessions will automatically load it; existing sessions can verify withdoctorcommand. - Windows PATH: The shim directory is automatically added to your PATH during activation. Restart your terminal after activation to use the
godotcommand. - Troubleshooting: If something seems off after install/activate, run the command again with
--verbose(-V) to see diagnostic warnings for any best-effort operations that failed silently.
- Jan Mesarč - Programmer - Portfolio
- Do you want support my work, my dreams? - Buy me a coffee
- Take a look on my other games - itch.io