MG-CLI

MG-CLI (mg-cli) is a .NET 10.0 global tool that automates the end-to-end CI/CD pipeline for Godot game projects. It handles everything between "code is committed" and "players can download the new build": installing the engine, importing assets, exporting platform builds, bumping the version, tagging the release, deploying to storefronts, and announcing the release on Discord.

It is built and maintained by Mainframe Games and published to NuGet.

dotnet tool install --global mg-cli

What it does

A typical release pipeline built from mg-cli sub-commands looks like this:

flowchart TD
    install["godot install"] --> import["godot import"]
    import --> version["godot version --bump"]
    version --> build["godot build"]
    install -. engine + templates .-> build
    build --> binaries(["platform binaries"])

    binaries --> steam["steam deploy"]
    binaries --> itchio["itchio deploy"]
    binaries --> digitalocean["digitalocean"]

    steam --> commit["commit<br/>tag + push"]
    itchio --> commit
    commit --> discord["discord-hook"]
    digitalocean --> discord

Every command is a thin, scriptable wrapper over the tools a Godot release actually needs β€” the Godot headless editor, SteamCMD, itch.io's Butler, git, ssh/scp, and the Discord webhook API β€” with consistent logging, progress bars, and version handling layered on top.

Where to go next

If you want to… Read
Understand what the tool is and why it exists Introduction
Install the tool and run your first command Getting Started
Understand how the codebase is structured Architecture
Look up a specific command and its flags Command Reference
Understand the shared helper layer Utilities
Understand versioning conventions Versioning
Set up automated NuGet publishing CI/CD Pipeline
Build, pack, and hack on the tool Development
Note

This documentation set is conceptual β€” it explains the design, workflows, and behavior of MG-CLI. It intentionally does not include generated API reference documentation. The source of truth for exact type signatures is the code itself in the MG-CLI/ project.