What is the Unity CLI
The CLI ships as a single self-contained binary. There are no dependencies to install, and installation adds itself to your PATH: simply run it as unity, and update it in place with unity upgrade. Beyond editors and projects, it also handles modules and authentication, so a fresh machine needs nothing else.
Because it's a native binary, it starts quickly, whereas the old Unity Hub headless path (-- --headless) took noticeably longer. This gap adds up across the dozens of calls a script or agent makes per job.
Get started
Install it with your platform’s package manager:
# macOS or Linux
curl -fsSL https://public-cdn.cloud.unity3d.com/hub/prod/cli/install.sh | UNITY_CLI_CHANNEL=beta bash
# Windows
$env:UNITY_CLI_CHANNEL='beta'; irm https://public-cdn.cloud.unity3d.com/hub/prod/cli/install.ps1 | iex(Note: Support for standard package managers like brew, winget and apt is coming soon. Refer to the CLI documentation for the latest.)
Explore what's available:
Installing an editor with the modules you need is a one-liner:
unity install 6000.2.10f1 -m android ios webglFrom there, commands read the way you'd expect: unity editors to see what's installed, unity open to launch a project with the right editor resolved, and unity auth login to sign in. Not sure which module IDs a version has? unity modules list 6000.2.10f1 has you covered.
Built for automation
The CLI was built to live inside automation, not just an interactive shell. Every command can emit structured output you can pipe straight into your tooling:
unity editors --format json
unity editors --format tsvErrors go to stderr, results to stdout, and exit codes follow a simple contract (0 success, 1 error, 130 cancelled), so failures are easy to catch in a pipeline.
For unattended installs, skip every prompt:
unity install 6000.2.10f1 -m android ios --accept-eula --yesOn a headless build agent, it authenticates with a service account via environment variables. No browser, no manual step. And unity doctor diagnoses environment, credential, and configuration problems.