CLI
Purpose: Commands and flags for the demo-maker binary.
demo-maker --help
demo-maker <command> …
Commands
| Command | Purpose |
|---|---|
run <scenario.yaml> |
Execute a scenario (optional video) |
check <scenario.yaml> |
Same as run --fail-fast --fast (runtime smoke) |
record |
Live-record browser actions to YAML |
import <recording.json> -o <out.yaml> |
Convert recorder / DevTools JSON → YAML |
export-chapters <timing.json\|dir> |
Emit YouTube chapter lines |
Back-compat: if the first argument ends in .yaml / .yml, it is treated as run.
run / check flags
| Flag | Purpose |
|---|---|
--env-file=PATH |
Load KEY=value for auth and {{ VAR }}; BASE_URL overrides scenario base_url |
--base-url=URL |
Override base_url (wins over env BASE_URL) |
--headless |
No browser window |
--fast |
Zero/minimal pacing delays |
--fail-fast |
Stop on first step failure |
--end-step=N |
Run only steps 1..N (1-based inclusive) |
--pause-at-end |
Headed: wait for Enter before closing browser |
--debug-dir=PATH |
Save PNG on step failure |
--storage-state=PATH |
Load Playwright storage state (cookies/localStorage) |
--save-storage-state=PATH |
Save storage state after the run |
--capture-from-url VAR=regex |
Capture first regex group from page URLs into {{ VAR }} (repeatable) |
--url-capture-file=PATH |
JSON array of { variable, pattern } rules (see URL capture) |
Examples:
npx demo-maker run scenarios/demo.yaml --env-file scenarios/u2.env --fast
demo-maker check scenarios/demo.yaml --env-file scenarios/u2.env --storage-state=scenarios/session.json
npx demo-maker run scenarios/demo.yaml --end-step=7 --pause-at-end --env-file scenarios/u2.env
record flags (summary)
| Flag | Purpose |
|---|---|
--save-to=PATH |
Output YAML path |
--save-json=PATH |
Also write raw recording JSON |
--url=URL / --base-url=URL |
Start URL / base |
--continue-from=PATH |
Replay YAML then record additional steps |
--from=PATH |
Import from JSON instead of live record |
--fast |
Fast replay when using --continue-from |
--env-file=PATH |
Env for replay auth / variables |
--end-step=N |
With continue-from: replay only 1..N |
See Recording.
export-chapters
demo-maker export-chapters path/to/video.timing.json
demo-maker export-chapters output/videos # newest *.timing.json in dir
Requirements
- Node 20+
- Playwright Chromium (
npx playwright install chromium) - ffmpeg on
PATHfor.mp4,cut_videosplice, background audio