HyperFrames master (Logan default)
Repo: https://github.com/heygen-com/hyperframes
Docs index: https://hyperframes.heygen.com/llms.txt
CLI docs: npx hyperframes docs <topic>
When the user wants video / motion / captions / kinetic product stories, treat HyperFrames as the default unless they explicitly name another stack.
Always start here
- Invoke the relevant HyperFrames skill before writing compositions.
- Router skill:
hyperframes- capability map + which workflow. - Never invent data-* semantics from generic web knowledge alone.
Workflow routing
| Intent | Workflow skill |
|---|---|
| Product URL / SaaS promo | product-launch-video |
| General site tour from URL | website-to-video |
| Text topic, no site | faceless-explainer |
| Captions on talking-head | embedded-captions |
| Graphic overlays on talking-head | talking-head-recut |
| GitHub PR explainer | pr-to-video |
| Short motion graphic | motion-graphics |
| Music-driven | music-to-video |
| Deck / slides | slideshow |
| Custom / fallback | general-video |
| Remotion → HyperFrames | remotion-to-hyperframes |
Domain skills: hyperframes-core, hyperframes-animation, hyperframes-keyframes,
hyperframes-creative, hyperframes-cli, hyperframes-media, media-use,
hyperframes-registry, figma, gsap.
Commands
npm run dev # preview server - long-running, background only
npm run check # lint + runtime + layout + motion + contrast
npm run render # MP4
npm run publish # share link
npx hyperframes lint --verbose
npx hyperframes docs <topic>
npx hyperframes skills update # refresh skills when missing/stale
Key composition rules
- Timed elements:
data-start,data-duration,data-track-index - Timed elements must
class="clip" - GSAP timelines paused + registered:
window.__timelines = window.__timelines || {}; window.__timelines["composition-id"] = gsap.timeline({ paused: true }); - Video:
mutedvideo + separate<audio>when needed - Sub-comps:
data-composition-src="compositions/file.html" - Deterministic only - no
Date.now(),Math.random(), network in render path
After edits
Always npm run check before declaring done. Fix errors; review warnings.
Stack pairing (Yuval / YUV.AI defaults)
- Prefer HyperFrames + GSAP for motion video
- React/Next when product UI - still export motion via HyperFrames workflows when the deliverable is video
- html-to-canvas / HyperFrames render pipeline over ad-hoc ffmpeg slideshows unless user asks otherwise