Install
openclaw skills install @jssj07/unity-ci-kitUnity CI pipeline toolkit. Provides ci_agent.py Python CLI and CiRunner.cs Unity Editor script for fully automated Unity batchmode builds, compile checks, and structured error parsing. Use this skill to set up automated CI for Unity projects, run batchmode compilation, create reusable build pipelines, or migrate existing CI scripts to a config-driven cross-project framework.
openclaw skills install @jssj07/unity-ci-kitA drop-in CI toolkit for Unity projects that enables fully automated build-test-validate pipelines.
The Python agent (ci_agent.py) handles Unity batchmode invocation and result parsing;
the C# runner (CiRunner.cs) provides a reusable step framework inside Unity Editor.
Together they eliminate the need for manual Unity Editor interaction during development iterations.
Trigger this skill when:
ci_agent.py, ci_config.json, or CiRunner.cs in the context of Unity automationDo NOT use this skill for non-Unity projects, or for simple one-off shell scripts that don't need a reusable framework.
Run ci_agent.py init from the Unity project root. This creates ci_config.json with defaults.
Edit the config to set:
unity_version — e.g. "2022.3.62f3c1" (matches ProjectVersion.txt)unity_path — leave empty for auto-discovery, or set absolute pathexecute_method — the Unity static method to invoke, e.g. "StarVanguard.Editor.AutoCI.RunCI" or "UnityCI.Editor.CiRunner.RunCI"Copy templates/CiRunner.cs (from this skill's templates/ directory) into the project's Assets/Editor/ (or Assets/_Project/Scripts/Editor/).
Edit the RunPipeline() method to insert project-specific build steps. Each step uses the Step(string name, Func<bool> action) helper:
private static bool RunPipeline()
{
bool ok = true;
ok &= Step("Create Assets", () => { AssetBuilder.Run(); return true; });
ok &= Step("Run Validation", () => { TestRunner.RunAll(); return testsPassed; });
ok &= Step("Apply Font", () => { FontSetup.Apply(); return true; });
AssetDatabase.SaveAssets();
return ok;
}
The helper automatically wraps each step in try-catch and logs [AutoCI] STEP: name => OK/FAIL.
The Python agent parses these log lines to produce structured JSON output.
Run python ci_agent.py check to verify:
ci_config.json is present and validAssets/ directorypython ci_agent.py build # Full pipeline (batchmode + executeMethod + parse)
python ci_agent.py compile # Compile-only (fast check)
python ci_agent.py status # Read last build result JSON
The build command:
-batchmode -quit -nographics)execute_methodci_output.log and parses CS errors/warningsci_result.jsonThe structured JSON output from ci_result.json is designed for AI consumption:
{
"timestamp": "2026-06-30T08:30:00",
"build_ok": true,
"errors": [],
"error_count": 0,
"warnings": [...],
"warning_count": 3,
"ci_pass": true,
"log_file": "ci_output.log"
}
AI agents can:
python ci_agent.py compile to verify compilationci_result.json → fix → repeatpython ci_agent.py build for full validationproject-root/
├── ci_config.json # Created by `ci_agent.py init`
├── ci_output.log # Generated by Unity batchmode
├── ci_result.json # Generated by `ci_agent.py build`
├── ci_agent.py # Copied from skill's scripts/ directory
└── Assets/
└── Editor/
└── CiRunner.cs # Copied from skill's templates/ directory
The main Python CLI. Copy this to the project root. Run python ci_agent.py for usage.
Commands: init, check, build, compile, status.
Minimal config template. Fields: unity_version, unity_path, execute_method, timeout_seconds, log_file, result_file.
Generic Unity Editor script. Provides Step() framework and RunCI() entry point.
Namespace: UnityCI.Editor. Method: public static void RunCI().
Step-by-step setup instructions for new projects.