Uloop Compile Check logo

Uloop Compile Check

Community
hatayama
uloop-compile-check

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

Overview

Publisherhatayama
Repositoryunity-cli-loop
Skill nameuloop-compile-check
Stars
578
Forks
49
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by hatayama on GitHub. Read the source before you install it.

Installation

Install the Uloop Compile Check AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/hatayama/unity-cli-loop/tree/main/Packages/src/Editor/CliOnlyTools~/CompileCheck/Skill
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.

Use it in TypingMind

Enable Uloop Compile Check in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Uloop Compile Check on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Uloop Compile Check is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

uloop compile-check

Compile the project's C# offline and report the diagnostics, without starting Unity or sending anything to a running Editor.

The command replays the response files Unity wrote during its last build, using the C# compiler bundled with the Unity Editor install. Nothing it produces is loaded by Unity: the assemblies land in Library/uloop/compile-check/ and are never handed to the Editor.

When to use

  • The Editor is not running and you only want to know whether the code compiles.
  • You want compiler errors quickly, without waiting for an import and a domain reload.
  • You are iterating on code whose result does not need to be live in the Editor yet.

When not to use

  • You want the change reflected in the Editor (play mode, tests, a tool call): run uloop compile.

  • You just added or removed an .asmdef, added a reference to one, or changed scripting defines: run uloop compile once first. The response files describe the previous build only, so compile-check refuses the run with COMPILE_CHECK_UNITY_BUILD_REQUIRED instead of reporting diagnostics for a configuration the project no longer has.

  • The project has no Library yet (a fresh clone, or an Editor that has never opened it): there is no build to replay, so the run is refused with the same code. Let Unity build once; a headless run is enough and needs no window:

    bash
    <Unity executable> -batchmode -nographics -quit -projectPath /path/to/project

    uloop launch does the same with the Editor window open. After that one build, compile-check works without the Editor; it asks for another build when it detects an .asmdef change. A scripting define change it cannot detect, so run uloop compile yourself after one.

Usage

bash
uloop compile-check
uloop compile-check --all --project-path /path/to/project

By default it compiles the assemblies whose sources changed since the last Unity build, plus every assembly that references one of them. --all compiles every assembly in the build. Assemblies that do not depend on each other compile at the same time; --jobs caps how many run at once, and --jobs 1 compiles them one after another.

An assembly whose inputs are all exactly as the previous compile-check read them is not compiled again: the run reports the diagnostics recorded then, errors included. --all compiles everything from scratch, which is the way out if a reused result ever looks wrong.

Parameters

ParameterTypeDescription
--allflagCompile every assembly instead of only the changed ones and their dependents
--editor-version <version>stringUse this Unity Editor version's compiler instead of ProjectVersion.txt
--jobs <N>numberCompile up to N assemblies at once (default: half the CPUs, at least 1; 1 compiles sequentially)
--max-depth <N>numberSearch depth when locating the project (default: 3, -1 for unlimited)
--project-path <path>stringTarget another Unity project instead of the current directory

Output

A JSON payload:

  • Success: whether the compile produced no errors
  • ErrorCount, WarningCount: totals across every compiled and reused assembly
  • Errors, Warnings: each with Message, Code, File, Line, Column, Assembly
  • CompiledAssemblies: the assemblies this run compiled, in dependency order
  • ReusedAssemblies: the assemblies reported from the previous run's recorded result, without compiling
  • BlockedAssemblies: the assemblies not compiled because an assembly they reference has errors, as Unity's own build would stop there; fix those errors and run again
  • SkippedAssemblies: how many assemblies were left out: nothing they compile from changed, or every assembly they reference kept the same public surface
  • ResponseFileSet: the Bee build the run replayed
  • ProjectRoot: resolved project root
  • Message: one-line summary

The process exits 1 when ErrorCount is greater than zero.

Only one compile-check runs per project at a time. A second one waits for the first, up to five minutes, then fails with COMPILE_CHECK_PROJECT_BUSY: wait for the other run to finish and run compile-check once more rather than retrying in a loop.

Limitations

  • It replays the last Unity build's response files. A new or deleted .asmdef, a changed .asmdef reference, an .asmdef that stopped building for the Editor, or a newly required precompiled reference stops the run and asks for uloop compile.
  • Changes to defineConstraints and versionDefines are not detected, because they depend on scripting defines and package versions that cannot be evaluated outside the Editor. Run uloop compile after editing them.
  • A reference removed from an .asmdef is not detected either: Unity injects references of its own that no .asmdef declares, so only added references can be told apart from those. Diagnostics may therefore miss an error that the removal would cause. Run uloop compile after removing one.
  • Changed scripting defines are not detected; the defines from the last build are reused.
  • The predefined assemblies (Assembly-CSharp and friends) keep the source list of the last build, so a brand-new .cs file outside an .asmdef is not compiled until Unity imports it.
  • The produced DLLs are never loaded by Unity, and the command never contacts a running Editor.

Frequently asked questions

What does the Uloop Compile Check AI skill do?

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

Why use Uloop Compile Check on TypingMind?

Because you install it once and use it with any model. Uloop Compile Check is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Uloop Compile Check in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/hatayama/unity-cli-loop/tree/main/Packages/src/Editor/CliOnlyTools~/CompileCheck/Skill. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Uloop Compile Check?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Uloop Compile Check?

As many as you like. As long as a model supports skills, you can use Uloop Compile Check with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Uloop Compile Check AI skill free?

Yes. It is published on GitHub by hatayama under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