unity-cli 0.2.4

Rust CLI for Unity Editor automation over the Unity TCP protocol
unity-cli-0.2.4 is not a library.

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 101 Unity 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

Recommended: Claude Code Plugin

Install the unity-cli plugin from Claude Code Marketplace:

/plugin marketplace add akiojin/unity-cli

The marketplace plugin installs skills only. Install the unity-cli binary separately using one of the manual options below.

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.

Manual Install

Download the latest binary from GitHub Releases, or install from a local checkout:

git clone https://github.com/akiojin/unity-cli.git
cd unity-cli
cargo install --path .

Unity-side UPM package URL:

https://github.com/akiojin/unity-cli.git?path=UnityCliBridge/Packages/unity-cli-bridge

Connection check:

unity-cli system ping

Skills (13)

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

Quick Examples

# Connectivity
unity-cli system ping

# Create a scene
unity-cli scene create MainScene

# Create a GameObject through raw tool call
unity-cli raw create_gameobject --json '{"name":"Player"}'

# Search C# code (local tool)
unity-cli tool call search --json '{"pattern":"PlayerController"}'

# Inspect machine-readable tool schema
unity-cli tool schema create_scene --output json

# Dry-run mutating tool calls (no side effects)
unity-cli --dry-run tool call create_scene --json '{"sceneName":"PreviewScene"}'

# Run EditMode tests
unity-cli tool call run_tests --json '{"mode":"editmode"}'

GWT Spec Migration (Issue-first)

If you need to migrate local specs/SPEC-* directories to GitHub issues, use:

scripts/migrate-specs-to-issues.sh --dry-run --specs-dir "$(pwd)/specs"

If the plan looks correct, run without --dry-run:

scripts/migrate-specs-to-issues.sh --specs-dir "$(pwd)/specs"

The script writes progress/results to migration-report.json and applies the gwt-spec label to the created issues.

Configuration

Variable Description Default
UNITY_PROJECT_ROOT Directory containing Assets/ and Packages/ auto-detect
UNITY_CLI_HOST Unity Editor host localhost
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

Legacy MCP-prefixed variables are not supported. Use UNITY_CLI_* only.

Documentation

License

MIT. See ATTRIBUTION.md for redistribution attribution templates.