tapreel-make
Make a narrated how-to video of a web app with Tapreel. Use when the user wants a video guide, tutorial or walkthrough of an app they own or manage. Covers script, scenes, consent, narration, recordin
SKILL.mdskills/tapreel-make/SKILL.md
GitHubMake a how-to video with Tapreel
Run the tapreel CLI (node <plugin>/bin/tapreel.mjs, called tapreel below) from the root of the app's repo.
First run the tapreel-setup skill so every tool is present.
Permissions come first (never skip, never self-approve)
Tapreel drives the real app in a browser. Before any recording:
- Ask the user which URL, which demo account (never a real person's), whether the walkthrough changes data, and whether the window should be hidden.
- Put those answers in
tapreel/tapreel.config.jsonunderaccess(baseUrl,allowedOriginsincl. any API origin the app calls,accountIsDemo: true,dataChanges). - The account's name and password come from environment variables only (
TAPREEL_USER,TAPREEL_PASS). Never write them to a file, the chat or the repo. - The owner runs
tapreel consentand approves. You must not runtapreel consent --yesfor them. Consent is tied to the settings: changing the target or data policy needs it again. - If
dataChangesisrestored-by-hooks, writetapreel/hooks.mjs(beforesnapshots,afterrestores) and show it to the user. The recorder blocks every site not inallowedOrigins. Entries are sites, not pages (https://app.example.com, orhttps://*.example.comfor subdomains too). After a recording, tell the user which blocked hosts it reported and ask before adding any.
Steps
tapreel init, then edit the config (name, colours, URL, chips, voice).tapreel doctormust pass.- Write
tapreel/script.json: scenes with short spoken lines (one sentence each, 6 to 14 words, friendly, no jargon). Use thesayfield for how a word should sound ("S M F D"). Aim for 5 to 8 scenes, 4 to 8 minutes.holdadds a pause for on-screen action. tapreel plan(a first timeline from estimates),tapreel narrate,tapreel plan --freeze(locks each sentence's length so later edits never move recorded footage), thentapreel planagain.- Write one
tapreel/scenes/<scene id>.mjsper scene (seetemplates/scene.mjs). Time every action to the narration withS.at(S.cue('line start') + offset). Wrap steps inui.safeso one missing element does not stop the scene. tapreel record(or--scenes 2,3), read the "late" notes, fix timing, re-record only those scenes.tapreel narrate --mix-only,tapreel build, thentapreel check.- Follow the
tapreel-qarules. Tell the user which timestamps to listen to; you cannot hear the audio.
Limits (v0.1)
Web apps and PWAs in Chromium with a phone-shaped layout. Not yet: desktop-window layout, Electron, native Windows apps. Say so rather than faking it.