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,remove,doctor,clean). - Dry-run mode to preview install/activate operations without making changes.
- Cleanup command to remove installs, shims, and config.
Software what you need is:
That's all :)
winget install --id JanMesarc.GodMan# 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 --yeslist— show registered installs, active marker.fetch— browse available Godot versions from GitHub; options:--stable,--filter <VERSION>,--limit <COUNT>.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.remove <id> [--delete]— unregister (optionally delete files).doctor— check registry/env/shim.tui— interactive menu for the above.clean [--yes]— remove installs, shims, config.version— show the current godman version.
- 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.
- 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