---
title: Unity CLI release notes for August 2026
product: Unity command-line interface (CLI)
canonical: https://docs.unity.com/en-us/unity-cli/release-notes/2026/august
last_updated: 2026-11-12
generated_at: 2026-11-14T03:41:27.776Z
locale: en-us
---

# Unity CLI release notes for August 2026

> Learn about the Unity CLI releases in August 2026.

This page contains the release notes for the Unity CLI versions released in August 2026, from newest to oldest.

## 1.0.0-beta.6

**Release date:** August 21, 2026

* **Breaking changes**
  * `unity bug` now requires you to be signed in, and exits with code `3` instead of `0` when you aren't. Previously a signed-out run reported nothing and appeared to succeed. Authenticate first, or pass service-account credentials, before a script or CI job calls `unity bug`.
  * `unity test` now uses exit code `8` specifically for a run whose tests failed. Every other way a test run fails to reach a verdict — a compile error, an expired license, an editor crash, or `--timeout` — keeps exit code `6`. If a script treats exit code `6` as "tests failed," point it at `8` instead.

* **Source control**
  * `unity projects create` and `unity projects link vcs` can now create the new repository through `gh`, `glab`, or `tea` when the CLI's own REST clients can't reach the host: a GitHub Enterprise Server, a self-managed GitLab, or a self-hosted Gitea or Forgejo instance. `--vcs` accepts a bare hostname for these. No token passes through the CLI on this path; the provider CLI's own signed-in session does the work. A new `--git-description <text>` flag sets the repository's description.
  * `unity projects clone` and `unity projects link vcs` now accept a plain git URL — `ssh://`, `git@host:path`, or `https://` — as an optional positional argument, so any git host works, including Bitbucket, Azure DevOps, and a self-hosted server. This form uses your machine's own ambient git authentication rather than a provider API call.
  * Both commands, and `unity projects create --vcs`, now work fully over SSH, including host-key verification and passphrase-protected keys. Use `--git-remote-protocol ssh` on the flag form to switch the transport.
  * Signing in to github.com no longer implies anything on a self-hosted host. When a self-hosted or enterprise host needs its own sign-in, the CLI now names the exact command to run for whichever provider CLI you have installed.
  * Git credential prompts no longer hang. Without a terminal, in CI, under a machine-readable `--format`, or with `--non-interactive`, the CLI now fails immediately with exit code `4` naming the credential it needed, instead of waiting on a prompt nobody could answer.
  * Git operations under `unity projects` now respect your own git configuration (`core.sshCommand`, `includeIf` rules, credential helpers) instead of ignoring it, and credential lookups resolve per organization when your credential helper supports it (set `git config --global credential.useHttpPath true` to opt in).

* **Project management**
  * Added `unity projects verify`, a fast check for the things version control breaks in a Unity project: orphaned or missing `.meta` files, duplicate GUIDs from a bad merge, and unresolved conflict markers. It needs no Editor, license, or network access, so a broken checkout fails in seconds instead of after a full build. Pass `--strict` to fail on warnings too, and `--expect-editor <version>` to also check for editor-version drift.

* **Build automation**
  * `unity build` now writes a build provenance manifest next to its output, recording the editor version, resolved package set, build target, git revision, and timestamps that produced the build. It's written for failed builds too. Paths, credentials, and machine-identifying details are deliberately left out, so it's safe to publish alongside the artifact. Use `--provenance-path` to choose where it's written, or `--no-provenance` to turn it off.
  * `unity build` now prints a periodic heartbeat during a long build, tracking both elapsed time and how long since the editor's log last grew, so silence in the log no longer looks the same as a hang. A new `--timeout <seconds>` flag (also `UNITY_BUILD_TIMEOUT`) aborts a build that runs too long.

* **Unity Collaboration**
  * `unity collaboration` (`unity collab` for short) is now part of every build, instead of development builds only. It covers Unity Collaboration's annotations end to end — create, list, update, resolve, reply, and react — plus attachments, thumbnails, and a Jira integration that creates and links issues from the CLI. Run `unity collab --help` for the full command tree.

