Command Line

Web demos

Point screenify at a URL and it drives a real browser, adds a smooth cursor and auto-zoom, trims dead time, and hands you a finished demo video.

Where recording your own screen is the foundation, this turns any website or web app into a polished product demo. You give the screenify CLI a URL and a short list of actions; it opens a real browser, performs them on camera, and produces a clean, styled video — complete with a smooth synthetic cursor and automatic zoom on the parts that matter.

One-time setup

Web recording uses a small helper that controls a browser for you. Install it once:

screenify web setup

This needs Node.js 18 or newer on your machine. Run screenify doctor --json any time to confirm web recording is ready.

Record a scripted demo

Describe the demo as a short list of actions in a JSON file:

[
  { "type": "wait", "ms": 1200 },
  { "type": "click", "text": "Pricing" },
  { "type": "scroll", "dy": 700, "afterMs": 1200 },
  { "type": "click", "text": "Get started", "optional": true }
]

Then record it — and optionally export a styled video in the same step:

screenify web record https://your-app.com \
  --actions actions.json \
  -o demo.mp4 -- --wallpaper orange --padding 16

Everything after -- is forwarded to the export, so you get the full styling toolkit on the result.

What you get automatically

Web demos aren't just a plain screen grab. screenify adds the polish for you:

  • A smooth cursor — synthesized to glide naturally between the elements your actions touch, instead of the jumpy real pointer.
  • Auto-zoom — the camera eases in on each click and section so the viewer's eye follows along. Turn it off with --no-auto-zoom.
  • Idle-trim — dead time (long waits, think-time) is cut out so the demo stays tight. A scripted demo that ran 36 seconds might land at 20. Keep the full length with --no-idle-trim.

You can fine-tune trimming with --idle-gap <seconds> (how long a pause must be before it's cut) and --idle-buffer <seconds> (the beat kept on each action).

Pages behind a login

To demo a page that requires signing in, save a login session once, then reuse it:

# Sign in once — a browser opens; log in, then close it
screenify web login https://your-app.com --auth myapp

# Reuse that session in any recording
screenify web record https://your-app.com/dashboard --actions actions.json --auth myapp

Export as a GIF

Because web demos run through the same export, you can hand off a GIF directly:

screenify web record https://your-app.com --actions actions.json -o demo.gif

Or target a platform aspect in one flag — see platform presets:

screenify web record https://your-app.com --actions actions.json \
  -o reel.mp4 -- --platform reels

Useful options

OptionWhat it does
--actions <file>The action script (JSON array)
-o <file>Export to this file after recording
--size "WxH"Browser window size (default 1280x800)
--settle-ms <n>Wait this long for the page to settle before starting
--auth <name>Reuse a saved login session
--no-auto-zoomSkip auto-zoom
--no-cursor-synthKeep the real cursor instead of the smooth one
--no-idle-trimKeep the full, untrimmed length

Run screenify guide --json for the schema of every action type (wait, click, scroll, type, and more).

Next

Writing an action script by hand is precise and repeatable. To skip the script entirely and let an AI drive the demo — and add cinematic effects — see AI director.