/roveflowauto-records every run — this is the default, and it’s what you want 95% of the time.make recordis a repo-local helper for recording an example app running without a smoke test — useful for bug-repro clips or marketing shots of a bare app.
Automatic recording during a smoke test
Every invocation of/roveflow starts xcrun simctl io booted recordVideo right after the simulator boots and finalizes the .mov when the report is compiled. The file lands alongside the report:
--no-record:
Manual recording without a smoke test
The repo’sMakefile exposes a record target that boots an example app on your iOS simulator and simultaneously captures a .mov. Use it when you want video of an app without driving it through /roveflow — install-story demos, bug reports against the examples, or marketing clips.
Prerequisites
- macOS with Xcode command-line tools (
xcrun simctlavailable). - An iOS simulator already booted (
xcrun simctl list devices booted). - Flutter on
PATH. - The Roveflow repo checked out locally —
make recordis a repo-local Makefile target, not aroveflowCLI subcommand.
Synopsis
What it does
- Creates
recordings/at the repo root if absent. - Starts
xcrun simctl io booted recordVideoin the background, writingrecordings/<APP>-YYYYMMDD-HHMMSS.mov. - Runs
flutter runinsideexamples/<APP>in the foreground. - On Ctrl+C or natural Flutter exit, a shell trap sends
SIGINTto the recorder so the.movis finalized and playable.
Options
| Variable | Default | Description |
|---|---|---|
APP | counter_app | Example app directory under examples/ to run. Any folder with a valid Flutter project works. |
Encoding flags
The Makefile hardcodes threesimctl flags:
| Flag | Why |
|---|---|
--codec=h264 | Broadest browser/player compatibility. The default HEVC trips some players. |
--mask=ignored | Rectangular frame — cleaner for embedding in docs/sites. |
--force | Overwrite if the filename already exists (the timestamp makes this a safety net). |
Output
recordings/ is gitignored — the files stay local. Upload the .mov wherever you need it, or post-process with ffmpeg for GIF/WebM.
Troubleshooting
- No simulator booted. Start one via Xcode or
xcrun simctl boot <UDID>before runningmake record. - Multiple simulators booted.
bootedis ambiguous with more than one running. Shut extras down or edit the Makefile to target a specific UDID. .movwill not play. If you killed the process withkill -9instead of Ctrl+C, the file is truncated. Always exit Flutter cleanly so theSIGINTtrap finalizes the recording.
Which one should I reach for?
| You want… | Use |
|---|---|
| Video of a scenario run with agent decisions | /roveflow (auto) |
| Video of a single scenario for a flake investigation | /roveflow --only=<id> |
| A 2-minute clip of an example app to paste in a bug report | make record APP=<name> |
| Faster iteration; don’t care about video | /roveflow --no-record |
Next
Running smoke tests
Modes,
--only, and --no-record.Authoring scenarios
YAML format, criticality tiers, and skip results.