unity-cli
日本語 | 中文 | Français | Deutsch | Italiano | Español
unity-cli is a Rust CLI that lets Claude Code control Unity Editor over direct TCP.
It is the successor to unity-mcp-server, redesigned from Node.js + MCP to a native binary workflow.
Why unity-cli
- Operate Unity from Claude Code with focused skills and typed commands.
- Access
101Unity Tool APIs across scene, asset, code, test, UI, and editor domains. - Run as a single binary with fast startup and low overhead.
How It Works
Claude Code
-> Skills (on demand)
-> unity-cli
-> Unity Editor (TCP bridge)
Some code tools (read, search, find_symbol, find_refs, etc.) run locally without a Unity connection.
Getting Started
Editor compatibility
The Bridge requires Unity 2022.3 or newer. The macOS matrix covers 2022.3.62f3, 6000.0.84f1, 6000.3.25f1, 6000.4.11f1, 6000.5.3f1, 6000.6.3f1, 6000.7.0a2 and 6000.7.0b2 (acceptance E2E: PASS on 2026-09-30). See the verification dates and results before choosing a version. Unity 6000.7 Editor runs on Mono; CoreCLR Player builds are outside this matrix.
Recommended: Claude Code Plugin
Install the unity-cli plugin from Claude Code Marketplace:
The plugin ships skills; the binary and the Unity bridge are bootstrapped on
demand. When a task needs Unity and unity-cli is missing, the
unity-cli-usage skill has the agent run the Quick Install script below and then
unity-cli setup in your Unity project (it tells you before editing
Packages/manifest.json).
Codex Skills
When using this repository with Codex, skills are available via .codex/skills/ (symlinks to the plugin source).
No additional setup is required - just clone the repository.
Quick Install (recommended)
macOS (Apple silicon / Intel) and Linux:
|
Windows (PowerShell):
irm https://raw.githubusercontent.com/akiojin/unity-cli/main/scripts/install.ps1 | iex
Both installers download the release binary into the managed layout
~/.unity/tools/unity-cli/{rid}/ and verify it against the release
SHA256SUMS before installing; a checksum mismatch aborts the install and
leaves the existing binary untouched. install.sh symlinks it to
~/.local/bin/unity-cli; install.ps1 adds the managed directory to the user
PATH. Set UNITY_CLI_VERSION=v0.16.0 to pin a release. After the initial
install the CLI checks for updates automatically in the background, and every
update is verified against the same checksums.
If ~/.local/bin is not in your PATH, add the following to your shell profile
(e.g. ~/.zshrc or ~/.bashrc):
Set UNITY_CLI_NO_AUTO_UPDATE=1 to disable auto-update.
Package Managers
Package-manager installs are updated by brew upgrade / winget upgrade.
On Intel macOS, reference embeddings (unity-cli reference embed-build / embed-search) load ONNX Runtime
dynamically; the Homebrew formula installs onnxruntime, otherwise run
brew install onnxruntime or set ORT_DYLIB_PATH.
Manual Install
Download the latest binary from GitHub Releases, or install from a local checkout:
One-command project setup (binary check → bridge install → Editor connection):
setup adds the OpenUPM scoped registry and com.akiojin.unity-cli-bridge
(pinned to the CLI version) to Packages/manifest.json, optionally launches
the project's Unity Hub Editor, waits for the bridge, and returns one JSON
report. unity-cli bridge install | upgrade | status manage the package on
their own; install is idempotent, and setup / system ping report a
versionCheck when the CLI and bridge versions differ. When the project still
uses only the legacy Input Manager and the Editor is closed, install also sets
activeInputHandler to Both in ProjectSettings/ProjectSettings.asset, so the
Input System dependency imports without a blocking restart prompt.
Unity-side bridge package, manual alternatives (choose one):
OpenUPM:
Git URL (Unity Package Manager):
https://github.com/akiojin/unity-cli.git?path=UnityCliBridge/Packages/unity-cli-bridge
Connection check:
Managed binary maintenance:
unityd and lspd automatically refresh their managed unity-cli / C# LSP binaries on daemon startup.
The managed copies live under UNITY_CLI_TOOLS_ROOT (or the OS default tools directory) and are updated without an interactive confirmation prompt.
Skills (14)
These skills are written as workflow guides, not just command catalogs. They are designed to trigger from natural Unity requests such as "create a test scene", "trace references to this MonoBehaviour", or "run PlayMode tests and capture a screenshot".
| Category | Skills |
|---|---|
| Getting Started | unity-cli-usage |
| Scenes & Objects | unity-scene-create, unity-scene-inspect, unity-gameobject-edit, unity-prefab-workflow |
| Assets | unity-asset-management, unity-addressables |
| Code | unity-csharp-navigate, unity-csharp-edit |
| Runtime & Testing | unity-playmode-testing, unity-input-system, unity-ui-automation |
| Editor | unity-editor-tools |
| Maintenance | gh-skills-sync |
Quick Examples
# Connectivity
# Create a scene
# Create a GameObject through raw tool call
# Search C# code (local tool)
# Inspect machine-readable tool schema
# Dry-run mutating tool calls (no side effects)
# Run EditMode tests
GWT Spec Workflow
Feature specifications are managed in GitHub Issues labeled gwt-spec.
Use the Issue body as the source of truth for Spec, Plan, Tasks, and TDD.
Contributing
External contributions should target the develop branch. Read
CONTRIBUTING.md before opening a PR, especially for branch
policy, required CI, and skill documentation changes.
Configuration
| Variable | Description | Default |
|---|---|---|
UNITY_PROJECT_ROOT |
Directory containing Assets/ and Packages/ |
auto-detect |
UNITY_CLI_HOST |
Unity Editor host | 127.0.0.1 |
UNITY_CLI_PORT |
Unity Editor port | 6400 |
UNITY_CLI_TIMEOUT_MS |
Command timeout (ms) | 30000 |
UNITY_CLI_LSP_MODE |
LSP mode (off / auto / required) |
off |
UNITY_CLI_TOOLS_ROOT |
Downloaded tools root directory | OS default |
UNITY_CLI_NO_AUTO_UPDATE |
Disable background auto-update (1 to disable) |
(unset) |
Legacy MCP-prefixed variables are not supported. Use UNITY_CLI_* only.
Documentation
- Full command and tool catalog: docs/tools.md
- Development workflow and CI: docs/development.md
- Contribution guide: CONTRIBUTING.md
- Release process: RELEASE.md
- Attribution templates: ATTRIBUTION.md
License
MIT. See ATTRIBUTION.md for redistribution attribution templates.