Paste a link → get a smooth, cursor-guided demo video of any website.
🌐 Live site · ▶ Watch the demo
Paste this into Cursor, Claude Code, Codex — or any AI agent and it sets scrolltape up for you (one time). After that, you only paste URLs.
You are setting up scrolltape — paste a link, get a smooth, cursor-guided demo video
of any website (github.com/ahkamboh/scrolltape). It runs 100% on my machine. Set it up:
1. clone + install (one time):
git clone https://github.com/ahkamboh/scrolltape ~/scrolltape
cd ~/scrolltape && npm install && npx playwright install chromium
2. make sure ffmpeg is installed (it renders the MP4/WebM) — if `ffmpeg -version` fails,
install it: macOS brew install ffmpeg · Ubuntu sudo apt install ffmpeg · Windows winget install ffmpeg
3. install the skill so future requests need only a URL — copy skills/scrolltape/SKILL.md
into my agent's skills folder (Cursor ~/.cursor/skills/ · Claude ~/.claude/skills/ · Codex ~/.codex/skills/)
4. confirm ready — after this I'll just paste a site link and you record it.
After setup, no clone and no flags needed — just send a URL:
scrolltape https://yoursite.com
Optionally tweak it:
scrolltape https://yoursite.com
cursor: cute-paw
tour: interactive-hero
Your agent reads skills/scrolltape/SKILL.md, records it, and returns the renders/*.mp4.
cd ~/scrolltape
node bin/scrolltape.mjs https://yoursite.com --cursor cute-paw --tour interactive-hero→ writes renders/yoursite-scrolltape.mp4 (and .webm).
| Flag | Values | Default |
|---|---|---|
--cursor |
mac-hand · white-pointer · cute-paw · brand-dot | mac-hand |
--tour |
standard · interactive-hero · hero-only · quick-teaser · deep-dive · feature-focus | standard |
--viewport |
landscape · portrait · square | landscape |
--scroll |
slow · normal · fast | normal |
--hero |
seconds to hold on the hero | 3 |
--focus |
section ids to emphasize (a,b,c) |
— |
--visit |
also tour these routes in the same demo (/pricing,/about) |
— |
--follow |
auto-follow the nav links and tour those pages too | off |
--fill |
type sample values into the page's form fields (signup/contact demos) | off |
-o, --output |
output filename base | <domain>-scrolltape |
Full help: node bin/scrolltape.mjs --help
scrolltape can interact with the page while it records — handy for product demos that show real flows, not just a wall of text scrolling by.
Fill a form — --fill finds the signup/contact form (even below the fold), types realistic sample values, and clicks submit. It's guarded, so it never actually navigates away or sends anything:
▶ watch · scrolltape https://yoursite.com --fill
Tour multiple pages — --follow clicks through the nav and records every page in one continuous take (or name exact routes with --visit /pricing,/about):
▶ watch · scrolltape https://yoursite.com --follow
Playwright opens the page headless and records it while scrolltape drives a smooth, eased scroll and a cursor overlay; ffmpeg trims the load-in and exports MP4 + WebM. No cloud, no upload — 100% on your machine.
MIT © ahkamboh · built with Cursor (PARTNERS.md)

0 comments
log in to comment.