Unity CLI 1.0.0-beta.4
42 documented changes.
- Version
- 1.0.0-beta.4
- Released
- Aug 12, 2026
- Product
- Unity CLI
Unity CLI 1.0.0-beta.4
Breaking change
- Change
Linux now requires glibc 2.34 or newer. This drops support for Ubuntu 20.04 and earlier, Debian 11, RHEL and CentOS 8, and Amazon Linux 2. RHEL 9 and Ubuntu 22.04 are the oldest supported releases. The `.deb` and `.rpm` packages declare the requirement, so `apt upgrade` and `dnf upgrade` refuse the update on an affected system and leave your working CLI in place, and `install.sh` checks before it downloads. If you're on an affected distribution, stay on 1.0.0-beta.3. macOS and Windows are unaffected.
- Windows
- macOS
- Linux
Installation and updates
- Feature
Added winget as an install source on Windows: `winget install Unity.CLI` , then `winget upgrade Unity.CLI` to stay current.
- Windows
- Feature
Added Homebrew as an install source on macOS and Linux: `brew install --cask unity-cli` , then `brew upgrade unity-cli` .
- macOS
- Linux
- Feature
Added self-updating Windows installs. `unity upgrade` now updates an MSIX install directly instead of deferring to winget, downloading only the parts of the package that changed. It also registers the install with Windows, which then keeps the CLI current in the background. Rollback remains unavailable on MSIX.
- Windows
- Fix
Added `unity diagnose update` , which reports the version and channel the install resolved, the manifest it reads, and the exact command that updates it. On Windows it also shows the update feed Windows is registered against.
- Windows
Editor and project management
- Feature
Added `unity projects exec -- ` , which runs one command across every registered project. Narrow the set with repeatable `--filter` terms, raise concurrency with `--parallel ` , and use `--continue-on-error` to run the whole fleet regardless.
- Feature
Added `unity projects clean [project]` to delete a project's regenerable cache folders and reclaim disk space. Use `--dry-run` to list the targets and sizes without deleting.
- Feature
Added `unity editors prune` to find installed Editors no registered project uses, with the disk space each would reclaim. Report-only by default; `--remove` uninstalls them after confirmation.
- Feature
Added `unity editors verify ` to check that an installed Editor's binary and modules are present and non-empty, catching installs left broken by antivirus quarantine or a failed extraction.
- Feature
Added `unity templates pack --output ` to pack an existing project into a portable template archive.
Build automation
- Change
`unity build` no longer requires `--execute-method` . On Unity 6 and newer, `--profile ` builds a Build Profile, and on every version the desktop targets build without a method, so `unity build --target StandaloneWindows64 --output-path Build/MyGame.exe` works with no project-side C# code. `--execute-method` keeps working and takes precedence.
Authentication
- Feature
Added multi-account support. `unity auth login` adds an account without dropping existing sessions, `unity auth list` shows every stored account, `unity auth switch ` changes the active one, and `unity auth logout ` signs out one account while preserving the rest.
- Feature
Added per-project default accounts with `unity auth default ` , so cloud-authenticated commands run from inside that project resolve it automatically.
AI agent integration
- Feature
Added `unity skill install ` to install the Unity CLI agent skill into an AI client's rules or skills directory, in that client's native format. The skill is embedded in the binary, so it works offline and matches the running version. `unity skill refresh` re-renders previously installed skills after an upgrade.
Automation and CI
- Feature
Added CI-native test reports and code coverage to `unity test` , so it drops into a GitHub Actions or GitLab pipeline without a converter step.
- Feature
Added detached Editor command jobs: `unity command --detach` and `unity eval --detach` return a job ID immediately, and `unity job wait` , `unity job status` , and `unity job cancel` manage it. Requires a Unity pipeline package with job support.
- Feature
Added live Editor task progress to `unity command` and `unity run --command` , rendered as a progress bar on an interactive terminal and as `{"type":"progress"}` frames under `--format ndjson` .
- Change
`unity command` , `unity list` , `unity job` , and `unity mcp` now find the right Editor on their own when several are open, by matching the directory you run them from against the registered projects. Explicit `--project-path` still takes precedence.
- Feature
Added the full query surface to `unity command` listings: `--query` , `--tag` , `--group_by` , `--sort` , `--order` , `--offset` , `--limit` , and `--detail` .
- Change
`unity bug` can now attach files with `--attachments ` and a stripped copy of the project with `--share-project ` .
Output and integration
- Change
`--format ndjson` failures are now machine-readable: a failed command ends the stream with a terminal `{"type":"result","success":false,…}` frame carrying the same fields as the `--format json` envelope, instead of reporting only on stderr.
- Change
Long human-readable output now scrolls in a pager on an interactive terminal, using `$UNITY_PAGER` , `$PAGER` , or `less` . Machine formats, piped output, and `--quiet` never page. Opt out with `--no-pager` or `UNITY_NO_PAGER` .
Interactive shell
- Feature
Added full line editing to the `unity shell` prompt: Up and Down recall previous commands across sessions, Tab completes commands, subcommands, flags, and values, and Left, Right, Home, and End move within the line.
- Change
Tab completion now completes pipeline command names live from the connected Editor.
Issues fixed
- Fix
`unity upgrade` now verifies that the downloaded binary starts on your system before replacing the one you have, and no longer cancels itself where the temporary directory is mounted `noexec` .
- Fix
`unity upgrade` no longer overwrites an npm-managed install; it now defers to `npm i -g @unity/cli@latest` the same way it defers to apt, rpm, and Homebrew.
- Fix
`unity open` no longer causes the Editor to open Unity Hub, and the Editor now picks up the account you signed in with.
- Fix
`unity license` commands and Unity Version Control commands now work on a machine that has never run Unity Hub.
- Fix
`unity editors upgrade` no longer hides upgrades for Apple silicon and Arm Windows Editors, no longer offers an older patch than the newest in the line, and no longer reports prerelease Editors as up to date when a newer prerelease exists.
- Windows
- Fix
`unity editors info ` now finds releases on entitlement-gated lines, such as extended LTS.
- Fix
`unity install ` now distinguishes an unreachable release service from a version that doesn't exist, retrying briefly and exiting with the new code 7 rather than blaming the version.
- Fix
`unity hub install` works again on macOS and Linux, and `--hub-version` works again for Hub 3.20.0 and newer.
- macOS
- Linux
- Fix
Running a command with `sudo` no longer leaves root-owned directories that break every later command.
- Fix
`unity install` failures now report the underlying reason instead of a bare `Installation Failed` , and interrupted downloads can be resumed with `--resume` .
- Fix
Editor and module downloads are now verified against the release manifest's checksum, including downloads resumed across attempts.
- Fix
`unity mcp configure` now writes the config key and file path each AI client actually reads, preserves comments and formatting in the files it edits, and the `run_tests` and `recompile` tools return as soon as the Editor answers instead of always failing at their poll timeout.
- Fix
Running a command group without a subcommand now prints its help to stdout and exits 0 instead of reporting a usage error.
- Fix
Editor Pipeline commands now work behind an HTTP proxy, and long-running Editor commands no longer hard-fail at 60 seconds.
Security
- Security
Values that come from Unity services, user-editable settings, or the licensing client are now sanitized before they're printed, so a crafted value can't smuggle terminal escape sequences into your terminal or forge extra rows in `tsv` output. This covers table headers and cells, interactive prompt choices, `unity license status` , `unity editors default` , `unity install-path` , and `unity config proxy` .
- Security
A rejected `--proxy` value shaped like `user:pass@host` no longer echoes the password in the usage error.
- Security
`unity uninstall` on macOS and Linux now refuses an Editor whose stored location resolves to a filesystem root.
- macOS
- Linux
- Security
Updated the bundled HTTP client library, which now rejects header values containing CR or LF characters.