unity-shared

Shared rules for working with Unity Editor instances through the Unity command-line relay.

In plain words
What is it for?
Use it to select and inspect a Unity instance, clear logs, refresh assets, wait for compilation, and read errors or warnings.
Why use it?
They prevent commands from being sent to the wrong Unity project and define the standard post-change verification sequence.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/bigdra50/unity-cli/unity-shared
Any agent
npx skills add bigdra50/unity-cli --skill unity-shared
Clone the repo
git clone --depth 1 https://github.com/bigdra50/unity-cli

Made for: Claude Code, Codex.

Per session 44 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,062 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00044 $0.01062
Opus 5 $0.00022 $0.00531
Sonnet 5 $0.00009 $0.00212
Haiku 4.5 $0.00004 $0.00106

Measured yesterday against content hash d93432e7d343, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

unity-shared scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/unity-shared/SKILL.md · 94 lines

What it actually says

unity-shared

全 unity-* スキルが従う共通ルール。

インスタンス指定 (必須)

unity-* スキル経由で u コマンドを呼ぶ際は 必ず -i <instance> を付ける。default インスタンスに依存しない。

u -i <instance> refresh    # OK
u refresh                  # NG (skill 経由では使わない)

<instance> はユーザーから渡される or 親セッションが指定する値で置き換える。u instances で接続中 Unity 一覧を確認できる。本ドキュメント以下のサンプルでは <instance> をそのまま使うが、実行時は具体名 (例: TestProject) に置換する。

理由: 複数 Unity 接続環境で誤ったインスタンスへコマンドを送るリスクと、subagent 間の挙動を default 依存にしないため。

接続確認

u instances             # 接続中 Unity 一覧
u -i <instance> state   # 特定エディタの状態

接続不可時: unity-relay --port 6500 で Relay 起動。

Quick Verify

コード変更後に毎回実行する検証シーケンス。順序厳守 (clear は refresh のに置く。後にすると refresh の診断ログを消してしまう)。

# 1. 既存ログをクリア (refresh の診断を残すため refresh の前)
u -i <instance> console clear

# 2. AssetDatabase リフレッシュ (コンパイルトリガー)
u -i <instance> refresh

# 3. isCompiling が false になるまでポーリング (2秒間隔, 最大30秒)
for _ in $(seq 1 15); do
  u -i <instance> state --json | jq -e '.isCompiling == false' >/dev/null && break
  sleep 2
done

# 4. Error/Warning 取得 (--count は deprecated. head -N を使う)
u -i <instance> console get -l E,W | head -50

u state --json の出力例 (抜粋, キーはトップレベル):

{"isCompiling": false, "isPlaying": false, "isPaused": false}
  • Error あり → 修正して再実行 (最大3回)
  • Warning のみ → 報告して続行

注記: 空 (0 行) は「クリーン」だが「Warning が無い」とは限らない

Unity はインクリメンタルコンパイルのため、ソース未変更で refresh を呼んでも再コンパイルは走らず、過去の Warning は再出力されない。console clear 後に空が返っても以下のいずれかを意味する:

  1. ソース変更があり再コンパイルが走り、エラー/警告がない (本当のクリーン)
  2. ソース未変更で再コンパイルがスキップされ、過去の警告が出力されないだけ

直前にソース編集があった文脈なら「クリーン」扱いで OK。過去の警告を確実に確認したい場合は対象ファイルの touch (touch Assets/.../Foo.cs) で mtime を更新してから refresh するか、Library/ScriptAssemblies/ をクリアする。

フォールバック順

CLI 非対応の操作を行う場合:

1. u -i <instance> <既存コマンド>           最優先
2. u -i <instance> api call Type Method    5,243 メソッド対応
3. YAML 直接編集                            最終手段 (.meta インポート設定等)

セキュリティ

  • u api call は UnityEngine / UnityEditor のみ許可
  • 破壊的操作の実行前にユーザー確認
Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 94 lines · 44 tokens per session scan A d93432e7d343

Subscribe to this mod's changes

unity-shared is a skill published in the GitHub repository bigdra50/unity-cli (39 stars, last pushed 2mo ago), licensed MIT. It adds 44 tokens to every session and 1,062 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

unity

Compile, test, and drive Unity for this repo's C# packages (unity/core, jint, quickjs, clearscript) and the two Unity projects (tests/, kitchen-sink/). Use when a change touches C# under unity/, when Unity test results are needed, when a rendering snapshot has to be checked or regenerated, or when the app has to be…

ReactUnity/core · 108 tokens

uloop-execute-dynamic-code

Execute C# with Unity APIs when existing uloop tools cannot inspect or edit enough. Use for reachable scene/component state, scene/prefab/menu automation, and PlayMode checks.

hatayama/unity-cli-loop · 43 tokens

uloop-simulate-mouse-input

Simulate Mouse.current input in PlayMode through Unity Input System. Use for gameplay mouse clicks, long-press (LongPress), movement delta (MoveDelta/SmoothDelta), or scroll. Use --dry-run to check what a Game View coordinate hits in 3D physics before clicking (works in EditMode; no Input System required). Use…

hatayama/unity-cli-loop · 113 tokens

uloop-pause-point

Pauses Unity playback at any source file:line without editing code or recompiling, and returns a snapshot of the locals, parameters, and instance fields at that exact frame. Use for bug investigation, PlayMode/E2E verification, checking variable values at a specific frame, or confirming that a code path executed.

hatayama/unity-cli-loop · 69 tokens

uloop-screenshot

Capture Unity Editor windows or Game View rendering as PNG. Use for visual checks, debugging, documentation, or annotated UI element coordinates.

hatayama/unity-cli-loop · 31 tokens

uloop-simulate-keyboard

Simulate keyboard input in PlayMode through Unity Input System. Use for key presses, holds (via Press --duration or KeyDown/KeyUp), releases, and game controls such as WASD or Space. Requires the Input System package (com.unity.inputsystem).

hatayama/unity-cli-loop · 62 tokens