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 provider-backed 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 orchestrate ./my-project --provider-strategy local-docker
game-ci config open

The standalone Orchestrator CLI is still available for advanced or standalone provider work, but most users should start with game-ci from this CLI. Both binaries are named game-ci after installation, so the command set you see depends on which package installed the binary.

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 orchestrateSchedule 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.

Provider types such as local Docker, local system, AWS, Kubernetes, GitHub Actions dispatch, and custom provider executables are registered by provider plugins. The Orchestrator plugin is the intended backend for GameCI provider-backed 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
Provider-backed jobsgame-ci orchestrate 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

Command Names At A Glance

CommandWhere it existsUse it for
game-ci buildPublic GameCI CLIUser-facing local or CI engine builds, including custom Unity methods.
game-ci testPublic GameCI CLIEngine test workflows when the selected engine plugin provides test logic.
game-ci orchestratePublic GameCI CLIProvider-backed jobs through Orchestrator or another provider plugin.
game-ci remote runPublic GameCI CLICompatibility alias for game-ci orchestrate.
game-ci remote buildPublic GameCI CLIOlder compatibility alias for game-ci orchestrate.
game-ci orchestrateStandalone Orchestrator CLIDirect Orchestrator provider runs and provider debugging.
game-ci buildStandalone Orchestrator CLIA narrow remote Orchestrator build shortcut, not the public CLI build API.
game-ci serveStandalone Orchestrator CLIJSON provider protocol mode for executable provider plugins.

If you are reading public CLI docs, prefer orchestrate for provider-backed work. The same verb exists in the standalone Orchestrator package, but the package you install determines the option surface and plugin behavior. Reach for standalone Orchestrator only when you installed @game-ci/orchestrator directly or you are debugging Orchestrator/provider behavior outside the public CLI.

Next Steps