sootsim record
Drives the engine’s built-in canvas recorder over the WS bridge — no second browser, no ffmpeg. Encoding happens in the running page (MediaRecorder for webm, WebCodecs for mp4, gifenc for gif). Two modes: atomic (duration-bounded) or stateful (start → interact → stop). Stateful mode is webm/mp4 only; for gif/png use atomic mode. Use —frames to sample N evenly-spaced png snapshots instead of a video.
terminal
Options
| flag | description |
|---|---|
--format <type> | webm | mp4 | gif | png (inferred from —output extension; stateful mode is webm/mp4 only) |
--mode <kind> | video | live | combined (default: video). live captures the event stream; combined captures both and uploads automatically |
--duration <seconds> | recording duration (default: 10, atomic mode only) |
--fps <number> | target frame rate for video/gif (default: 30) |
--output <path> | output file, or directory when —frames is set |
--frames <n> | sample N evenly-spaced png frames instead of a video |
--max-width <px> | downscale gif frames to this width |
--session <tab-id> | target a specific bridge tab |
Examples
terminal
Recording Notes
record drives the engine’s built-in canvas recorder over the WS bridge — no second browser, no ffmpeg. Encoding happens in the running page:
webmvia MediaRecorder (default, fastest)mp4via WebCodecs + mp4-muxer (chrome/edge — real h264)gifvia gifenc on sampled frames--frames Ndumps N evenly spaced png frames to a directory — handy when you only need a few snapshots from a session (e.g. for handoff, regression reports, or diffing)
Format is inferred from --output’s extension, or pass --format. For step-by-step evidence around a bug, pair it with debug snapshot rather than trying to infer state from the video alone.