Free & open source Β· MIT Β· npm version

Write your product demo once.
Get a polished video every time your UI changes.

scriptreel turns a short YAML script into a professional demo video of your web app, with a smooth cursor, auto-zoom, captions and a browser frame. It runs on your machine or in CI. No account needed.

$ npx scriptreel record demo.yml -o demo.mp4

↑ Nobody recorded this video by hand. scriptreel rendered it from a 20-line YAML file.

Live demo

This script β†’ this video

Pick an example. On the left is the exact script in the repository. On the right is the MP4 scriptreel rendered from it, with no editing afterwards.

examples/login-flow.yml
Loading…
Output Β· 1920Γ—1080 MP4Download
Typing, a password hidden with an environment variable, waiting for navigation, and zoom.
Features

Everything a screen recorder does, minus the re-takes

scriptreel drives a real Chromium browser with Playwright and composites every frame itself, so the result looks the same on any machine.

πŸ–±οΈ

Smooth cursor

Glides along natural eased curves, with click ripples. No jittery mouse.

πŸ”

Auto-zoom

The camera zooms into whatever is being clicked or typed into, then eases back out.

πŸ’¬

Captions & subtitles

On-screen captions, plus an .srt file from per-step voice-over lines.

πŸͺŸ

Browser frame

Light or dark window chrome, rounded corners, shadow and gradient backgrounds.

πŸ™ˆ

Privacy built in

Blur emails and API keys in every frame. Secrets come from env vars and never show in logs.

πŸ“

Any format

MP4, WebM or GIF at YouTube, vertical reel, square, 720p or 4K sizes.

🎯

Deterministic

A virtual clock means the same script gives the same video on a laptop or a slow CI runner.

πŸ€–

Runs in CI

Re-record every demo on each release with GitHub Actions. Your docs never go stale.

Try it

Script builder

Build a demo.yml in your browser: set the options, add steps, then copy the file and the command.

    demo.yml
    
            
    
          
    Install

    Up and running in three commands

    You need Node.js 18.18 or newer. ffmpeg is bundled with the package. Chromium is installed once through Playwright.

    Create a script

    npx scriptreel init

    Writes an example demo.yml that you edit to match your app.

    Install Chromium (once)

    npx playwright install chromium

    On Linux CI, add --with-deps.

    Record

    npx scriptreel record demo.yml -o demo.mp4

    Add --format gif,webm for extra formats.

    Install it as…CommandBest for
    Nothing (run with npx)npx scriptreel record demo.ymlTrying it out and one-off videos
    A project dev dependencynpm install --save-dev scriptreelTeams: everyone and CI use the same pinned version
    A global commandnpm install -g scriptreelUsing scriptreel from any folder
    A libraryimport { record } from 'scriptreel'Building videos from your own Node.js code

    Read the full documentation β†’

    Why scriptreel

    Demo videos that never go out of date

    ⏱️

    Stop re-recording

    When a button moves, change one line and re-run instead of re-shooting the whole video.

    πŸ”

    Reviewable like code

    Demos live in git, so changes go through pull requests like any other change.

    πŸ’Έ

    Free alternative

    Covers what you'd otherwise pay a screen-recording app for, and it's automated.

    Copied!