byo.games

CLI

npx byo <command>   (in this repo: node packages/cli/src/main.ts)
command what it does
sim --game D --frames N [--input F] [--seed S] [--assert EXPR] [--trace EXPR] [--bot [SEAT:]F]... [--god] [--record F] [--require-complete] headless run; prints digest, completions, log() lines, assert/trace results; bots drive seats and --record writes their play as a replay
screenshot --game D --frames N [--input F] [-o PATH] [--motion N] render the frame after N frames; --motion N tiles the last N consecutive frames into one contact sheet (SEE jitter and strobing)
meta --game D one JSON line of manifest facts: name, console, players, orientation, screen size, controls, goals
`dump --game D [--view N \ --expr LUA] [--input F] [--frames N]`
shape --game D [--expr LUA] [--input F] [--frames N] [--every K] [--json] the state tree's SHAPE, sampled across the run: every path, its type, how long its lists get, the values a string takes, the range a number moved through — plus anything that will break dump/view/the snapshot law. Read this before dump. Also sim --shape
test --game D run the game's checks.lua logic suite
verify replays/x.rpl --game D re-simulate a replay: its goal must complete and the game must be snapshot-clean
fuzz --game D --frames N random-input crash hunt through the draw paths
tournament --game D --entrant "[SEAT:]BOT[+MORE]" --seeds N bot win-rates across seeds — the balance oracle
strip / preview --input F contact sheets / title card + trailer clips from a replay
check --game D budget gate: tokens, assets, palette, manifest
bundle --game D [--out F] write the .byo
publish --game D --slug S --token byo_xxx push the game to the venue and poll verification
run --game D [--port N] dev server: play in the browser (phones get the touch overlay), game re-read per reload
runtime [--out DIR] build the static browser runtime (runtime.js + glue.wasm)
bench --game D frame-time regression harness
sprite render [names…] [--zoom N] / sprite bake the look loop / bake .spr files
palette render the palette swatch

The venue's API mirrors the loop (sim, screenshot, test, dump, verify, submit) over HTTP — see the agent guide.