unity
Standalone CLI to install and manage Unity Editors, modules, and projects
TLDR
SYNOPSIS
unity [global-options] command [args]
DESCRIPTION
unity is Unity Technologies' standalone command-line interface for installing and managing Unity Editors and modules from a terminal, without the Unity Hub desktop application. It is a self-contained binary aimed at CI agents, automation scripts, and terminal-first workflows. The tool is experimental; flags and subcommands may change between releases.With unity you can download Editors by version or alias (lts, latest, major streams such as 6), add platform modules (android, ios, webgl, and others), list installed and available releases, open projects with the matching Editor, manage licenses and auth, and self-update via unity upgrade. Output can be human-readable, json, tsv, or ndjson for pipelines.Driving a *running* Editor (for example unity command or unity command eval) requires the experimental com.unity.pipeline package in the project; install it with unity pipeline install after signing in. That layer is optional for pure Editor install and project-open workflows.On Linux the official install script places the binary at ~/.local/bin/unity. Package and Homebrew installs use the package name unity-cli but still provide the unity command, because unity is already taken by other packages on some distributions.
PARAMETERS
Global options and the full subcommand set are version-dependent. Run unity --help and unity command --help for the installed binary. Common commands:install [version] [-m module...]
Install an Editor. Version may be a full string (for example 6000.3.7f1) or an alias such as lts or latest. Alias i.install-modules -e version -m module...
Add modules to an Editor already installed via Hub or CLI. Alias im.uninstall version
Remove an installed Editor. Alias u.editors [-i | -r]
List installed (-i) or available (-r) Editors; subcommands include add and default. Alias e.open path
Open a project with the Editor version declared by the project. A path as the first argument is treated like open.auth login | status | logout
Manage the Unity account session. Alias a.upgrade
Replace the CLI binary with the latest release (or print the package-manager upgrade command if the install is managed).doctor
Print environment and configuration diagnostics.--format human|json|tsv|ndjson
Select structured output for automation. --json is a global shorthand for JSON.
INSTALLATION
Install script (macOS/Linux; beta channel as of 2026):
CAVEATS
The CLI is labeled experimental by Unity. Scripts that still invoke the Hub with -- --headless need migration: version flags, error streams (stderr), piped default format (tsv), and exit codes differ from the old Hub CLI.Modules can only be added to Editors installed through the Hub or this CLI. Manually unpacked Editors must be reinstalled or registered before modules work.Driving a live Editor needs com.unity.pipeline and a signed-in session; that package is also experimental.
HISTORY
Unity long offered Hub desktop automation via -- --headless. In 2026 Unity introduced this standalone unity binary as a faster, dependency-free replacement for terminal and CI workflows, with structured output, service-account auth, and optional live Editor control through the Pipeline package.
SEE ALSO
godot(1)
