The take directory
The unit of work: recording, cursor track, the replay recipe and the editable doc.
A take is the unit of work: one directory holding the footage, the script that produced it, and the editable document that turns footage into a video. Everything the CLI does reads or writes this directory.
take/
recording.webm encoded footage (constant-frame-rate WebM)
or recording.mp4, when a pull brought it home as mp4
frames/ raw screencast JPEGs, kept for re-encode (deletable; ~1GB at 2K)
cursor.json synthesized cursor track: exact coords, element rects
meta.json recording metadata (producer: "cli")
actions.json the script that produced it, the replay recipe
doc.json the editable document, THE product artifact
vos.json hosted tracking (vos id + base version), written by push and pullWhy this shape matters
doc.json is the product. Zoom and pan are spans, trims are segments,
pacing is speed spans, all plain JSON. Editing the document and re-rendering
never re-runs the browser; fixing a zoom is editing a number. The renders are
deterministic: same take plus same doc equals same pixels. Never re-record to
fix pacing or framing.
The cursor track is synthesized, not observed. Because the CLI issues
every input itself, cursor.json carries exact coordinates, exact timing and
fresh element rects, plus typing pings during type steps (when and where
typing happens, never the text). That precision is what powers element-aware
auto zoom, typing zooms and click effects downstream.
actions.json makes the take reproducible. The same script against the
same page produces the same take, which is why iterating on the document
beats re-recording: the flow is already captured.
vos.json is the thread to the cloud. Push writes it, pull repoints it;
it records which hosted vos this directory belongs to and which version you
last built on.
Related
- actions.json for writing the flow.
- doc.json for the full document reference.
- Push and pull for the hosted loop
vos.jsontracks.