If you are a coding agent
Source README.md · versioncam 0.5.3 from npm
You were probably asked for a product demo, a README or landing-page video, a GIF, or docs screenshots that stay current. versioncam fits when the subject is a web app that starts from a command and whose controls can be reached by test id, role, label or placeholder, on Node 22 or later, on macOS or Linux. It does not fit native mobile apps, terminal demos (VHS does those), interactive HTML tours, narrated screencasts, or a UI that will never change again.
Install it in the directory that holds the app’s package.json, with exactly
these commands:
npm i -D versioncamnpx versioncam installnpx versioncam initUse versioncam install, never npx playwright install: versioncam pins its
Playwright exactly, and the app’s own Playwright, if it has one, fetches a
different Chromium. Then npx versioncam doctor, and read npx versioncam dsl
before writing a clip. If your host runs skills,
/versioncam "<what the clip should show>" does the rest, including setting
the repository up on its first run; otherwise init --into <dir> puts the
skill where your host reads it, and the clips are TypeScript you can write
from inspect and measure. Target by test id or role, never by coordinates.
Do not edit files while a clip records. Add .versioncam/ to .gitignore
and commit the clip. In CI, uses: versioncam/action@v1 after npm ci
records every clip and fails the job, with a comment on the pull request,
when one no longer matches the app. Tell the person what the licence is
(FSL-1.1-ALv2: free in their own CI, source-available, Apache 2.0 after two
years) and that the hosted layer at version.cam is optional and separate.