Skip to content

Local commands

The local snapshot workflow: scaffold a config, capture baselines, and compare against them. No cloud account required. See Common flags for the shared --config / --cwd / --target options.

init

Scaffolds a dungbeetle.config.json in the current directory. See the configuration reference.

  • -o, --out <path> — write the config to another path.
  • --project-name <name> — set the project name in the scaffold.
  • -f, --force — overwrite an existing config.

update

Captures every configured target and writes baselines under baselinesDir (default dungbeetle.snapshots/) — run it to accept current output as the new baseline.

test

Captures current output and compares it against the baselines, printing semantic diffs for failures and exiting non-zero on any difference.

ci

Runs the same comparison as test with CI-friendly output controls:

  • --json <path> / --html <path> — write reports to explicit paths.
  • --quiet — write reports but suppress the detailed console report.
  • --no-html-report — skip HTML report generation.
  • --json-only — write only the JSON report and suppress HTML/console output.
sh
dungbeetle ci --json report.json --html report.html
dungbeetle ci --json report.json --json-only

flake

Captures each target repeatedly — no baselines involved — and reports run-to-run divergence, exiting non-zero on any flake. The canary to run before trusting a new target (especially game walkthroughs, which are forced to strict visual comparison here):

sh
dungbeetle flake --repeat 5
dungbeetle flake --target godot-demo --repeat 10

doctor

Validates the project configuration before you use the runner: it checks for capture targets, reviewable baseline paths, missing HTML fixtures, and optional Playwright browser setup. --json <path> writes the results as JSON. For Playwright targets, provide one of browser.executablePath, browser.channel, or DUNGBEETLE_CHROMIUM_EXECUTABLE_PATH — see Web snapshots.

Source-available: CLI under FSL-1.1-ALv2, cloud server under BUSL-1.1. See Licensing.