demo-recorder
Skill167 starsChanged 10 days agoApache-2.0View on GitHub
Use when the user wants a scripted screen-recording demo video of a web app, a narration script or text-to-speech voice-over for one, or a dubbed cut.
We split this skill into the rules it gives an agent
10 rules. 0 are common, 1 is distinctive, and 9 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Create a task per step below, phrased with its completion criterion, then work them to completion.
- Very specific: line 13
Write demos/<demo>.mjs exporting options, setup(), run(h, ctx) and teardown(ctx), modelled on assets/examples/openspeccer.mjs.
- Very specific: line 15
Call h.scene("<name>") at the start of each narrated section.
- Very specific: line 16
Write demos/<demo>.md: one ## N.
- Very specific: line 17
Run $M record encode DEMO=demos/<demo>.mjs.
- Very specific: line 19
Ask which Cloney character and engine to use (offer $M voices.
- Very specific: line 20
Run $M narrate DEMO=demos/<demo>.mjs VOICE=<character> ENGINE=<engine>.
- Very specific: line 21
Run $M dub DEMO=demos/<demo>.mjs.
- Very specific: line 27
Check clips with ffprobe and ffmpeg -af volumedetect.
- Very specific: line 34
Keep spaces out of the DEMO path.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Drives headless Chromium through a scripted walkthrough, encodes a silent 3K 60fps demo.mp4, then optionally voices the narration with Cloney and dubs it on. Below, $M means make -f <this-skill-dir>/Makefile; run it from the directory holding demos/; output goes to ~/Downloads/demo-recorder/<demo>/ unless OUT= says otherwise. $M help lists the targets; each script in scripts/ takes --help.
Workflow
- Create a task per step below, phrased with its completion criterion, then work them to completion.
- Write
demos/<demo>.mjsexportingoptions,setup(),run(h, ctx)andteardown(ctx), modelled onassets/examples/openspeccer.mjs; thehhelpers are inscripts/lib/recorder.mjs. - In
setup(), record against a throwaway copy of the target so on-camera edits leave the user's repo untouched. - Call
h.scene("<name>")at the start of each narrated section. - Write
demos/<demo>.md: one## N. Titlesection per scene in recording order, an_On screen: ..._note, then the spoken text at about 2.2 words per second of scene (example:assets/examples/openspeccer.md). - Run
$M record encode DEMO=demos/<demo>.mjs. Done when~/Downloads/demo-recorder/<demo>/timings.tsvlists every scene and you have viewed every image in~/Downloads/demo-recorder/<demo>/stills/. - Fix what the stills show (missed click, wrong tab, personal paths via
options.hide), then repeat step 6. - Ask which Cloney character and engine to use (offer
$M voices; defaults are inscripts/narrate.sh --help), unless the user records clips themselves asN.wavin~/Downloads/demo-recorder/<demo>/audio/. If acloneyskill is available, activate it first; otherwisecloney --helpcovers the CLI. - Run
$M narrate DEMO=demos/<demo>.mjs VOICE=<character> ENGINE=<engine>. Done when no row says FAILED or "runs past scene". Re-run for a take that said the wrong words (a fresh seed usually fixes it); trim the text of a clip that runs past its scene. - Run
$M dub DEMO=demos/<demo>.mjs. Done when its table has no(no clip)row; then report~/Downloads/demo-recorder/<demo>/demo-dubbed.mp4.
Gotchas
- Chromium needs its own sandbox and Cloney needs Metal; both fail inside the agent sandbox, so run
recordandnarrateunsandboxed. recordinstalls Playwright into the skill directory on first run; that needs network access.- Check clips with
ffprobeandffmpeg -af volumedetect; never play audio, leave listening to the user. - Breeze takes 35-75 s per clip.
narrate.shcaches renders and re-renders only sections whose text or voice changed, so edit and re-run freely. Delete~/Downloads/demo-recorder/<demo>/audio/.narrate/N.*to re-render one clip;FORCE=1re-renders all. - Pass
VOICE/ENGINEon everynarratefor a non-default voice; omitting them re-renders every clip in the default voice. narratetranscribes every take and rejects one that says the wrong words;TAKES=3keeps the shortest that passes.VERIFY=0skips the check.- Without Cloney,
narrateanddubskip with a message;$M demostill produces the silent cut. dub.shpairs clipN.wavwith the Nth scene intimings.tsv; keep section numbers in scene order.- The cursor is an injected overlay that only moves on mouse events;
h.moveToonto whatever the narration names, andh.waitbefore the nexth.sceneso the narration has room. - Keep spaces out of the
DEMOpath; make splits it and mangles the output folder name. ~/Downloads/demo-recorder/<demo>/frames/runs to about 800 MB per 90 s; offer to delete it once the cut is final.
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- milad-ahmd/agent-skills★ 5same name
- dot-skill/skillerr-browser★ 2same name
- its-janghoon/agent-skills★ 0same name
- mozdowski/claude-skills★ 0same name
- savagemanage/claude-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository71 other files it gives its agents.
- Rules/CLAUDE.mdCLAUDE.md
- Skills/ambitious-model-use/CLAUDE.mdCLAUDE.md
- Skills/authoring-claude-md/CLAUDE.mdCLAUDE.md
- Skills/bento-slides/CLAUDE.mdCLAUDE.md
- Skills/extract-wisdom/CLAUDE.mdCLAUDE.md
- Skills/ghostty-config/CLAUDE.mdCLAUDE.md
- Skills/llm-wiki/CLAUDE.mdCLAUDE.md
- Skills/llm-wiki/examples/CLAUDE.mdCLAUDE.md
- Skills/openspec-bootstrap/CLAUDE.mdCLAUDE.md
- Skills/openspeccer/CLAUDE.mdCLAUDE.md
- Skills/rewrite-slop/CLAUDE.mdCLAUDE.md
- Skills/skill-creator-primer/CLAUDE.mdCLAUDE.md
- Skills/yue2-music/CLAUDE.mdCLAUDE.md
- ai-changelogSkill
- ambitious-model-useSkill
- analyse-designSkill
- apply-mantel-stylesSkill
- authoring-claude-mdSkill
- backlogSkill
- bento-slidesSkill
- code-reviewSkill
- code-simplificationSkill
- creating-development-plansSkill
- critical-thinking-logical-reasoningSkill
- deeperSkill
- deferred-task-executionSkill
- excalidraw-diagramsSkill
- explainSkill
- extract-wisdomSkill
- find-docsSkill
- ghostty-configSkill
- githubSkill
- golang-developmentSkill
- graphifySkill
- grill-meSkill
- guided-demoSkill
- handoffSkill
- hardware-designSkill
- herdrSkill
- home-assistantSkill
- html-design-examplesSkill
- improve-codebase-architectureSkill
- json-schema-lookupSkill
- liteparseSkill
- llm-prompting-guideSkill
- ml-llm-wikiSkill
- llm-wikiSkill
- mermaid-diagramsSkill
- openspec-bootstrapSkill
- openspeccerSkill
- pptx-to-mdSkill
- prompt-enhancerSkill
- prototypeSkill
- python-developmentSkill
- raspberry-pi-pico2Skill
- release-debriefSkill
- retroSkill
- rewrite-slopSkill
- rexSkill
- rust-developmentSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