* **Automation and CI**
  * Added `--format github`, a global output format that reports command failures as GitHub Actions annotations instead of plain text, so a red step in a workflow points at what went wrong in its summary.
  * Added `unity cache key`, which prints a deterministic cache key for a Unity project's `Library` folder, derived from the editor version, the resolved package set, and the build target. Use it as the key for a CI cache step.
  * Added `unity doctor --ci`, a fast preflight that checks whether a machine can actually finish a build or test run — an activatable license, the project's required editor, disk space, and network reachability — and exits non-zero when it can't, so a pipeline fails in seconds instead of partway through a build.
  * `unity test` gained `--shard N/M` to split a suite deterministically across parallel CI jobs, `--retries N` to re-run only the tests that failed and report which ones were flaky, and `--rerun-failed` to re-run just the failures from a previous run's report.

* **Security and privacy**
  * Shell completion scripts (`unity completion bash`, `fish`, and `powershell`) now escape the strings they interpolate, closing a defense-in-depth gap where an unescaped value could have run as a command or broken out of its quoting.
  * Progress spinners and the background update check are hardened against a tampered update manifest smuggling terminal control sequences into the spinner label.

* **Issues fixed**
  * Editor and module install progress bars are back in the terminal. A large download previously printed nothing at all until it finished, which looked indistinguishable from a hang.
  * A stale Unity Licensing Client is now detected and replaced automatically, instead of silently rejecting every `unity license` command until it was deleted by hand.
  * The Android module on Linux, the Android NDK on macOS, Windows modules that need administrator elevation, and language packs all had install paths that were broken outright; all are fixed.
  * Wrapped editors (running under `xvfb-run`, `dbus-run-session`, or a CI runner) are counted correctly again by `unity status`, instead of appearing as duplicates or "ambiguous."
  * The loop where signing in with `unity auth login` eventually signed you out of the Unity Hub is fixed for good.
  * Installing the CLI on Windows no longer corrupts your user `PATH`. PowerShell tab completion now actually registers (it never took effect before). `unity command` now catches malformed or misspelled arguments instead of silently running on default values.

## 1.0.0-beta.5

**Release date:** August 13, 2026

* **Security and privacy**
  * `unity bug` no longer uploads your account name or email address. The CLI's log file records paths under your home directory on nearly every line, and a bug submission attaches that file as-is, so on a machine where the account name is your real name, submitting a report sent it too. Both are now redacted as each line is written: the account name becomes `<user>` wherever it appears, and email addresses become `<redacted-email>`. Nothing else about the line changes, so an install failure stays diagnosable. Logs written before this release are unaffected; delete them if you'd rather not send them.

* **Issues fixed**
  * A retried module download in `unity install-modules` now resumes the partial file it already has instead of starting that module again from the beginning. A module that failed and then succeeded within the same run previously left one numbered file per attempt, such as `android (1).pkg` and `android (2).pkg`; it now leaves a single file and downloads its bytes once. The retry count and the exit code are unchanged.
  * `unity build`, `unity test`, and `unity run` now report an Editor killed by a signal as `stopped with signal SIGSEGV`, naming the signal, instead of reporting `exited with code 1`. `SIGILL`, `SIGTRAP`, `SIGFPE`, and `SIGBUS` are recognized too, where they previously surfaced as a bare number such as 132. An Editor that exits normally still reports its own exit code.
  * Routine outcomes no longer suggest you report a CLI bug. Declining a module's license terms, being told to pass `--accept-eula` in a non-interactive shell, running `unity modules <version>` for an Editor you haven't installed, setting an invalid path with `unity install-path --set`, a `unity build` whose build fails, and a `unity install` that waits on another install's lock all stopped printing "Run `unity bug` to report this issue". The messages, the exit code (6), and the `--format json` envelope, including the `BUILD_FAILED` error code, are unchanged, so scripts that branch on them keep working. An Editor that crashes mid-build is still reported as a fault.
  * `unity --help`, `unity -h`, `unity help`, and bare `unity` show the Unity logo header again. The header still stays out of the way when you pipe the output, pass `--quiet` or `--no-banner`, or ask for a machine-readable format, and subcommand help such as `unity install --help` is unchanged.
  * `unity completion zsh` now produces a script that registers itself with zsh, so pressing Tab completes commands, subcommands, and flags. The script previously defined the completer without telling zsh about it, and Tab fell back to plain filename completion with no error to explain why. Save it to a directory on your `$fpath`:

    ```sh
    mkdir -p ~/.zsh/completions
    unity completion zsh > ~/.zsh/completions/_unity
    ```

    Then make sure your `~/.zshrc` has `fpath=(~/.zsh/completions $fpath)` followed by `autoload -Uz compinit && compinit`. bash, fish, and PowerShell completion are unaffected.
  * The `--proxy` help text shows its credentialed example as `http://<user>:<pass>@host:8080`, so it's clear which parts you substitute. In Spanish, the username in that example is no longer mistranslated.

