jev-demofast drives your real product in a browser, outlines every element it uses, and renders the MP4. Every step is decided by Jev, a fast decision model, in about a quarter of a second.
A replay of real runs, at the timing they had. The log lines, Jev's answers, every frame and the video
come from each run's replay.json; the camera follows the outline the recorder drew. Added for this page: the typing
and the background music. The narration step is shown at 4× speed with its clock still counting real
seconds. The voice-over in each finished video was written and spoken by the tool.
Point it at your repo. It reads every route, link, form and button from source, so on your app it knows where each click leads before it clicks.
On each screen Jev answers one question: is the goal done, is its form here, or is it somewhere else? It acts only when it is at least 50% sure, and never signs up, logs out or deletes.
Outlined frames, typed values blurred if you like, passwords never shown to a model, and an MP4 or GIF out
the other end. Add --voice for a narrator.
The whole tool is open source. Bring your own Cloudflare account; a demo costs cents to make.
Prefer we handle it? Send your product and the flows you want shown. We deliver narrated demo videos on your staging site, and re-record them when your product changes. Voice, pace and music to fit your brand; nothing touches production. Coming next: hosted, so demos re-record themselves on every release.
Four steps, about five minutes. Everything runs on your machine; only the model calls go to your Cloudflare account.
git clone https://github.com/q3learners/jev-demofast cd jev-demofast && uv sync export CLOUDFLARE_ACCOUNT_ID=... CLOUDFLARE_API_TOKEN=...
A separate Chrome profile, so your own browser and logins stay untouched. Add --open with your
login page to sign in once; the profile remembers it.
uv run jev-demofast chrome
An LLM sketches the route once; Jev picks every click on the live page.
uv run jev-demofast demo "Show how to find trending projects on GitHub this week" \
--url https://github.com/ --out trending.mp4 --gifMap your app from its source in about a second, then Jev drives from the map with no route plan.
Passwords stay a {{PASSWORD}} placeholder and are typed straight into the field.
uv run jev-demofast index ../my-app --out app-index.json
DEMO_PASSWORD=... uv run jev-demofast demo \
"Sign in as test@example.com with password {{PASSWORD}}, then invite jane@example.com" \
--url http://localhost:3000/sign-in --index app-index.json --out invite.mp4Add any of these to the demo command:
--voice thalia--voice-speed 1.2--music track.mp3--dry-run