Skip to content

Lifecycle

lifecycle runs in order: setupstartwaitcaptureteardown.

  • setup runs before capture (build steps, fixtures).
  • start runs as background processes for long-lived dev servers.
  • wait gates readiness before capture — wait.command and wait.url are polled until they succeed or wait.timeoutMs elapses.
  • capture is the list of targets to snapshot.
  • teardown runs after capture; background start processes are then stopped.

setup, start, and teardown are arrays of shell command strings; capture is an array of target objects.

json
{
  "lifecycle": {
    "setup": ["npm run build"],
    "start": ["npm run preview"],
    "wait": { "url": "http://localhost:4173", "timeoutMs": 30000 },
    "capture": [
      { "kind": "terminal", "name": "cli-help", "command": "my-app --help" }
    ],
    "teardown": []
  }
}

Each capture target has a kind (terminal, web, check, performance, desktop, api, game), a unique name, and kind-specific options documented under Capture types. The full field tables live in the schema.

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