
Promo Video Recorder
Promo Video Recorder is an open-source Claude Code skill that turns any locally running web app into a polished, X-ready promo or demo video. It drives the app in Playwright's Chromium with a fake animated cursor, click-
- Updated June 21, 2026
- palamut62/promo-video-recorder
npx skills add https://github.com/palamut62/promo-video-recorder --skill promo-video-recorder| Last updated | June 21, 2026 |
|---|---|
| Repository | palamut62/promo-video-recorder ↗ |
What it does
Turn any locally running web app into a polished, X-ready promo or demo video - animated cursor, click-focused zoom, captions and music - without a native screen recorder.
Who is it for?
Developers and developers who want a share-ready launch or demo video of a local web app without editing software.
Skip if: Recording native desktop apps, mobile apps, or anything that is not a locally running web app reachable by URL.
What you get
A crisp, professionally-paced demo/promo mp4 - animated cursor, synced zoom, captions and music - ready to share on X in one command, with no manual video editing.
By the numbers
- MIT licensed
- Targets ~30-60s promo videos
- Exports h264/yuv420p/faststart mp4 sized for X
Files
Produces shareable product-demo videos of a locally running web app without needing a native screen recorder. It opens the app in Playwright's Chromium, overlays a fake animated cursor, applies smooth zoom that focuses on whatever is being clicked (the thing that makes app-store / X promo videos feel premium), then encodes an X-compatible mp4. It can also upload the result to X. The zoom is a real CSS transform: scale() on the page focused at the clicked element, so it's crisp at any resolution and perfectly synced to the action. You script scenes with helpers: h.zoomSel/zoomAt/unzoom (focus zoom), h.tap (move cursor + click ripple, auto-scroll into view), h.typeIn (human-like typing), h.caption/captionHide (on-screen captions), h.waitForSelector (await a real async result), h.download, h.showFile. Music can be auto-generated (calm ambient pad) or a file path. Verify the output with ffprobe + extracted frames before sharing; outward-facing posting waits for user approval.