Command Line
Everything the VS Code extension does goes through the veduta tool, which works just as
well in a terminal. Run commands inside a project folder (or pass --project DIR); add
--json for machine-readable output. veduta help <command> lists a command's flags.
Making and playing
| Command | Does |
|---|---|
veduta init NAME | creates a Lua game project in a new folder |
veduta new KIND NAME [--in FOLDER] | writes a new scene, world, map, prefab, model, material, texture, scenario (--scene S or --world W: where it starts) or script that builds as it is; --in puts it in a folder of its kind |
veduta sim [--scene S | --world W --at x,z] [--seed N] | plays the game in the simulator window (Windows), from the scene given or the project's default; saving a file reloads it in place |
veduta run [--scene S | --world W --at x,z] [--seed N] | plays the game on a Linux framebuffer (the console, a text console) |
veduta build | checks every script and compiles the assets; errors with file, line and column |
veduta cook | compiles changed assets ahead of time (--force for all) |
veduta refs FILE… or veduta refs KIND NAME | lists what names these files or folders (an asset, a PNG, a script) in the sources, veduta.json and the Lua scripts, with file, line and column: what breaks if they go |
veduta move SOURCE… DEST [--dry-run] | moves files and folders into the folder DEST (one source and a new DEST: renames it), changing everything that names them; a texture takes its own PNG along |
veduta rename KIND NAME NEW [--dry-run] | gives an asset a new name, its file and everything that names it; sprite renames a texture with the material and the prefab of its name |
veduta import FILE.glb [--name N] [--in FOLDER] [--turn DEG] [--scale S] | brings a model exported from Blender (glTF) into the game: the file, its materials and textures, a model with its armature and animations (Models from Blender) |
veduta duplicate KIND NAME NEW | copies an asset beside it (a texture with its PNG; a sprite's copies name each other) |
Testing
| Command | Does |
|---|---|
veduta test | runs every scenario and compares goldens (--update-golden records them) |
veduta simulate --scenario FILE | runs one scenario: verdict, events, contact sheet |
veduta simulate --scene S --ticks N [--seed N] [--input FILE] [--screenshots 0,60] | runs a scene with optional scripted input |
veduta fuzz --scene S --games N --ticks T | random play against the invariants; writes a minimal failing scenario |
veduta render --scene S [--tick T] [--mode M] [--out f.png] | draws one frame |
veduta bench --scene S --ticks N (or --scenario FILE) | times update and drawing against the 50 ms budget |
veduta diff A.png B.png | compares two images |
Assets and worlds
| Command | Does |
|---|---|
veduta inspect model|texture|scene|prefab|world|map NAME | reports problems and writes contact sheets |
veduta world map|query|place|terrain|vegetation|remove NAME | describes and edits a world |
veduta query | asks which entity is at a pixel of a rendered frame bundle |
Shipping
| Command | Does |
|---|---|
veduta deploy [CARD] | copies the game to the console's SD card |
veduta publish [vX.Y.Z] | builds the release archives and uploads them to the Veduta server, where the MARKET lists the game |
veduta release vX.Y.Z [--dry-run] | checklist, changelog, tag and push; CI publishes the archives to the server |
veduta doctor | checks the tool, the project and its readiness for the console |
The tool itself
| Command | Does |
|---|---|
veduta version | the tool's version |
veduta update [--channel stable|beta] [--check] | updates the tool from the Veduta server |
veduta login / veduta register | logs this machine in to the Veduta server (updates and publish need an account) |
veduta whoami / veduta logout | the account the stored token belongs to; forgets it |
veduta extension [--install] [--out FILE] | fetches the VS Code extension released with the tool (checksum verified); --install puts it into VS Code |
veduta upgrade | moves the project to the tool's engine version and refreshes editor files |
veduta dap | the debug adapter VS Code starts (not run by hand) |
veduta mcp | serves the tool to an AI agent (Claude Code) over MCP |
Working with an AI agent
Every project has a CLAUDE.md and a .mcp.json. Opened in Claude Code, the agent reaches
the same commands as tools (simulate, render, inspect, test, the docs of every
format) and can build, look at frames and test the game it is changing.