## 1.0.0-beta.4

**Release date:** August 12, 2026

* **Breaking 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.

* **Installation and updates**
  * Added winget as an install source on Windows: `winget install Unity.CLI`, then `winget upgrade Unity.CLI` to stay current.
  * Added Homebrew as an install source on macOS and Linux: `brew install --cask unity-cli`, then `brew upgrade unity-cli`.
  * 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.
  * 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.

* **Editor and project management**
  * Added `unity projects exec -- <command>`, which runs one command across every registered project. Narrow the set with repeatable `--filter` terms, raise concurrency with `--parallel <n>`, and use `--continue-on-error` to run the whole fleet regardless.
  * 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.
  * 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.
  * Added `unity editors verify <version>` 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.
  * Added `unity templates pack <project-path> --output <file>` to pack an existing project into a portable template archive.

* **Build automation**
  * `unity build` no longer requires `--execute-method`. On Unity 6 and newer, `--profile <path-or-name>` 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**
  * Added multi-account support. `unity auth login` adds an account without dropping existing sessions, `unity auth list` shows every stored account, `unity auth switch <account>` changes the active one, and `unity auth logout <account>` signs out one account while preserving the rest.
  * Added per-project default accounts with `unity auth default <account>`, so cloud-authenticated commands run from inside that project resolve it automatically.

* **AI agent integration**
  * Added `unity skill install <client>` 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**
  * 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.
  * Added detached Editor command jobs: `unity command <name> --detach` and `unity eval <expr> --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.
  * 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`.
  * `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.
  * Added the full query surface to `unity command` listings: `--query`, `--tag`, `--group_by`, `--sort`, `--order`, `--offset`, `--limit`, and `--detail`.
  * `unity bug` can now attach files with `--attachments <paths...>` and a stripped copy of the project with `--share-project <path>`.

* **Output and integration**
  * `--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.
  * 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**
  * 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.
  * Tab completion now completes pipeline command names live from the connected Editor.

* **Issues fixed**
  * `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`.
  * `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.
  * `unity open` no longer causes the Editor to open Unity Hub, and the Editor now picks up the account you signed in with.
  * `unity license` commands and Unity Version Control commands now work on a machine that has never run Unity Hub.
  * `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.
  * `unity editors info <version>` now finds releases on entitlement-gated lines, such as extended LTS.
  * `unity install <version>` 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.
  * `unity hub install` works again on macOS and Linux, and `--hub-version` works again for Hub 3.20.0 and newer.
  * Running a command with `sudo` no longer leaves root-owned directories that break every later command.
  * `unity install` failures now report the underlying reason instead of a bare `Installation Failed`, and interrupted downloads can be resumed with `--resume`.
  * Editor and module downloads are now verified against the release manifest's checksum, including downloads resumed across attempts.
  * `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.
  * Running a command group without a subcommand now prints its help to stdout and exits 0 instead of reporting a usage error.
  * Editor Pipeline commands now work behind an HTTP proxy, and long-running Editor commands no longer hard-fail at 60 seconds.

* **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`.
  * A rejected `--proxy` value shaped like `user:pass@host` no longer echoes the password in the usage error.
  * `unity uninstall` on macOS and Linux now refuses an Editor whose stored location resolves to a filesystem root.
  * Updated the bundled HTTP client library, which now rejects header values containing CR or LF characters.
