One recording per device at a time; different devices can record concurrently. Recording does not disturb anything else reading the device — a preview window can stay open on the same screen.
A recording does not stop itself before its
cap, so a forgotten one keeps capturing until the cap fires — holding the recording session, wasting disk, and delaying the video you are waiting on (and with
it comes back padded with dead air). Two safety nets exist — use both:
Where the file lands (durable, not scratch). Unlike most argent artifacts (which live in a disposable temp cache the OS reclaims), a finished recording is saved durably on the
client into
<project>/.argent/recordings/
— the project being the nearest ancestor of the client's working directory with a
/
/
, or
when the client isn't inside a project. This holds even for a remote
tool-server: the mp4 is written on the client host, not the server. The saved name is
screen-recording-<device>-<timestamp>.mp4
; if that name is already taken the new file lands beside it as
rather than overwriting. Because these files persist in the working tree, mention the path to the user (and note that they are untracked — add them to
or clean them up if they shouldn't be committed).
Static-frame trimming (on by default). Stretches where the screen does not change are collapsed: the first second of each still stretch is kept so pauses read naturally, then unchanged frames are dropped until something moves again (a change of even a couple of pixels counts). So you can leave a recording running across slow steps, waits, or thinking time without padding the clip with dead air — a 40-second session with 5 seconds of real activity comes back as a ~5-7 second video. When trimming removed anything, stop also returns
(real elapsed time) and
(how much was cut);
is always the length of the video you actually get. Pass
to
when you want a faithful real-time recording (e.g. to measure how long something took on screen).
Touch visualizer (on by default). Every interaction argent drives is drawn straight into the video: a pulse marks each tap, a fading comet trail follows swipes and drags, and paired markers show the two contact points of a pinch or rotate. This makes a recording self-explanatory — a viewer can see
where each gesture landed rather than watching the UI react to an invisible finger. It is rendered by simulator-server into the frame stream (nothing is composited host-side), so it costs nothing extra and never appears in a
. Pass
to
to record the raw screen with no overlay (e.g. when capturing exactly what the user would see). If simulator-server cannot enable it, the recording still succeeds and stop returns a
saying touches are not shown.