misaka-mikoto-tech/locus-unity-bridge
Use when an agent needs to inspect or control a real Unity Editor through Locus, especially when Unity MCP is unavailable, a project may lack the Locus package, named-pipe discovery is needed, C# must be executed, or Unity scripts must be recompiled.
npx skills add https://github.com/Misaka-Mikoto-Tech/agent-skills --skill locus-unity-bridge
Use the bundled PowerShell client instead of rewriting named-pipe code. Locus
uses UTF-8 JSON Lines and may emit events before a response; the client waits
for the envelope whose reply_to matches its request ID.
execute_code has arbitrary Unity Editor authority. Use it only for the
project and task the user authorized.
Do not install/copy the Locus package, create its marker, launch/close Unity,
or modify a project merely to make the bridge connect. Diagnose first and ask
for authorization if setup changes are required.
$locusBridge = Join-Path $env:USERPROFILE '.agents\skills\locus-unity-bridge\scripts\locus-unity.ps1'
& pwsh.exe -NoLogo -NoProfile -NonInteractive -File $locusBridge `
-Command probe -ProjectPath 'E:\Source\SomeUnityProject'
Status:| Status | Meaning and next action |
|---|---|
| connected | Use execute, send, or recompile. |
| package_missing | Locus is not installed. Report the expected package Packages/com.farlocus.locus; request permission before installation. |
| package_invalid | A candidate folder exists without Editor/Locus.Editor.asmdef; report the incomplete path. |
| bridge_not_enabled | Package exists, but no marker or reachable computed pipe exists. Ask the user to enable/connect Locus for this project. |
| editor_unreachable | A marker exists, but its pipe is unavailable. Verify that the matching project is open in Unity and Locus is active. |
The probe supports the canonical package plus legacy Assets/Locus and
Assets/Plugins/Locus layouts. It also handles
LOCUS_UNITY_NATIVE_BRIDGE=1, where no marker may exist but the computed pipe
is live.
Execute multi-line C# from a file. Use print(...) or printJson(...) to
return data:
& pwsh.exe -NoLogo -NoProfile -NonInteractive -File $locusBridge `
-Command execute -ProjectPath 'E:\Source\SomeUnityProject' `
-CodeFile 'C:\Temp\inspect-scene.cs' -TimeoutSeconds 30
Example snippet:
print(UnityEngine.SceneManagement.SceneManager.GetActiveScene().path);
Send a protocol message:
& pwsh.exe -NoLogo -NoProfile -NonInteractive -File $locusBridge `
-Command send -ProjectPath 'E:\Source\SomeUnityProject' `
-MessageType status -Message ''
Request compilation and wait across domain reload:
& pwsh.exe -NoLogo -NoProfile -NonInteractive -File $locusBridge `
-Command recompile -ProjectPath 'E:\Source\SomeUnityProject' `
-TimeoutSeconds 10 -RecompileTimeoutSeconds 120
All successful commands print JSON. A failed transport or Unity response exits
nonzero and preserves the useful error text.
unity-editor-update events have no matching reply_to.
is elsewhere.
probe.
Take misaka-mikoto-tech/locus-unity-bridge from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.