Skip to main content
Version: v4 (current)

GameCI CLI

The game-ci CLI is the user-facing command line for running GameCI workflows from a terminal or from any CI system. It gives you a high-level API for game automation tasks such as builds, tests, custom engine methods, and remote provider jobs. Lower-level engine and provider implementations are loaded as plugins.

Unity is the primary supported package in GameCI, but the CLI itself is not Unity-only. It ships with built-in engine detection and engine command implementations for Unity, Godot, and Unreal Engine. External plugins can add more engines, tests, custom commands, options, and remote providers.

Use this CLI when you want a stable command surface such as:

game-ci build ./my-project
game-ci test ./my-project
game-ci build ./my-unity-project --build-method Company.CI.RunValidation
game-ci --plugin @game-ci/orchestrator-plugin remote run ./my-project --provider-strategy local-docker
game-ci config open

The Orchestrator CLI is still available for advanced or standalone provider work, but most users should start with game-ci.

Install

Standalone binaries do not require Node.js, Bun, or a package manager.

Linux / macOS

curl -fsSL https://raw.githubusercontent.com/game-ci/cli/main/install.sh | sh

Windows PowerShell

irm https://raw.githubusercontent.com/game-ci/cli/main/install.ps1 | iex

Installer Options

VariableDescriptionDefault
GAME_CI_VERSIONPin a release, for example v0.1.0.latest
GAME_CI_INSTALLInstall directory for the game-ci executable.~/.game-ci/bin

After installation, make sure ~/.game-ci/bin is on your PATH.

From Source

Use this path when working on the CLI itself.

git clone https://github.com/game-ci/cli.git
cd cli
bun install
bun run start -- --help

Command Model

The CLI has a small core and loads engine, command, and provider behavior through plugins.

CommandPurpose
game-ci buildRun the detected engine's build command.
game-ci testRun the detected engine's test command when a plugin provides one.
game-ci remote runSchedule an engine job through a provider plugin.
game-ci config openOpen the local GameCI configuration folder.

The built-in plugins provide:

EngineDetection signalBuilt-in command surfaceNotes
UnityProjectSettings/ProjectVersion.txtEngine command optionsSupports custom static methods through --build-method.
GodotGodot project filesEngine command optionsUses barichello/godot-ci by default.
Unreal.uproject filesEngine command optionsRequires a licensed Unreal-capable Docker image.
OtherPlugin-definedPlugin-defined commandsPlugins can add build, test, provider, or custom command behavior.

Remote providers such as local Docker, AWS, Kubernetes, GitHub Actions dispatch, and custom provider executables are registered by provider plugins. The Orchestrator plugin is the intended backend for GameCI remote execution.

First Commands

Run commands from your project root, or pass the project path as the first argument.

game-ci build
game-ci build ./my-unity-project --target-platform StandaloneLinux64
game-ci test ./my-unity-project

For Unity projects, the CLI reads ProjectSettings/ProjectVersion.txt to determine the Unity Editor version. For Godot and Unreal Engine projects, the CLI detects the project from the engine's project files.

You can also set the engine explicitly when detection is not enough:

game-ci build ./my-project --engine unity --engine-version 2022.3.20f1

Public CLI vs Orchestrator CLI

Use caseRecommended entry point
Local or CI engine commands with a friendly APIgame-ci from game-ci/cli
Remote jobs via provider pluginsgame-ci remote run with @game-ci/orchestrator-plugin
Provider protocol developmentStandalone @game-ci/orchestrator CLI
GitHub Actions workflows with the CLIgame-ci/cli GitHub Action
Unity-specific GitHub Actions workflowsgame-ci/unity-builder with Orchestrator inputs

Next Steps