Skip to content

Features

A demo video built out of your product, not a model's impression of it.

The difference

Nothing on screen is invented.

The requirement is one sentence: your frontend has to load and work in Chrome under Playwright. If a person can click through your app in a browser, this can film it.

There are hosted pipelines that go from a storyboard to generated visuals, voiceover and captions in one pass. They are genuinely fast for a rough pacing draft, and this does not replace that.

But generated visuals standing in for the product is the opposite of why this exists. Every piece of product text a viewer can read came off your real, running app. The optional b roll tier covers shots with no product UI in them at all, and never carries product text.

openvidstudio

Real captured UI, on your machine, free.

Generic AI video tool

A synthetic guess at your product, hosted, usually paid.

Cost

$0

Apache 2.0. No account, no key, no metering.

Interface

MCP

Twenty six tools over stdio. Claude Code, Cursor, or any MCP client.

Real capture

Playwright drives Chrome against your running app. Screenshots and full viewport recordings at twice the CSS resolution, zoom compensated, so nothing comes back soft once the camera pushes in.

Nothing caught half-finished

Every capture waits for webfonts to swap, images to decode and entrance transitions to land before it fires. Infinite spinners are recognised and skipped rather than waited on forever.

Retime any clip

Real interaction is often too slow to watch and sometimes too quick to follow. Speed a clip up to compress dead time, or slow it down when the thing worth seeing happens in three frames.

No URL needed

A desktop app, a phone, a terminal. ffmpeg for windows and screens, adb and the iOS Simulator for mobile, and a terminal recorded as timed text rather than pixels, so it stays sharp at any size.

Cinematic camera

The camera lives inside the UI at 120 to 250 percent, tilted and always moving. A static frame fails QC.

Cursor as actor

An oversized cursor with eased movement, a ripple on click, and buttons that visibly react.

Approval gate

Your agent shows you the whole beats file and waits for an explicit yes before writing anything to disk.

Edit one beat, render one beat

Each beat caches its own segment, keyed on its real inputs. Fix a caption in a five minute video and one beat re-renders, then the segments are joined with a stream copy rather than a second encode.

More than a video

A README GIF through a real two-pass palette, a docs screenshot set that cannot drift from the footage, store frames at the exact dimensions each store demands, and a 9:16 cut whose crop follows the manifest instead of the middle of the frame.

It notices when it goes stale

Re-capture the pages a clip documents and it tells you which beats no longer match. Render on every merge and it diffs the frames against the last accepted run and comments the deltas on the pull request.

One manifest, many languages

Translated lines live in the beats file and get their own composition, with one cloned voice across all of them. A missing translation fails that language rather than shipping a half-narrated cut.

QC loop

Frames come back out of the render at each beat so text, captions and framing get checked against real output, not intent.

Runs locally

Your machine, your compute. Nothing uploads, no account, no key.

Built on open pieces

Remotion renders it, Playwright captures it, MCP drives it. All three are open source and none of them are hidden behind this.

See the pipeline