Skip to content
ClaudeUnreal
GitHub

The cu CLI

cu is the Bash entry point for Unreal commands. Where the typed MCP surface exposes the 13 hot-path actions (spawn / move / inspect / screenshot / etc.), cu covers the ~362 long-tail commands across Blueprint nodes, UMG, Niagara, Sequencer, materials, foliage, and the rest.

Both halves share the same TCP bridge (127.0.0.1:55557) and the same JSON protocol. From an agent’s perspective: typed MCP is “things I always know how to do”; cu is “things I look up when needed”.

Eager-loading 370 MCP tools at session start cost ~144K tokens of schema in clients that don’t support deferred loading — burning ~72% of an Opus 4.7 context window before the user types. The hybrid split keeps session-start context to ~7K tokens while preserving every UE5 capability behind a one-step search-and-execute lookup. See the Architecture concept page for the full picture.

The CLI ships inside the plugin at <plugin>/Resources/MCP/cli/cu.py. On plugin startup, FClaudeUnrealModule::ConfigureCu writes a wrapper at <ProjectDir>/.claude/cu and adds Bash(cu *) to .claude/settings.local.json — so Claude Code can invoke it without a permission prompt.

Terminal window
# Probe the bridge
cu ping
# Browse 5 tools in a category (no TCP — local manifest read)
cu list --category camera --limit 5
# Get the full reference for one command (no TCP)
cu help spawn_actor
# Run a command
cu exec spawn_actor --name MyCube --type StaticMeshActor --location 0,0,100
CodeMeaning
0Success
1Bridge returned an error (handler failed)
2Connection error (editor not running, port blocked)
3CLI usage error (unknown command, missing required param)