CLI Reference
The eng_cli tool provides headless access to all engine operations.
Project Management
init
Create a new project with the standard directory structure.
eng_cli init <path>
Creates Content/, Library/, and Build/ directories with required metadata.
new-scene
Create a new scene file.
eng_cli new-scene <project> <scene-name>
Creates Content/Scenes/<scene-name>.scene with default scene structure.
Operations
apply-plan
Apply a sequence of typed operations to a project.
eng_cli apply-plan <project> <plan-file> --json
The plan file is a JSON array of operations:
[
{ "op": "CreateEntity", "params": { "name": "Player" } },
{ "op": "AddComponent", "params": { "entity_name": "Player", "component_type": "Transform" } }
]
Use - as the plan file to read from stdin:
echo '[{"op":"CreatePrimitive","params":{"primitive_type":"Cube","entity_name":"Box"}}]' | \
eng_cli apply-plan ~/MyProject - --json
list-operations
List all available operations with their parameters.
eng_cli list-operations --json
list-component-types
List all registered component types with their properties.
eng_cli list-component-types --json
Entity & Component Commands
create-entity
eng_cli create-entity <project> <scene-name> <entity-name> [--json]
delete-entity
eng_cli delete-entity <project> <scene-name> <entity-name> [--json]
list-entities
eng_cli list-entities <project> <scene-name> [--json]
reparent-entity
eng_cli reparent-entity <project> <scene-name> <entity-name> <new-parent-name> [--json]
inspect-entity
Show all components and properties for an entity.
eng_cli inspect-entity <project> <scene-name> <entity-name> [--json]
inspect-scene
Show full scene structure with all entities and their components.
eng_cli inspect-scene <project> <scene-name> [--json]
add-component
eng_cli add-component <project> <scene-name> <entity-name> <component-type> [--json]
remove-component
eng_cli remove-component <project> <scene-name> <entity-name> <component-type> [--json]
set-property
eng_cli set-property <project> <scene-name> <entity-name> <component-type> <property-path> <value> [--json]
get-property
eng_cli get-property <project> <scene-name> <entity-name> <component-type> <property-path> [--json]
Prefab Commands
create-prefab
eng_cli create-prefab <project> <scene-name> <entity-name> <prefab-name> [--json]
instantiate-prefab
eng_cli instantiate-prefab <project> <scene-name> <prefab-name> [--json]
list-prefabs
eng_cli list-prefabs <project> [--json]
Scripting
compile-scripts
Compile all C++ scripts in the project to dynamic libraries.
eng_cli compile-scripts <project>
list-scripts
List all scripts with GUIDs and compilation status.
eng_cli list-scripts <project>
eng_cli list-scripts <project> --json # Structured output
attach-script
Attach a script to an entity by name.
eng_cli attach-script <project> <scene-name> <entity-name> <script-name>
Play Mode
play
Run a scene in headless play mode for testing.
eng_cli play <project> <scene-name> -f <frame-count>
eng_cli play <project> <scene-name> -f 60 --verbose
| Flag | Description |
|---|---|
-f <count> | Number of frames to simulate |
--verbose | Print detailed output |
AI Agent
agent
Use the AI agent to build scenes from natural language.
eng_cli agent <project> <scene-name> --prompt "<description>"
eng_cli agent <project> <scene-name> --prompt "<description>" --verbose
| Flag | Description |
|---|---|
--prompt | Natural language description of what to build |
--verbose | Show operations and diffs |
Validation
validate
Run validators on a project.
eng_cli validate <project>
Runs SchemaValidator, GraphValidator, and BuildValidator. Returns structured pass/fail results with error codes.
Environment Variables
| Variable | Description |
|---|---|
ANTHROPIC_API_KEY | API key for AI agent (required for agent command) |
ENG_AUTO_PLAY | Set to 1 to auto-enter play mode when launching the editor |
Examples
Full Workflow
# Create project
eng_cli init ~/MyGame
# Create a scene
eng_cli new-scene ~/MyGame Main
# Build scene with AI
export ANTHROPIC_API_KEY=sk-...
eng_cli agent ~/MyGame Main \
--prompt "Create a platformer level with platforms, a player with character controller, and outdoor lighting"
# Compile scripts
eng_cli compile-scripts ~/MyGame
# Test in headless play mode
eng_cli play ~/MyGame Main -f 120 --verbose
# Validate
eng_cli validate ~/MyGame