unity-agentic-tools
Use for Unity project automation via the unity-agentic-tools CLI and live Editor bridge: discover and run Unity commands (list/run/stream), install or troubleshoot the bridge, create/update/delete GameObjects, components, scenes, prefabs, and assets, query hierarchies and UI, run Play Mode tests, capture screenshots, and read console logs. Triggers: Unity Editor automation, scene or prefab edits, 'run Unity tests', 'check the Unity console', 'screenshot the game view'. Not for writing C# gameplay scripts or shaders; not for raw edits to .unity/.prefab/.asset YAML unless the user explicitly asks for raw file work.
The English summary is being prepared. Showing the original description.
Run score Not tested
See how to installFiles included (5)
- SKILL.md6.8 KB
- reference/command-reference.md10.6 KB
- reference/live-editor-workflows.md4.8 KB
- reference/troubleshooting.md6.8 KB
- scripts/check-setup.mjs4.4 KB
SKILL.md (original)
Review the instructions the agent will receive before you install.
Unity Agentic Tools
Use this skill for Unity Agentic Tools CLI setup, command discovery, command execution, live Editor bridge workflows, and high-level project automation.
CRITICAL: Use the CLI command runner for Unity operations. Do not manually mutate Unity serialized files (.unity, .prefab, .asset, .mat, .anim, .controller, .meta, ProjectSettings/) unless the user explicitly asks for raw file work.
Command Surface
| Command | What it does |
|---|---|
list [query] | Discover built-in aliases, attributed project commands, and optional raw static APIs. --brief omits per-argument detail; --raw adds raw statics |
run <target> [args...] | Execute a command alias through the Unity bridge, or a raw public static C# method/property with --raw |
stream [topic] | Watch real-time bridge events over WebSocket |
install | Install the Unity bridge package |
uninstall | Remove the Unity bridge package |
cleanup | Remove stale bridge state or rebuildable .unity-agentic caches |
status | Check command runner and bridge reachability, plus a readiness block saying what the Editor is busy with |
Commands emit compact single-line JSON by default; pass --pretty for indented output. Prefer list <query> --brief for discovery.
By default, install writes the GitHub package URL. For local bridge package development, use install --local [path]; existing file: dependencies are preserved unless install --remote is passed.
Default Route
unity-agentic-tools status -p <project>unity-agentic-tools list <query> --brief -p <project>- Inspect current state with
query.*,scene.hierarchy,ui.snapshot, or screenshots. unity-agentic-tools run <target> ... -p <project>- Verify with the matching query, snapshot, screenshot, tests, or console stream.
Workflow Rules
- Author in edit mode against asset paths. Scene edits made in play mode are discarded on exit.
- Verify structure with
query.objectorscene.hierarchy, not play mode or screenshots. Screenshots are for visual layout; takeui.snapshotfirst and reservescreenshot.annotatedfor when element geometry matters. - Play mode is for behavior. Each transition is a domain reload, so batch authoring before
play.enter, run queries after, and never interleave authoring with transitions. - Prefer
tests.runfor behavior checks over manually drivinginput.*and reading screenshots. - Never sleep-and-repoll:
wait.forblocks on the condition (ui, ui-gone, scene, log, compile, delay) in one call, andrun --batchexecutes a command sequence in one process. - Skip
project.refreshafter bridge mutations; they import their own changes. It is only needed after files change outside the bridge.
Examples
unity-agentic-tools list scene --brief -p <project>
unity-agentic-tools run project.refresh -p <project>
unity-agentic-tools run query.scene Assets/Scenes/Main.unity -p <project>
unity-agentic-tools run create.gameobject Assets/Scenes/Main.unity EnemyRoot Gameplay -p <project>
unity-agentic-tools run update.transform Assets/Scenes/Main.unity Player 1,2,3 0,90,0 1,1,1 -p <project>
unity-agentic-tools stream console --type Error -p <project>
unity-agentic-tools cleanup --cache -p <project>
Pass a structured argument positionally in single quotes — the CLI encodes the outer JSON array itself, so no escaping is needed. Reserve --args '<json array>' for arguments starting with -. See reference/troubleshooting.md "JSON Args".
unity-agentic-tools run update.batch Assets/Scenes/Main.unity '[{"gameObjectPath":"Player","propertyPath":"m_Name","value":"Hero"}]' -p <project>
Raw public static APIs can be called directly when no alias or [AgenticCommand] wrapper exists.
unity-agentic-tools run UnityEditor.AssetDatabase.Refresh -p <project>
unity-agentic-tools run UnityEditor.EditorApplication.ExecuteMenuItem "File/Save" -p <project>
Project Commands
Do not add a new CLI command for each Unity operation. Expose project-specific behavior by adding [AgenticCommand] to public static methods/properties in Unity Editor C#:
using UnityAgenticTools.Commands;
public static class BuildCommands
{
[AgenticCommand("build.addressables", "Build Addressables content.")]
public static object BuildAddressables(string profile)
{
return new { success = true, profile };
}
}
Then use:
unity-agentic-tools list build --brief -p <project>
unity-agentic-tools run build.addressables Production -p <project>
References
reference/live-editor-workflows.md: live Editor setup, mutation, UI, and batch workflowsreference/command-reference.md: generated alias reference with arg hints (<required>[optional])reference/troubleshooting.md: bridge, timeouts, refs, JSON args, and verification
Troubleshooting
Full detail lives in reference/troubleshooting.md. Quick pointers:
- Bridge won't connect: see "Bridge Not Reachable" (install, open Unity, wait for compile, status, cleanup).
reachable: truewithis_stable: falsemeans busy, not broken. - Long builds time out:
rundefaults to 60s; see "Long-running Commands" (--timeout 1200000,--no-wait). - Play mode looks wrong right after
play.enter: the response reports the current state, not the requested one. Pollplay.state; see "Play Mode Transitions" inreference/live-editor-workflows.md. - Recognized built-in reads are slow during a transition: expected. Those reads wait out a domain reload for up to 30s instead of failing; project commands and most raw getters use conservative command semantics. See "Domain reloads" in "Long-running Commands".
- Stale
@hN/@uNrefs: re-runscene.hierarchyorui.snapshot; see "Stale Refs". - Need console logs:
unity-agentic-tools stream console --duration 5000 -p <project>. - Need raw APIs:
unity-agentic-tools list <type-or-namespace> --raw -p <project>to find one, thenrun <target> --rawto invoke it.runrefuses an unregistered target without--rawand logs a warning in the Unity console when it accepts one. Prefer a registered alias whenever one exists.
Reviews
No reviews yet. Tell others what you thought.
Comments
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.