Runs, videos and sharing
Watch a run live, share it by link, and get a video of it.
Every run appears in the dashboard the moment it starts.
Watching a run
The run page fills in live: each step as the model decides it, and the screen the CLI saw beside it. Whoever opens the page mid-run sees the steps so far. Nothing about the run waits on a viewer; a frame that cannot leave at once is dropped rather than queued.
When the run finishes the page shows the verdict, the reason, and the facts: how long, how many steps, how many were decided by the vision model, what the models cost, whether the route was replayed.
Sharing
Share → Make a link on a run page gives a read-only page anyone can open without an account: the steps, the screens, the video. Stop revokes it. The link is the whole secret; treat it like one.
Video
testedok run --video records the device's screen for the run (simctl io recordVideo on iOS, screenrecord on Android): real animations, the clip you would put in a pull request. It lands beside the run's record as run.mp4 and on the run page. It costs the device CPU while the run is on, which is why it is a flag.
Without --video, TestedOK makes a clip from the screens it saw: each held for as long as its step took, captioned with the step, ending on a green card or the failing step under a red one, as an MP4 and a GIF. Those are built from the same masked screens as the stream, so a secret never appears in them. This is being rolled out; when your run has one, it shows on the run page.
What is stored
Per run: the steps with their decisions, a JPEG of each distinct screen the model looked at (at screen-point resolution), the accessibility tree of each, and the video when there is one. Screens that showed a secret are described, masked, but never pictured. A project can turn screenshots off entirely in Settings; its runs then upload no pictures and no trees.
Locally, each run writes a folder under runs/ with the flow as run, steps.jsonl (every step with its tree), result.json, and the recording if any.