Agent skill

Unity Editor Tools

by akiojin in akiojin/unity-cli

Inspect and control Unity Editor state with unity-cli. An agent skill from akiojin/unity-cli.

MITAuto-check passedGame Development

Install Unity Editor Tools

skills CLI
$ npx skills add akiojin/unity-cli --skill unity-editor-tools -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install akiojin/unity-cli unity-editor-tools --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/akiojin/unity-cli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude-plugin/plugins/unity-cli/skills/unity-editor-tools .claude/skills/unity-editor-tools && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
unity-editor-tools
GitHub stars
107
Token cost
~2.9k tokens
SKILL.md length
1,099 words
Files
3 (incl. references)
Skills in repo
28
Repo updated
First seen
Licence
MIT

At a glance

Inspect and control Unity Editor state with unity-cli. An agent skill from akiojin/unity-cli.

  • Works in 4 steps: If the Editor is stopped, use editor… → Read state before mutating it: console… → Apply one editor-wide change at a time… → …
  • The user asks to open
  • SKILL.md covers Use When, Do Not Use When, Preferred Flow and Examples, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Unity Editor Tools is an agent skill from akiojin/unity-cli. Inspect and control Unity Editor state with unity-cli. Use when the user asks to open or close an Editor, run a headless host, wait for readiness, build a standalone Player, bake lighting, NavMesh or occlusion, poll build/bake jobs, evaluate C, read console output, update settings, run menus, inspect windows or capture profiler data. Do not use for package operations; use unity-package-management. For C edits use unity-csharp-edit; for URP and Volume setup with visual verification use unity-urp-setup.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/editor-ops-checklist.md` and `references/runtime-checklist.md`).

It sits in Game Development, covering Performance optimization. It works with Unity and C#. The repository describes itself as: Rust CLI for Unity Editor automation over Unity TCP protocol. The licence is MIT.

When your agent uses it

  • The user asks to open
  • Close an Editor
  • Run a headless host
  • Wait for readiness

Example prompts

  • “/unity-editor-tools”

Requirements

  • Pre-approved tools (allowed-tools): Bash(unity-cli:*), Read, Grep, Glob

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. If the Editor is stopped, use editor open --project-path --wait-ready 300; then verify connectivity with unity-cli system ping and…
  2. Read state before mutating it: console before clearing, settings before updating, profiler status before start/stop.
  3. Apply one editor-wide change at a time and verify the result immediately.
  4. Capture before/after state when project settings change.

What it can do on your machine

Read from SKILL.md and the folder at commit 7f45d7a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(unity-cli:*)
    • Read
    • Grep
    • Glob

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and csharp).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Unity Editor Tools loads about 2.9k tokens when it runs, and up to ~3.4k if it reads all its reference files. Until then it costs about 133 tokens; SKILL.md has 1,099 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~133
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from akiojin/unity-cli at commit 7f45d7a, republished under its MIT licence (© akiojin). 1,099 words, ~2,905 tokens.

Download SKILL.mdSave it as .claude/skills/unity-editor-tools/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
unity-editor-tools
description
Inspect and control Unity Editor state with unity-cli. Use when the user asks to open or close an Editor, run a headless host, wait for readiness, build a standalone Player, bake lighting, NavMesh or occlusion, poll build/bake jobs, evaluate C#, read console output, update settings, run menus, inspect windows or capture profiler data. Do not use for package operations; use `unity-package-management`. For C# edits use `unity-csharp-edit`; for URP and Volume setup with visual verification use `unity-urp-setup`.
allowed-tools
Bash(unity-cli:*), Read, Grep, Glob
metadata.author
akiojin
metadata.version
0.3.3
metadata.category
editor
metadata.triggers
editor, console, profiler, menu, package, setting
metadata.siblings
unity-audio-setup, unity-localization, unity-urp-setup, unity-ui-toolkit-build, unity-cli-usage, unity-csharp-edit, unity-asset-management…

Editor Tools

With --output json, results use {success, command, data, errors, warnings}. Check the exit status and envelope success first; tool-result fields in this skill are relative to data. Read failure codes from errors[0].code; see unity-cli-usage for exit-code recovery.

Use this skill for editor-wide diagnostics and control: console, project settings, menu items, windows, selection, and profiler. Hand off to a domain skill once the request narrows to scene, asset, package, or code work.

Use When

  • The user asks for editor health checks, console logs, or profiler data.
  • The user wants to launch or close a project's Editor, wait for readiness, or keep a headless Editor running.
  • The user wants a standalone Player build or lighting, NavMesh, NavMeshSurface, or occlusion bake and its job status.
  • The user wants to inspect or change a project setting.
  • The user wants to run a menu item, inspect windows, or manipulate the current selection.
  • The user explicitly wants a short C# expression or synchronous statement evaluated in the Editor.
  • The user wants to expose a project-specific Editor operation as an attributed custom tool.

Do Not Use When

  • Configure AudioClip import, AudioMixer routing and AudioSource playback as one verified workflow: use unity-audio-setup.

  • Configure Locale/String Table assets and verify localized UI text: unity-localization.

  • Build a complete UXML/USS UI Toolkit screen and verify its interactions: use unity-ui-toolkit-build.

  • The work is UPM package discovery/install/update/removal or scoped registries; use unity-package-management.

  • The task is scene creation or prefab editing (rather than a bake job); use unity-scene-create or unity-prefab-workflow.

  • The work is asset import or material edits; use unity-asset-management.

  • The work is a C# refactor; use unity-csharp-edit.

  • The user only needs Play Mode or test execution; use unity-playmode-testing.

Preferred Flow

Start and stop a local Editor
bash
unity-cli editor open --project-path /path/to/project --wait-ready 300
unity-cli editor status --project-path /path/to/project --output json
unity-cli editor close --project-path /path/to/project
# To keep a batch host running:
unity-cli editor open --project-path /path/to/project --headless --wait-ready 300
unity-cli raw get_hierarchy --project-path /path/to/project --json '{}'
unity-cli editor close --project-path /path/to/project

The project needs the Bridge installed. open selects the version in ProjectSettings/ProjectVersion.txt from Unity Hub's default path (or UNITY_EDITOR_PATH). Missing Editor: exit 4; follow the returned unity install <version> instruction. Installation/licensing belong to the official Unity CLI. --wait-ready waits for this project's lockfile and ping; without it, launch returns immediately. A timeout leaves the Editor running. Use status (stopped, starting, compiling, safe_mode, ready) and Logs/unity-cli-editor.log to diagnose startup.

--headless runs -batchmode -nographics with the Bridge enabled and no -quit. close waits for process exit and refuses dirty scenes with UNSAVED_SCENES. Save the scenes first; use close --force only when discarding unsaved changes is intended. Legacy raw quit_editor without force does not provide this guard.

Connected Editor operations
  1. If the Editor is stopped, use editor open --project-path <project> --wait-ready 300; then verify connectivity with unity-cli system ping and get_editor_state.
  2. Read state before mutating it: console before clearing, settings before updating, profiler status before start/stop.
  3. Apply one editor-wide change at a time and verify the result immediately.
  4. Capture before/after state when project settings change.
bash
unity-cli system ping
unity-cli raw get_editor_state --json '{}'
unity-cli raw read_console --json '{"count":20}'
unity-cli raw update_project_settings --json '{"confirmChanges":true,"player":{"companyName":"MyStudio"}}'
unity-cli raw profiler_start --json '{}'
unity-cli raw profiler_stop --json '{}'

Examples

Register a project-local custom tool

Use unity-csharp-edit to create Assets/Editor/ProjectTools.cs in the target project. In an asmdef, reference UnityCliBridge.Editor and restrict it to Editor. The public API is UnityCliBridge.Tools; no CLI release is required.

csharp
using UnityEngine;
using UnityCliBridge.Tools;

public static class ProjectTools
{
    [UnityCliTool("spawn_light", Description = "Create a scene light")]
    public static object SpawnLight([UnityCliArg("Object name")] string name)
    {
        var gameObject = new GameObject(name);
        gameObject.AddComponent<Light>();
        return new { name = gameObject.name };
    }
}

Refresh and wait for compilation before discovery. Use the same project/endpoint for every command. Verify the result through the hierarchy and component details.

bash
unity-cli raw refresh_assets --json '{}'
unity-cli raw get_compilation_state --json '{}'
unity-cli tool list --category custom --output json
unity-cli tool schema spawn_light --output json
unity-cli raw spawn_light --json '{"name":"Sun"}' --output json
unity-cli raw get_hierarchy --json '{}' --output json
unity-cli raw get_gameobject_details --json '{"path":"/Sun","includeComponents":true}' --output json

JSON list items include name, description, params_schema and source: builtin|custom. Extract names with .data[].name, or use tool list --names-only --output json with .data[]. --compact remains a small {name, description} list. Offline listing contains only builtins.

Methods must be public static, synchronous and non-generic. Supported arguments are string/bool/int/long/float/double and enum names; C# defaults make arguments optional. Missing, unknown and mistyped arguments return INVALID_ARGUMENT before invocation. Mutating defaults to true so --dry-run skips the method; set false only for side-effect-free reads. Duplicate/builtin names and unsupported signatures produce a Console warning and are not registered. Inspect read_console if a tool is missing after compilation. Method exceptions return CUSTOM_TOOL_FAILED without stopping the Editor. Do not automatically retry a timed-out method: it may already have run.

Show full SKILL.md (460 more words)Show less
Player build and scene bake jobs

Run from Edit Mode after compilation/import finishes. Save the target scene first. The build target must already be active with its support module installed. Paths refer to the Editor host; use a new/empty output parent outside the project assets. Replace scene/output paths and the returned IDs below with values for your project.

bash
unity-cli raw build_player --json '{"target":"StandaloneOSX","scenes":["Assets/Scenes/Generated/E2E/Level.unity"],"outputPath":"/private/tmp/unity-cli-skill-build/Player.app","development":true}'
unity-cli raw get_build_status --json '{"buildId":"<returned-build-id>"}'
unity-cli raw start_scene_bake --json '{"target":"navmesh-surface","scenePath":"Assets/Scenes/Generated/E2E/Level.unity","surfacePath":"/BakeSurface"}'
unity-cli raw get_scene_bake_status --json '{"jobId":"<returned-job-id>"}'

For Windows use StandaloneWindows64 and an .exe output. Poll get_build_status until state is succeeded, failed, or interrupted; only succeeded is a pass. Inspect the report, artifacts and changedProjectSettings on completion. Output ancestors must not be symbolic links; on macOS use /private/tmp, not /tmp.

Bake targets are lighting, navmesh-legacy, navmesh-surface, and occlusion. Load only the target scene and close prefab/asset previews before baking (a preview scene also triggers MULTIPLE_SCENES). Use its saved path and contributing geometry. Lighting needs lightmap static geometry and a baked light; occlusion needs occluder geometry. navmesh-surface additionally needs AI Navigation and a NavMeshSurface at surfacePath. Omit surfacePath for other targets. Poll get_scene_bake_status until status is succeeded or failed, then check saved artifacts and verification. An accepted start is not completion; never start duplicate jobs while polling.

Evaluate a short C# snippet
bash
unity-cli editor eval '1+2' --request-id sum --output json
unity-cli editor eval 'var go = new GameObject("Probe"); return go;' --mode statements --request-id create-probe --output json
unity-cli editor eval-status create-probe --output json
unity-cli editor eval-stats --output json

Inspect state: only completed means execution and value conversion succeeded. compile_error, runtime_error, and serialization_error are distinct failures. Primitive JSON values preserve their types; Unity objects return reference descriptors. Evaluation supports Edit/Play Mode, implicit System/UnityEngine/UnityEditor namespaces, and loaded assembly references. Async/await and persistent REPL sessions are unsupported. Use dedicated tools when they cover the operation; eval does not require a persistent .cs file or MenuItem. File edits still belong to unity-csharp-edit.

A timeout only stops waiting; it does not stop code or undo changes. Query the same request ID with eval-status; never automatically resend with a new ID. Identical input under a stored ID reuses the result. Domain Reload loses results, so unknown requires inspecting actual state before deciding whether to execute again. Long-running synchronous code also blocks status responses. The newest 256 request IDs are kept; older IDs read as unknown.

Eval is fast when warm: identical code reuses its compiled assembly (the code still runs on every call) and costs about one ordinary command; new source adds one compile; the first call after a Domain Reload is the slowest. To repeat an operation, resend the same code instead of generating a new string per call. Each distinct source emits one assembly, and after 128 per domain new source returns reload_required (already compiled source keeps running); eval never reloads automatically. editor eval-stats shows the domain's emitted-assembly, cache and memory counters.

  • "Show me the latest Unity console errors."
  • "Update the company name in Project Settings."
  • "Start the profiler, record briefly, stop, and report the status."

References

© akiojin, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in .claude-plugin/plugins/unity-cli/skills/unity-editor-tools of akiojin/unity-cli.

  • SKILL.md
  • references/editor-ops-checklist.md
  • references/runtime-checklist.md

Open the folder on GitHubat commit 7f45d7a

Compare with similar skills

Unity Editor Tools next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Unity Editor Tools compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Unity Editor Tools this skillakiojin/unity-cli107—~2.9kAutomated safety check: PassMIT
Locus Unity BridgeMisaka-Mikoto-Tech/agent-skills275—~4kAutomated safety check: PassMIT
Unity PluginTomLeeLive/openclaw-unity-plugin106—~5.1kAutomated safety check: PassApache-2.0
Unity Version SplitIvanMurzak/Unity-MCP4.4k—~1.1kAutomated safety check: PassApache-2.0
Game DeveloperJeffallan/claude-skills12k—~1.5kAutomated safety check: PassMIT
Uloop Compile Checkhatayama/unity-cli-loop576—~1.4kAutomated safety check: PassMIT

Similar skills

  • Locus Unity Bridge

    Misaka-Mikoto-Tech/agent-skills

    A skill your agent uses when an agent needs to inspect or control a real Unity Editor through Locus, especially when Unity MCP is unavailable, named-pipe discovery is needed, C must be executed, or…

    275 GitHub stars~4k tokensUpdated 16 days ago
    Game DevelopmentAuto-check passed
  • Unity Plugin

    TomLeeLive/openclaw-unity-plugin

    Control Unity Editor via OpenClaw Unity Plugin. An agent skill from TomLeeLive/openclaw-unity-plugin.

    106 GitHub stars~5.1k tokensUpdated 28 days ago
    Game DevelopmentAuto-check passed
  • Unity Version Split

    IvanMurzak/Unity-MCP

    Split a C file into Unity 6.5+ and pre-Unity 6.5 variants. An agent skill from IvanMurzak/Unity-MCP.

    4.4k GitHub stars~1.1k tokensUpdated 3 days ago
    Game DevelopmentAuto-check passed
  • Game Developer

    Jeffallan/claude-skills

    Covers game programming in Unity and Unreal Engine: ECS design, physics, multiplayer networking, shaders and profiling toward a 60 FPS target.

    12k GitHub stars~1.5k tokensUpdated 4 days ago
    Game DevelopmentAuto-check passed
  • Uloop Compile Check

    hatayama/unity-cli-loop

    Compile C with the Unity-bundled Roslyn compiler without launching or contacting the Unity Editor; reports errors and warnings only.

    576 GitHub stars~1.4k tokensUpdated today
    Game DevelopmentAuto-check passed
  • Unity Quickstart

    Nethereum/Nethereum

    Integrate Ethereum into Unity games using Nethereum with async Web3 API, WebGL wallet support via EIP-6963 multi-wallet discovery and MetaMask (.NET/C).

    2.3k GitHub stars~1.6k tokensUpdated 2 days ago
    Game DevelopmentAuto-check passed

More from akiojin/unity-cli

All 28 skills in this repo
  • Gh PR

    akiojin/unity-cli

    Create or update GitHub Pull Requests with the gh CLI, including deciding whether to create a new PR or only push based on existing PR merge status.

    107 GitHub stars~2.7k tokensUpdated 2 days ago
    Auto-check passed
  • Gh Skills Sync

    akiojin/unity-cli

    Sync the gh- automation skills from the upstream skills repository into Codex and project skill directories.

    107 GitHub stars~680 tokensUpdated 2 days ago
    Auto-check: notes
  • Unity 2D Sprite Tilemap

    akiojin/unity-cli

    Build and verify a 2D sprite and Tilemap scene with unity-cli.

    107 GitHub stars~1.6k tokensUpdated 2 days ago
    Auto-check passed
  • Unity Addressables

    akiojin/unity-cli

    Manage Unity Addressables groups and content with unity-cli.

    107 GitHub stars~700 tokensUpdated 2 days ago
    Auto-check passed
  • Unity Asset Management

    akiojin/unity-cli

    Manage Unity assets and import metadata with unity-cli. An agent skill from akiojin/unity-cli.

    107 GitHub stars~1.8k tokensUpdated 2 days ago
    Auto-check passed
  • Unity Audio Setup

    akiojin/unity-cli

    Configure Unity audio with unity-cli. An agent skill from akiojin/unity-cli.

    107 GitHub stars~1.4k tokensUpdated 2 days ago
    Auto-check passed

Works with

Questions about Unity Editor Tools

What does Unity Editor Tools do?

Inspect and control Unity Editor state with unity-cli. An agent skill from akiojin/unity-cli. Unity Editor Tools is an agent skill from akiojin/unity-cli. Inspect and control Unity Editor state with unity-cli.

When should I use Unity Editor Tools?

Unity Editor Tools fits situations like: the user asks to open; close an Editor; run a headless host; wait for readiness.

How do I install Unity Editor Tools in Claude Code?

Run `npx skills add akiojin/unity-cli --skill unity-editor-tools -a claude-code`. Or copy the skill folder (.claude-plugin/plugins/unity-cli/skills/unity-editor-tools in akiojin/unity-cli) into .claude/skills/unity-editor-tools in your project. Claude Code loads it when a task matches its description.

How do I install Unity Editor Tools in Codex?

Run `npx skills add akiojin/unity-cli --skill unity-editor-tools -a codex`. Or copy the skill folder (.claude-plugin/plugins/unity-cli/skills/unity-editor-tools in akiojin/unity-cli) into .agents/skills/unity-editor-tools in your project. Codex loads it when a task matches its description.

Can I use Unity Editor Tools in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add akiojin/unity-cli --skill unity-editor-tools -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/unity-editor-tools, .gemini/skills/unity-editor-tools, .github/skills/unity-editor-tools and .opencode/skills/unity-editor-tools in your project.

What does Unity Editor Tools need to run?

SKILL.md names no scripts, command-line tools or credentials: Unity Editor Tools is instructions for the agent only. Its frontmatter pre-approves these tools: Bash(unity-cli:*), Read, Grep, Glob.

Does Unity Editor Tools access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Unity Editor Tools safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Unity Editor Tools use?

Unity Editor Tools is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Unity Editor Tools use?

About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 479 tokens, read only when the agent opens those files.

What are the alternatives to Unity Editor Tools?

Skills that share tags, products or a category with Unity Editor Tools: Locus Unity Bridge (Misaka-Mikoto-Tech/agent-skills, 275 stars), Unity Plugin (TomLeeLive/openclaw-unity-plugin, 106 stars), Unity Version Split (IvanMurzak/Unity-MCP, 4.4k stars) and Game Developer (Jeffallan/claude-skills, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Unity Editor Tools?

akiojin (a GitHub user) maintains it in akiojin/unity-cli, which has 107 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 5, 2026.

Source: akiojin/unity-cli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.