{"id":1560,"date":"2026-09-11T23:49:15","date_gmt":"2026-09-11T23:49:15","guid":{"rendered":"https:\/\/x.sheep-mine.ts.net\/index.php\/meet-the-unity-cli\/"},"modified":"2026-09-11T23:49:15","modified_gmt":"2026-09-11T23:49:15","slug":"meet-the-unity-cli","status":"publish","type":"post","link":"https:\/\/x.sheep-mine.ts.net\/index.php\/meet-the-unity-cli\/","title":{"rendered":"Meet the Unity CLI: manage Unity from your terminal"},"content":{"rendered":"<p><br \/>\n<\/p>\n<div>\n<h2>What is the Unity CLI<\/h2>\n<p>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 <em>unity<\/em>, and update it in place with <em>unity upgrade<\/em>. Beyond editors and projects, it also handles modules and authentication, so a fresh machine needs nothing else.<\/p>\n<p>Because it&#8217;s a native binary, it starts quickly, whereas the old Unity Hub headless path (<em>&#8212; &#8211;headless<\/em>) took noticeably longer. This gap adds up across the dozens of calls a script or agent makes per job.<\/p>\n<h2>Get started<\/h2>\n<p>Install it with your platform\u2019s package manager:<\/p>\n<div class=\"mango-code\">\n<pre class=\"hljs\"><code class=\"language-plaintext\" style=\"white-space:pre\"><span class=\"\"># macOS or Linux\r\n<\/span>curl -fsSL https:\/\/public-cdn.cloud.unity3d.com\/hub\/prod\/cli\/install.sh | UNITY_CLI_CHANNEL=beta bash\r\n<!-- -->\r\n<!-- --># Windows\r\n<!-- -->$env:UNITY_CLI_CHANNEL='beta'; irm https:\/\/public-cdn.cloud.unity3d.com\/hub\/prod\/cli\/install.ps1 | iex<\/code><\/pre>\n<\/div>\n<p><em>(Note: Support for standard package managers like brew, winget and apt is coming soon. Refer to the <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/docs.unity.com\/en-us\/unity-cli\/use-unity-cli\">CLI documentation<\/a> for the latest.)<\/em><\/p>\n<p>Explore what&#8217;s available:<\/p>\n<p>Installing an editor with the modules you need is a one-liner:<\/p>\n<div class=\"mango-code\">\n<pre class=\"hljs\"><code class=\"language-plaintext\" style=\"white-space:pre\"><span class=\"\">unity install 6000.2.10f1 -m android ios webgl<\/span><\/code><\/pre>\n<\/div>\n<p>From there, commands read the way you&#8217;d expect: <em>unity editors<\/em> to see what&#8217;s installed, <em>unity open<\/em> to launch a project with the right editor resolved, and <em>unity auth login<\/em> to sign in. Not sure which module IDs a version has? <em>unity modules list 6000.2.10f1<\/em> has you covered.<\/p>\n<h2>Built for automation<\/h2>\n<p>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:<\/p>\n<div class=\"mango-code\">\n<pre class=\"hljs\"><code class=\"language-plaintext\" style=\"white-space:pre\"><span class=\"\">unity editors --format json\r\n<\/span>unity editors --format tsv<\/code><\/pre>\n<\/div>\n<p>Errors go to <em>stderr<\/em>, results to <em>stdout<\/em>, and exit codes follow a simple contract (<em>0<\/em> success,<em> 1<\/em> error, <em>130 <\/em>cancelled), so failures are easy to catch in a pipeline.<\/p>\n<p>For unattended installs, skip every prompt:<\/p>\n<div class=\"mango-code\">\n<pre class=\"hljs\"><code class=\"language-plaintext\" style=\"white-space:pre\"><span class=\"\">unity install 6000.2.10f1 -m android ios --accept-eula --yes<\/span><\/code><\/pre>\n<\/div>\n<p>On a headless build agent, it authenticates with a service account via environment variables. No browser, no manual step. And <em>unity doctor<\/em> diagnoses environment, credential, and configuration problems.<\/p>\n<\/div>\n<p><br \/>\n<br \/><a href=\"https:\/\/unity.com\/blog\/meet-the-unity-cli\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>What is the Unity CLI The CLI ships as a single self-contained binary. There are&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1560","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/posts\/1560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/comments?post=1560"}],"version-history":[{"count":0,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/posts\/1560\/revisions"}],"wp:attachment":[{"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/media?parent=1560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/categories?post=1560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/tags?post=1560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}