Skip to content

RageAgainstThePixel/unity-cli

Repository files navigation

unity-cli

Discord NPM Version NPM Downloads

A powerful command line utility for the Unity Game Engine. Automate Unity project setup, editor installation, license management, building, and more—ideal for CI/CD pipelines and developer workflows.

Features

  • Install and manage Unity Hub and Unity Editors (multi-platform)
  • Activate and return Unity licenses (personal, professional, floating)
  • Create new Unity projects from templates
  • Run Unity Editor commands and builds from the CLI
  • Supports all modules, architectures, and build targets
  • Works on Windows, macOS, and Linux
  • Designed for automation and CI/CD

Installation

npm install -g @rage-against-the-pixel/unity-cli

Usage

In general, the command structure is:

unity-cli [command] [options] <args...>

With options always using double dashes (--option) and arguments passed directly to Unity or Unity Hub commands as they normally would with single dashes (-arg). Each option typically has a short alias using a single dash (-o), except for commands where we pass through arguments, as those get confused by the command parser.

Common Commands

Auth

  • unity-cli license-version: Print the Unity License Client version.
  • unity-cli activate-license [options]: Activate a Unity license.
  • unity-cli return-license [options]: Return a Unity license.

Unity Hub

  • unity-cli hub-version: Print the Unity Hub version.
  • unity-cli hub-install [options]: Install or update the Unity Hub.
  • unity-cli hub-path: Print the Unity Hub executable path.
  • unity-cli hub [options] <args...>: Run Unity Hub command line arguments (passes args directly to the hub executable).

Unity Editor

  • unity-cli setup-unity [options]: Find or install the Unity Editor for a project or specific version.
  • unity-cli uninstall-unity [options]: Uninstall a Unity Editor version.
  • unity-cli list-project-templates [options]: List available Unity project templates for an editor.
  • unity-cli create-project [options]: Create a new Unity project from a template.
  • unity-cli open-project [options]: Open a Unity project in the Unity Editor.
  • unity-cli run [options] <args...>: Run Unity Editor command line arguments (passes args directly to the editor).

Unity Package Manager

  • unity-cli sign-package [options]: Sign a Unity package for distribution.

Run unity-cli --help for a full list of commands and options.

Install Unity Hub and Editor

unity-cli hub-install
unity-cli setup-unity --unity-version 2022.3.x --modules android,ios

Activate a Unity License

Supports personal, professional, and floating licenses (using a license server configuration).

unity-cli activate-license --license personal --email <your-email> --password <your-password>

Create a New Project from a Template

Note

Regex patterns are supported for the --template option. For example, to create a 3D project with either the standard or cross-platform template, you can use com.unity.template.3d(-cross-platform)?.

unity-cli create-project --name "MyGame" --template com.unity.template.3d(-cross-platform)? --unity-editor <path-to-editor>

Open a project from the command line

Tip

If you run this command in the same directory as your Unity project, you can omit the --unity-project, --unity-version, and --unity-editor options.

unity-cli open-project

Build a Project

unity-cli run --unity-project <path-to-project> -quit -batchmode -executeMethod StartCommandLineBuild

Sign a Unity Package

Note

The --output option is optional. If not specified, the package contents will be updated in place with the signed .attestation.p7m file. Otherwise a signed .tgz file will be created in the specified output directory.

unity-cli sign-package --package <path-to-package-folder> --email <your-email> --password <your-password> --organization <your-organization-id>