Record & export
Record any screen or window from the terminal, then export a studio-styled mp4, gif, or mov with a single command.
This is the foundation of the screenify CLI: capture a screen or window, then turn it into a polished video — no app window required. (To turn a website into a demo instead, see Web demos.)
Record
# Record for a fixed duration, then export in one shot
screenify record start --screen 1 --duration 8 --export out.mp4 --json
# Or start in the background and stop later
screenify record start --screen 1 --detach --json # -> { "type": "started", "recordingId", "path" }
screenify record stop --json # -> { "type": "stopped", "path" }Use screenify targets --json first to list the screens, windows, cameras, and microphones you can capture — the id it returns feeds straight into record.
Useful options:
| Option | What it does |
|---|---|
--screen <id> / --window <id> | Choose what to capture |
--windows <id,id,...> | Capture several windows composited into one frame (their real on-screen layout; keep them still while recording) |
--area "x,y,w,h" | Capture just a region |
--system-audio | Include system audio |
--duration <seconds> | Record for a fixed time, then stop |
--detach | Return immediately; stop later with record stop |
--export <path> | Record and export in a single step |
Each recording is saved as a .screenify project in your library, which you can re-export with different styling any time.
Export & style
This is what sets screenify apart from a raw recorder — any export can be styled straight from flags:
| Flag | Effect |
|---|---|
--wallpaper <id|category> | Wallpaper background (e.g. orange, or dark/dark_1.png) |
--background <#hex> | Solid color background |
--padding <n> | Space around the recording |
--rounding <n> | Rounded corners |
--no-background | Recording fills the whole frame |
--watermark [text] | Add a watermark (optional custom text) |
--aspect <wide|vertical|square|classic|tall> | Output aspect ratio |
--camera-size <n> / --camera-pos <l|c|r> / --no-camera | Webcam overlay |
--device <id> / --device-color <id> | Wrap an iOS recording in a photoreal device frame (e.g. iphone-17-pro-max + cosmic-orange) |
--hide-cursor / --cursor-size <n> | Cursor styling |
--transition-in <kind[:ms]> / --transition-out <kind[:ms]> | Animate the video's opening/ending (fade, fade-white, slide-up/down/left/right, grow, shrink, blur; default 400ms) |
--music <on|off> / --music-volume <0-1> / --mute | Audio |
--width <px> / --fps <n> / --compression <minimal|social|web|potato> | Output quality |
# Turn a plain recording into a vertical, branded clip
screenify export demo.screenify -o reel.mp4 \
--aspect vertical --wallpaper mist --padding 60 \
--rounding 24 --watermark "Made with Screenify" --music onFor full control over any setting, use --set <path>=<value> (repeatable) or merge a config file with --config <file.json>. Discover every settable field with:
screenify config schema --jsonBy default, exports keep the recording's native resolution and frame rate, and your original project is never modified — the styling is applied to a temporary copy unless you pass
--save.
A recording you haven't styled exports with a random wallpaper and a watermark by default (the same look the app gives a new recording), so a one-step
record … --export out.mp4already looks polished. Choose your own with--wallpaper <id>/--background <#hex>, or get a plain frame with--no-background --no-watermark.
Output formats
Set --format, or just let the output's extension decide (-o demo.gif makes a GIF):
| Format | Notes |
|---|---|
mp4 | Default. Best for sharing, web, and uploads. |
gif | Auto-capped to 1280px wide unless you set --width / --height / --aspect. |
mov | Lossless container — best for re-editing elsewhere. |
Platform presets
--platform is a one-word shortcut that sets the right aspect ratio for where the video is going:
| Platform | Aspect |
|---|---|
youtube, twitter, x, linkedin | Wide (16:9) |
tiktok, reels, shorts | Vertical (9:16) |
instagram | Square (1:1) |
screenify export demo.screenify -o tiktok.mp4 --platform tiktok --wallpaper orangeAn explicit --aspect always overrides --platform.
iOS Simulator demos
Record a booted iOS Simulator straight from the terminal. You get a clean, full-screen capture — no surrounding window chrome — saved as a portrait .screenify project you can frame and style like any other recording.
# List booted simulators, then record one
screenify targets simulators --json # -> [{ "udid", "name", "runtime" }]
screenify record start --simulator --duration 8 --json # auto-picks the only booted device
# Frame it in a photoreal device mockup on export
screenify export demo.screenify -o demo.mp4 \
--device iphone-17-pro-max --device-color cosmic-orangeA simulator recording automatically zooms into each tap so the demo feels guided (turn it off with --no-auto-zoom), and the watermark and styling adapt to the vertical frame. Pass --simulator <udid> when more than one device is booted.
Device frames are part of Screenify Studio. If a frame doesn't appear on export, open that device and color once in the app to fetch it, then re-run the export.
Script the taps
You don't have to touch the simulator by hand — hand screenify a list of taps and it performs them while recording, then builds the zoom from them. Perfect for automated, repeatable demos and AI agents:
# taps.json: [ { "tap": [0.5, 0.28] }, { "wait": 2000 }, { "tap": [0.3, 0.55] }, { "swipe": { "from": [0.5, 0.8], "to": [0.5, 0.3] } } ]
screenify record start --simulator --actions taps.json --path demo.screenify --json
screenify export demo.screenify -o demo.mp4 --device iphone-17-pro-maxTap and swipe coordinates are fractions of the device screen (0–1, top-left origin). Keep the simulator window visible, and grant the terminal Accessibility permission (System Settings → Privacy & Security → Accessibility) so it can drive the taps.
Next
That's recording your own screen or an iOS Simulator. To turn a website into a finished demo automatically, see Web demos.
Command Line
Drive Screenify Studio from the terminal — record, turn any website into a polished demo, and let an AI direct it, all from a single JSON-speaking command built for people, agents, and CI.
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.