slideshow
Skill30 starsChanged 40 days agoMITView on GitHub
Build a HyperFrames slideshow to present live - slides, fragment reveals, branching hotspots and presenter mode with speaker notes, served by `hyperframes present` - or turn an existing page into one. Use when the person wants a deck or presentation rather than a rendered video.
16 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- edenfunf/reelmimictheir own version, first seen Nov 4, 2026
- aipphilie/claude-skillsword for word, first seen Nov 1, 2026
- Rajveerx11/skillstheir own version, first seen Oct 25, 2026
- langchain-ai/design-agenttheir own version, first seen Oct 25, 2026
- shreeve1/Claude-Coworktheir own version, first seen Oct 13, 2026
- sthuthillc/kenectaitheir own version, first seen Oct 11, 2026
Used with
Projects with it also use captions-overlay, motion-doctrine and 3 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
ElyzeSolutionsSkillcaptions-overlay
Overlay doctrine for the embedded-captions workflow — the caption MODEL (drop / rail / embed) and the rule that captions are an OVERLAY composited on top of the film, never a reserved bottom band you shift content up to avoid. Load when adding captions/subtitles to a talking-head or launch video, when deciding whether a phrase should be dropped, ride the verbatim rail, or be promoted to a scarce embedded climax, when laying out a composition that will carry captions (do NOT reserve a keep-out band), or when centering a composition on the true frame center under captions. Quotes the rail+embed model from embedded-captions and constraint #13 (captions overlay, keep-out band retired) from the product-launch-video scene agent. Applies ON TOP of embedded-captions.
Also in 3 projects that use this
ElyzeSolutionsSkillmotion-doctrine
GATEWAY — load FIRST before composing any HyperFrames animation or video. The high-level motion law that makes a multi-scene video feel like ONE continuous camera move instead of a stack of independently-animated slides. Covers the vector law (how you exit determines how you enter, incl. the Z scale-sign rule), the film's current, carrier elements, causal motion, the Seam Gate (build-gate enforcement), the ban on idle wobble (motion must PERFORM, not breathe), stillness-before-climax, and the sustained-motion routes. Routes to the low-level technique skills (cut-the-curve — the full catalog incl. waterfall entry + nudge curve, oversized-cursor, seam-craft). These rules SUPERSEDE generic / upstream motion guidance. [continuity, direction, vector, momentum, seam, transition, ease, performance, idle-motion, narrative-motion, film-grammar]
Also in 3 projects that use this
- +3 more from ElyzeSolutions
Other versions16 projects use a version of this.
Word for word · 1
- aipphilie/claude-skills★ 0100% same
Edited · 1
- heygen-com/hyperframes★ 81k94% same
Wrote their own version · 14
- edenfunf/reelmimic★ 1.8ksame name
- EvovexAI/EvoFlow★ 612same name
- langchain-ai/design-agent★ 596same name
- duyet/clickhouse-monitoring★ 303same name
- Samin12/skills★ 8same name
- ElyzeSolutions/skills★ 1same name
- Rajveerx11/skills★ 1same name
- dalerodr/play-maker★ 0same name
- jaron-goh-centr/claude-skills★ 0same name
- kschiavo-beep/claude-skills★ 0same name
4 more not listed
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 repository20 other files it gives its agents.
- embedded-captionsSkill
- faceless-explainerSkill
- figmaSkill
- general-videoSkill
- hyperframes-animationSkill
- hyperframes-audioSkill
- hyperframes-cliSkill
- hyperframes-coreSkill
- hyperframes-creativeSkill
- hyperframes-keyframesSkill
- hyperframes-registrySkill
- hyperframesSkill
- hyperframes-studioSkill
- media-useSkill
- motion-graphicsSkill
- music-to-videoSkill
- product-launch-videoSkill
- pr-to-videoSkill
- remotion-to-hyperframesSkill
- talking-head-recutSkill
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 2 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 15 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 6
Plugin installs: Before setup or freshness commands, follow plugin execution rules when this skill is inside a HyperFrames plugin.
- Distinctive: line 49
Keep the source's look, motion, interactions and media behaviour.
- Very specific: line 52
Every copied <video>/<audio> needs data-start and data-duration (data-has-audio="true" when its sound plays), and no preload="none".
- Very specific: line 58
Run npx hyperframes check --json until it is clean.
“Common” is measured: kept by at least 6 in 10 of the 15 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
Plugin installs: Before setup or freshness commands, follow plugin execution rules when this skill is inside a HyperFrames plugin.
HyperFrames slideshow
A slideshow is a normal composition (the /hyperframes contract applies) plus one JSON island that says which scenes are slides and how they connect. The deliverable is a running deck, not an MP4.
What changes from a video project
- Each slide is a top-level scene in the composition file:
data-composition-id,data-start,data-duration,data-label,data-width,data-height. There is no master root composition wrapping them. - One island per composition, near the top of
<body>, written in the HTML (never generated by script;presentreads the file statically):
<script type="application/hyperframes-slideshow+json">
{
"slides": [
{ "sceneId": "hook", "notes": "Pause on the number." },
{
"sceneId": "problem",
"fragments": [11.0, 15.0],
"hotspots": [
{
"id": "h1",
"label": "Where does $40B come from?",
"target": "market-detail",
"region": { "x": 55, "y": 60, "w": 40, "h": 20 }
}
]
}
],
"slideSequences": [
{ "id": "market-detail", "label": "Market sizing", "slides": [{ "sceneId": "mkt-math" }] }
]
}
</script>sceneIdequals a scene'sdata-composition-id(or givestartTime/endTime).notesare presenter-only.ttsScript,ttsAudioUrlandttsDurationMsare reserved and not wired yet.- Fragments are absolute timeline times (the same clock as
data-start, not offsets inside the slide) within the slide's[start, end]. Navigation seeks, it never plays: each hold state must look right when the timeline is seeked straight to that time. A slide without fragments enters at a rest frame inside it. - Branch slides are ordinary scenes listed only in
slideSequences, never in the mainslidesarray. A hotspot'stargetis a sequenceid;regionis a percentage box (omit it for a full-slide button). Back returns to the slide that held the hotspot. - Text the audience must read is at least 40 px at 1920×1080. Before hand-building any named visual, search
npx hyperframes catalog --query "<the visual, in English>" --json: it ranks the whole registry with nothing installed.
Porting an existing page
- Keep the source's look, motion, interactions and media behaviour; port its widgets, players and visualizers rather than approximating them.
- Movement the page drove by scroll, wheel or a camera layer becomes a camera move from one focal point to the next on slide navigation, never a page visibly scrolling. Keep each move direct, without reversals the source doesn't make.
- Screenshots, posts, charts, code and any image with readable text are evidence: keep their aspect (
object-fit: contain) and check all four edges for crops. - Every copied
<video>/<audio>needsdata-startanddata-duration(data-has-audio="true"when its sound plays), and nopreload="none". Custom media chrome reads the native element's events andcurrentTime, never its own timer. - Hidden stacked slides need
opacity: 0,visibility: hiddenandpointer-events: nonetogether, or an invisible layer swallows clicks.
Present and hand off
- Never render a deck to MP4:
renderkeeps only the first scene and truncates silently. For stills,snapshot --ateach slide. - Run
npx hyperframes check --jsonuntil it is clean. The slideshow rule checks that everysceneIdresolves, every hotspottargetexists, fragments sit inside their slide, and main-line slides don't overlap. - Serve it with
npx hyperframes present <project-dir>and hand over the URL it prints: "Click Present, or press P, to open the audience tab." - The project's root
index.htmlshould open as a working deck:<hyperframes-slideshow>around<hyperframes-player src="…">, with the raw composition in a subfolder if needed. The component owns Present (P), Prev/Next, the counter, global mute, fullscreen, swipe, hotspots, presenter notes (editable, kept per deck) and stopping media on slide exit. Don't build your own versions of any of these. - Screen sharing: in Google Meet share the audience tab, which keeps rendering in the background. In Zoom drag the audience tab into its own window and share that; a fully covered window freezes.
- A deck opened from the bare player bundle without
presentneeds workarounds:references/standalone-harness.md.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

