cu Commands
cu exposes nine subcommands. Three are local-only (read the bundled manifest
or local files) and six hit the TCP bridge.
| Subcommand | TCP | Purpose |
|---|---|---|
cu list | — | List manifest commands (optionally filtered) |
cu help | — | Full reference for one command |
cu search | — | Fuzzy search the manifest |
cu log | — | Read filtered editor / PIE log (local file) |
cu ping | ✅ | Probe the bridge, report latency |
cu doctor | ✅ | Diagnose CLI / manifest / editor state |
cu exec | ✅ | Send a command to the bridge |
cu preview | ✅ | Open an asset editor and screenshot its viewport |
cu catalog | ✅ | Build a static HTML asset catalog of /Game |
cu list
Section titled “cu list”cu list [--category <id>] [--limit N]Reads manifest.json; emits one line per command:
spawn_actor [scene_actors] Create a new actor in the current level.delete_actor [scene_actors] Remove an actor from the level by name....--limit 0 (or omitted) lists all matches.
cu help <command>
Section titled “cu help <command>”cu help spawn_actorOutput sections: full description, params (typed --flag form with required
vs optional), and a runnable cu exec example.
This is the same content unreal_doc(<command>) returns over MCP — the two
paths are interchangeable.
cu search <query>
Section titled “cu search <query>”cu search "focal length"cu search foliage --category landscape_foliage --limit 5In-memory keyword scoring (no embeddings):
| Match | Score |
|---|---|
| Query is substring of command name | +10 |
| Query token appears in command name tokens | +5 each |
| Query token appears in summary | +3 each |
| Query token == category id | +2 each |
Sorted descending, capped at --limit (default 10).
cu ping
Section titled “cu ping”cu pingReturns ✓ pong on success. Use --json for machine-parseable output.
cu doctor
Section titled “cu doctor”cu doctorEmits:
- Manifest path and command count
bridge_commitrecorded at manifest build time- Bridge port and editor reachability (probes
ping)
Useful first step when something stops working — pinpoints whether the manifest is stale, the editor is down, or the port is blocked.
cu exec <command>
Section titled “cu exec <command>”Three input styles, in order of typical use:
# Typed flags — derived from manifest schemacu exec spawn_actor --name MyCube --type StaticMeshActor --location 0,0,100
# JSON string — easier for nested paramscu exec spawn_actor --params-json '{"name":"MyCube","type":"StaticMeshActor","location":[0,0,100]}'
# JSON file — large or reused payloadscu exec spawn_actor --params-file /tmp/spawn.jsonIf --params-json or --params-file is given, typed flags are ignored.
cu log
Section titled “cu log”cu log [--category <name>] [--verbosity <level>] [--max N] [--json]Reads <ProjectDir>/Saved/Logs/<Project>.log locally — no TCP, works whether
the editor is running or not. Filters by --category (e.g. LogTemp,
LogBlueprintUserMessages) and --verbosity (all / info / warning /
error). Returns the most recent --max matches (default 100).
Replaces the older get_runtime_log MCP tool — same semantics, no MCP token
cost.
cu preview <asset_path>
Section titled “cu preview <asset_path>”cu preview /Game/Meshes/SM_MyMesh.SM_MyMesh [--out <png>]Opens the asset editor and captures its viewport at editor quality — full PBR, Nanite, streamed textures, studio lighting. Single asset only, ~1–3s per call. Default output is a temp file keyed by the asset path; the PNG path is printed on stdout.
Currently static mesh only; other asset types follow.
cu catalog
Section titled “cu catalog”cu catalog [--out DIR] [--path /Game/...] [--classes CSV] [--batch N] [--size N]Walks the asset registry under --path (default /Game), extracts a
thumbnail per asset, and emits a self-contained static HTML grid plus a
machine-readable manifest:
<ProjectDir>/Saved/ClaudeUnreal/Catalog/ index.html ← grid + class chip filter + search + copy-path manifest.json ← {generated_at, counts, assets:[{path,class,tier,png}]} thumbs/*.pngTwo-tier extraction:
tier: cached— reads theFObjectThumbnailbaked into the.uasseton save (the same image the Content Browser shows). Fast, covers ~90% of meshes / materials / textures.tier: rendered— falls through toThumbnailTools::RenderThumbnailfor assets without a cached thumbnail (e.g. fresh Blueprints).
Assets without either path are recorded tier: icon-fallback (no PNG, grey
card); per-asset failures become tier: error rows but never abort the run.
Default class whitelist: StaticMesh, SkeletalMesh, Material, MaterialInstanceConstant, Texture2D, ParticleSystem, NiagaraSystem, Blueprint (Blueprint additionally filtered to AActor-derived).
--batch controls how many asset paths each TCP call carries (default 50);
per-batch progress lines go to stderr, the final file:// URL to stdout.
Hard fail if PIE is active — RenderThumbnail shares the GPU and won’t run
concurrently.
cu catalog --path /Game/Megascans --batch 50# stderr: [catalog] 200/847 (cached=187 rendered=11 fallback=2 error=0)# stdout: file:///.../Saved/ClaudeUnreal/Catalog/index.htmlGlobal flags
Section titled “Global flags”These work on any subcommand:
| Flag | Purpose |
|---|---|
--port N | Bridge port (default 55557) |
--json | Emit JSON to stdout instead of human-readable lines |
--quiet | Suppress stdout; report via exit code only |
- Discovery flow — find the right command when you don’t know its name.
- Reference — the full per-category command index.