Uloop Execute Dynamic Code
CyberAgentGameEntertainment/NovaShader
Execute C with Unity APIs when existing uloop tools cannot inspect or edit enough.
Apply C edits to the running Editor without a compile or domain reload, keeping Play Mode state.
$ npx skills add hatayama/unity-cli-loop --skill uloop-hot-reload -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hatayama/unity-cli-loop uloop-hot-reload --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/hatayama/unity-cli-loop.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/uloop-hot-reload .claude/skills/uloop-hot-reload && rm -rf skills-srcUse ~/.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/
Install the "uloop-hot-reload" agent skill from https://github.com/hatayama/unity-cli-loop/tree/main/.agents/skills/uloop-hot-reload into .claude/skills/uloop-hot-reload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uloop-hot-reload", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hatayama/unity-cli-loop/tree/main/.agents/skills/uloop-hot-reloadType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hatayama/unity-cli-loop --skill uloop-hot-reload -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hatayama/unity-cli-loop uloop-hot-reload --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hatayama/unity-cli-loop.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/uloop-hot-reload .agents/skills/uloop-hot-reload && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "uloop-hot-reload" agent skill from https://github.com/hatayama/unity-cli-loop/tree/main/.agents/skills/uloop-hot-reload into .agents/skills/uloop-hot-reload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uloop-hot-reload", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hatayama/unity-cli-loop --skill uloop-hot-reload -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hatayama/unity-cli-loop uloop-hot-reload --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hatayama/unity-cli-loop.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/uloop-hot-reload .cursor/skills/uloop-hot-reload && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "uloop-hot-reload" agent skill from https://github.com/hatayama/unity-cli-loop/tree/main/.agents/skills/uloop-hot-reload into .cursor/skills/uloop-hot-reload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uloop-hot-reload", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hatayama/unity-cli-loop.git --path .agents/skills/uloop-hot-reload--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hatayama/unity-cli-loop --skill uloop-hot-reload -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hatayama/unity-cli-loop uloop-hot-reload --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hatayama/unity-cli-loop.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/uloop-hot-reload .gemini/skills/uloop-hot-reload && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "uloop-hot-reload" agent skill from https://github.com/hatayama/unity-cli-loop/tree/main/.agents/skills/uloop-hot-reload into .gemini/skills/uloop-hot-reload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uloop-hot-reload", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hatayama/unity-cli-loop uloop-hot-reloadInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hatayama/unity-cli-loop --skill uloop-hot-reload -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hatayama/unity-cli-loop.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/uloop-hot-reload .github/skills/uloop-hot-reload && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "uloop-hot-reload" agent skill from https://github.com/hatayama/unity-cli-loop/tree/main/.agents/skills/uloop-hot-reload into .github/skills/uloop-hot-reload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uloop-hot-reload", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hatayama/unity-cli-loop --skill uloop-hot-reload -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hatayama/unity-cli-loop uloop-hot-reload --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hatayama/unity-cli-loop.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/uloop-hot-reload .opencode/skills/uloop-hot-reload && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "uloop-hot-reload" agent skill from https://github.com/hatayama/unity-cli-loop/tree/main/.agents/skills/uloop-hot-reload into .opencode/skills/uloop-hot-reload/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "uloop-hot-reload", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
uloop-hot-reloadApply C edits to the running Editor without a compile or domain reload, keeping Play Mode state.
Uloop Hot Reload is an agent skill from hatayama/unity-cli-loop. Apply C edits to the running Editor without a compile or domain reload, keeping Play Mode state. Use instead of compile after editing method bodies or adding methods, fields, or new classes.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including reference files (for example `references/added-field-wiring.md`, `references/introduced-types.md` and `references/mechanism-and-lifecycle.md`).
It sits in Game Development. It works with C#. The repository describes itself as: Let AI Drive Unity, from Editor to Play Mode. The licence is MIT.
Read from SKILL.md and the folder at commit a6cb372. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Uloop Hot Reload loads about 2k tokens when it runs, and up to ~30k if it reads all its reference files. Until then it costs about 52 tokens; SKILL.md has 1,057 words of instructions outside code blocks.
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.
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.
The full file from hatayama/unity-cli-loop at commit a6cb372, republished under its MIT licence (© hatayama). 1,057 words, ~1,980 tokens.
.claude/skills/uloop-hot-reload/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.Replaces method bodies in the running Editor (EditMode or PlayMode) directly from edited
project source files — no domain reload, no attributes, no source markers. Private/internal
member access, static methods, return values, async methods, and iterators all work within
the limits below, including private access inside async, iterator, lambda, local-function,
and LINQ-query bodies. Methods that cannot be patched are reported as Skipped or Failed;
one unpatchable method never aborts the rest of the run.
Outcome says whether the edit is live (ReplacedByCompile: a fallback compile succeeded, so
it is compiled in and no patch is active).
uloop hot-reload --files Assets/Scripts/Enemy.cs
uloop hot-reload --files Assets/Scripts/Enemy.cs,Assets/Scripts/Boss.cs
uloop hot-reload
uloop hot-reload --files Assets/Scripts/Enemy.cs --compile-on-skip off
uloop hot-reload --revert-allMultiple files are one comma-separated value (or a JSON array); array options consume exactly one value token.
A script under a brand-new .asmdef cannot be hot-reloaded before its first import: Unity
has not created that assembly yet. Run uloop compile once, then iterate with hot reload.
A new file under an existing .asmdef can be hot-reloaded, but it is never selected
automatically — pass it with --files.
| Parameter | Type | Default | Description |
|---|---|---|---|
--files | array | - | Project-relative .cs paths to hot-reload (method bodies, added members, and new top-level types). When omitted or empty on apply, selects compiled snapshot sources only — those whose bytes changed since the last compile snapshot, capped at 50 changed files per assembly with a warning when the cap trims the list; a file that has never been compiled is never selected and must be passed explicitly, except an introduced type's file after Play Mode entry or --revert-all, which is selected again; run uloop compile first when no snapshot exists, or pass explicit paths when no changed source is found |
--revert-all | flag | - | Remove every active hot-reload patch and added member and clear the ledger; introduced types stay loaded until the next domain reload. When set, --files is ignored |
--status | flag | - | Lists the currently active changes (patched methods, added members, and introduced types) without applying or reverting anything. |
--compile-on-skip | enum | auto | When edits stay unapplied (Skipped/Failed methods, Failed types; a re-bound sibling's Skipped rows aside), run uloop compile in this command: auto only in Edit Mode (never stops a Play session), on always unless Unity holds compiles until Play ends, off never. The response's CompileFallback says which; when the compile ran, Compile carries its result and Success is the compile's. |
uloop hot-reload --status lists the currently active changes; it cannot be combined with
--files or --revert-all. Every change is static Editor state, so after a domain reload
it reports zero. Each Active/Added row's InvocationCount counts calls
into its body since it was applied — a reachability signal only while the code is
being driven.
The edited files are grouped by the compiled assembly they belong to. Per group an
out-of-process Roslyn worker rewrites every editable body into a static shim, the shims
compile into one shim assembly and load into the Editor domain, and each original method is
patched with a Harmony transpiler. Because a group shares one shim assembly, a body edited in
one file can call a member added in another edited file of the same assembly. Re-running after
a real edit replaces the patch; an unchanged file reports AlreadyActive and changes nothing
unless a sibling of the same assembly is in the reload, in which case it is re-applied so every
active patch binds to the newest shim. With a compile-time baseline only bodies that actually
changed are patched (UnchangedTotal counts the rest).
Added rows
(supported field-like events of a class are listed in AddedFields),
visible to edited code of the same reload within the same assembly (pass the declaring
file and its callers together), and gone on any compile or domain reload.IntroducedTypes; other valid shapes are
refused with a Warnings line naming the reason. Use from another assembly or from files
outside the reload, reflection, serialization, and Unity message discovery still need
uloop compile.Skipped unless this or an earlier reload
patched every live compiled caller, none in another assembly; a rename or parameter change
applies as an added method and warns about call sites left on the old signature.Skipped; finalizers and interface members are silently not applied.Failed method leaves that file unapplied,
a Failed type leaves every file of its assembly unapplied.Treat hot reload as the exploration phase and uloop compile as the landing phase:
keep edits inside the edited files, collect structural changes, and compile once —
every compile drops all patches and pause points and resets the PlayMode session (the compile response's Warning says how many).
While hot-reload changes are active, AutoRefreshHeld is true so returning focus does not
recompile; uloop compile releases the hold, and --revert-all only when no introduced type
remains.
One-shot methods (Awake, Start, init helpers) patch but show no effect on the call that
already ran; the response marks them with LifecycleNote. To re-run an edited compiled
OnEnable, set enabled = false with execute-dynamic-code, reload, then set it back to true
(Unity calls the old OnDisable, then the patched OnEnable). An edited OnDisable runs the
next time the component is disabled; to run it now, toggle enabled after the reload.
To tune a value while playing, expose a static property getter instead of a const; its
body is patched on compiled and introduced types alike.
All files live in references/ beside this skill; read the one whose trigger matches:
references/scope-and-limits.md — full scope rules: added members, signature changes, Skipped/Failed tables, source baselines, one-shot code, tunable getters.references/mechanism-and-lifecycle.md — patch mechanism, convergence, what survives which reload, Editor-code iteration without PlayMode.references/troubleshooting.md — Patched but no behavior change, JIT inlining, --status, stack frames without lines.references/pause-point-interaction.md — how patches re-target or suppress armed pause points; one-way reachability checks.references/introduced-types.md — types a reload can introduce: supported shapes, internal access, refusal wording, identity and lifetime, why a new file is never selected automatically.references/added-field-wiring.md — putting a value into an added field without a compile.references/output.md — "Is my edit live?" (Outcome), Timing, every response field: ErrorCode, NextActions, Methods rows, Warnings, totals.© hatayama, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 7 other files (references) in .agents/skills/uloop-hot-reload of hatayama/unity-cli-loop.
Open the folder on GitHubat commit a6cb372
Uloop Hot Reload 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Uloop Hot Reload this skillhatayama/unity-cli-loop | 578 | — | ~2k | Automated safety check: Pass | MIT | |
| Uloop Execute Dynamic CodeCyberAgentGameEntertainment/NovaShader | 1.6k | 1 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Locus Unity BridgeMisaka-Mikoto-Tech/agent-skills | 278 | — | ~4k | Automated safety check: Pass | MIT | |
| Gameobject Component List AllIvanMurzak/Unity-MCP | 4.4k | — | ~846 | Automated safety check: Pass | Apache-2.0 | |
| Validate GsdkPlayFab/gsdk | 170 | — | ~645 | Automated safety check: Pass | Apache-2.0 | |
| Aibridge Development WorkflowFlameskyDexive/Legends-Of-Heroes | 928 | — | ~790 | Automated safety check: Pass | MIT |
CyberAgentGameEntertainment/NovaShader
Execute C with Unity APIs when existing uloop tools cannot inspect or edit enough.
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…
IvanMurzak/Unity-MCP
List the fully-qualified C type names of every concrete UnityEngine.Component subclass available in the project.
PlayFab/gsdk
Validates PlayFab Game Server SDK (GSDK) integrations in game server projects.
FlameskyDexive/Legends-Of-Heroes
AIBridge/Unity 项目的标准开发工作流。Use when creating, modifying, fixing, refactoring, or validating C code, Unity assets, prefabs, editor tools, package structure, tests, AGENTS.md, or local Skills.
TomLeeLive/openclaw-unity-plugin
Control Unity Editor via OpenClaw Unity Plugin. An agent skill from TomLeeLive/openclaw-unity-plugin.
hatayama/unity-cli-loop
Breakpoint-like: pause Unity at a source file:line without editing code or recompiling, and get the locals, parameters, and fields there.
hatayama/unity-cli-loop
Record the Game View or any Editor window (Scene, Inspector, ...) to an .mp4 or .webm video.
hatayama/unity-cli-loop
Migrate only uloop V2 CLI option syntax in agent skills, Markdown, POSIX shell scripts, and PowerShell scripts to V3 syntax.
hatayama/unity-cli-loop
Get Unity project information via uloop CLI. An agent skill from hatayama/unity-cli-loop.
hatayama/unity-cli-loop
Sample uloop hello-world tool. An agent skill from hatayama/unity-cli-loop.
hatayama/unity-cli-loop
Compile the Unity project and report errors/warnings. An agent skill from hatayama/unity-cli-loop.
Works with
Categories
Apply C edits to the running Editor without a compile or domain reload, keeping Play Mode state. Uloop Hot Reload is an agent skill from hatayama/unity-cli-loop. Apply C edits to the running Editor without a compile or domain reload, keeping Play Mode state.
Uloop Hot Reload fits situations like: game Development work in your project.
Run `npx skills add hatayama/unity-cli-loop --skill uloop-hot-reload -a claude-code`. Or copy the skill folder (.agents/skills/uloop-hot-reload in hatayama/unity-cli-loop) into .claude/skills/uloop-hot-reload in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hatayama/unity-cli-loop --skill uloop-hot-reload -a codex`. Or copy the skill folder (.agents/skills/uloop-hot-reload in hatayama/unity-cli-loop) into .agents/skills/uloop-hot-reload in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hatayama/unity-cli-loop --skill uloop-hot-reload -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/uloop-hot-reload, .gemini/skills/uloop-hot-reload, .github/skills/uloop-hot-reload and .opencode/skills/uloop-hot-reload in your project.
SKILL.md names no scripts, command-line tools or credentials: Uloop Hot Reload is instructions for the agent only.
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.
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.
Uloop Hot Reload is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.9k 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 28k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Uloop Hot Reload: Uloop Execute Dynamic Code (CyberAgentGameEntertainment/NovaShader, 1.6k stars), Locus Unity Bridge (Misaka-Mikoto-Tech/agent-skills, 278 stars), Gameobject Component List All (IvanMurzak/Unity-MCP, 4.4k stars) and Validate Gsdk (PlayFab/gsdk, 170 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hatayama (a GitHub user) maintains it in hatayama/unity-cli-loop, which has 578 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 10, 2026.
Source: hatayama/unity-cli-loop on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.