需要 Node.js 22+ 和 FFmpeg;交互式技能选择器默认不预选任何项,脚本或 CI 场景需用 npx hyperframes skills update 安装核心集;skills add 解析的注册表可能滞后 main 数小时,建议用与 CLI 版本匹配的 skills update
hyperframes
heygen-comApache-2.0活跃维护用 HTML 写动画,再通过 Puppeteer 和 FFmpeg 渲染成视频,专为 AI Agent 生成动态视频内容设计。
Write HTML. Render video. Built for agents.
npx hyperframes init my-video
cd my-video
npx hyperframes preview
npx hyperframes renderREADME 未说明
把 HTML/CSS 和可寻址动画确定性地渲染成 MP4 视频,专为 AI 编码代理设计
用 HTML 写动画,再通过 Puppeteer 和 FFmpeg 渲染成视频,专为 AI Agent 生成动态视频内容设计。
核心能力
- 将 HTML、CSS、媒体与可寻址动画渲染为确定性 MP4
- 提供 9 个技能,教代理完成规划、写 HTML、加动画、检查、预览、渲染
- 内置约 450 个可编辑源码的现成区块与组件
- 支持 CLI 本地预览(浏览器实时重载)与渲染
- 可接入 Claude Code、Codex、Cursor 等编码代理
容易踩的坑
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
- v0.9.26最新正式版2026-11-09 · 2026-11-09 00:05 UTC
HyperFrames v0.9.26
Released on 2026-11-08.
Cloud renders now find media whose file names have accents, even when macOS stores the name differently from the page. A large project's first history copy is also much faster.
Fixes
- CLI: Cloud render finds media whose file name is stored in another Unicode form than the page's (91ad7fb6e, #7419).
Performance
- Studio Server: A large project's first history copy takes a fraction of the time (2927fe615, #7415).
Full changelog
https://github.com/heygen-com/hyperframes/compare/v0.9.25...v0.9.26
- v0.9.252026-11-08 · 2026-11-08 20:25 UTC
查看更新说明
HyperFrames v0.9.25
Released on 2026-11-08.
Re-rendering a film with the same settings now gives the same result, because every render seeds its random values. A muted video's picture also no longer waits on its own audio track at a cut, and
checkreplays an unchanged project's last pass.Features
Fixes
- Core: A muted video's picture no longer waits on its own audio track at a cut (fa2e63515, #7412).
- Producer: Seed random values in every render so re-renders give the same film (eb16510a1, #7410).
- Core: Capture pages load only the clips on screen (12906e0bf, #7402).
Internal
Full changelog
https://github.com/heygen-com/hyperframes/compare/v0.9.23...v0.9.25
- v0.9.232026-11-08 · 2026-11-08 07:05 UTC
查看更新说明
HyperFrames v0.9.23
Released on 2026-11-08.
Fade-ins that follow a starting set now end fully visible instead of vanishing when the fade finishes. Failed script reports also name their library, and menu highlights match their panel.
Features
- Engine: A failed CDN script's report names its library and version, never its URL (adf14d732, #7394).
- Core: Preview health names the media element that held play (fd05a3860, #7159).
Fixes
- Core: A set written before its tween no longer erases the tween's end (75fe18c62, #7397).
- Studio: A menu row's highlight is rounder than its panel (ab785e9c5, #7395).
- Studio: Bound recovery and verify full-quality playback (3151fd213, #7393).
Internal
Full changelog
https://github.com/heygen-com/hyperframes/compare/v0.9.22...v0.9.23
- v0.9.222026-11-08 · 2026-11-08 01:47 UTC
查看更新说明
HyperFrames v0.9.22
Released on 2026-11-08.
Studio previews look sharper: scrubbing shows full-quality decoded frames, and seeking no longer drops to an incomplete picture. Renders also keep page timers on the film's schedule at any worker count.
Features
Fixes
- Producer: Keep page timers on the film's schedule at every worker count (fed14b016, #7390).
- Core: Retain complete preview pictures during native seeks (b87a01f6a, #7378).
Internal
- Producer: The injector budget test no longer leaves a no-op injector for later tests (34118d8f2, #7384).
Full changelog
https://github.com/heygen-com/hyperframes/compare/v0.9.21...v0.9.22
- v0.9.212026-11-07 · 2026-11-07 23:18 UTC
查看更新说明
HyperFrames v0.9.21
Released on 2026-11-07.
Cloud exports take big files and files given by full path, HDR clips keep their brightness, and Safari's picture meets the cut again.
Features
- CLI: Cloud uploads send a big file in parts, so a cut connection resends one part (3d7f12acd, #7375).
- Media Use: The voice credits line names the real source, your recording or any vendor (f5bde9533, #7380).
- Media Use: Your own voice recording is a voice line, and speed applies to it (14e598e5a, #7377).
Fixes
- Core: Safari video picture lands on the cut again, undoing the hidden pre-roll (841e90ffe, #7383).
- CLI: A media file referenced by its filesystem path goes into the cloud archive (e0c11bf09, #7381).
- Check: Lint and check skip compositions the project never mounts (7b79ab429, #7369).
- Engine: Hlg footage with a large header sei also tone-maps at hlg's white (b559a98d3, #7349).
- CLI: A re-encode of a media file over the cap is limited to fit it (57a75337b, #7376).
- Core: A film moves on past a video the browser never starts loading (a595755a3, #7368).
- Producer: Page timers during a render run on film time (59c2065d6, #7362).
- CLI: Transcribe names why whisper is missing and the one line that fixes it (9efbbdf5a, #7366).
- Check: Masked or clipped-away text no longer counts as overlapping (a3b8f521d, #7364).
- Check: The overlap finding names the decorative mark, data-layout-ignore (330be7cd2, #7365).
- CLI: Open stops the project's background preview first (896a77c30, #7297).
- CLI: Stop waiting for the cloud's file check when the caller aborts (336abaa80, #7361).
- Check: A Chrome that never becomes ready ends the check with a named error ([e827de256](https://github.co
HyperFrames is a free, open-source framework for turning HTML, CSS, media, and seekable animations into deterministic MP4 videos. Use it locally with the CLI, from AI coding agents with skills, or as the rendering core behind hosted authoring workflows.
The HyperFrames Studio app is free to use as well; its Pro plan adds HeyGen's top video, image, voice and music models.
Using Claude Code, Codex, Cursor, or another coding agent? Run npx hyperframes skills update once, then ask your agent to make a video.
Quick Start
With an AI coding agent
For Claude Code, install the versioned plugin:
claude plugin marketplace add heygen-com/hyperframes
claude plugin install hyperframes@hyperframes
To enable auto-update for the hyperframes marketplace, run claude in a
terminal in your project. In Claude Code's terminal UI, run /plugin, then select
Marketplaces → hyperframes → Enable auto-update. Afterward, use
/hyperframes:hyperframes. See the plugin guide
for Copilot, VS Code, Cursor, Gemini CLI, updates, and migration.
For standalone skills (including OpenCode), use:
npx skills add heygen-com/hyperframes
The picker opens with nothing pre-selected — the Core Skills group is all you need;
/slideshow,/remotion-to-hyperframes,/reverse-any-video,/style-samplingand/figmainstall on demand. Without the picker (a script or a CI job),npx hyperframes skills updateinstalls exactly the core set, whereasskills add --allinstalls all 9 published skills. The six repo-internal skills under.claude/skills/.agents/skillsare excluded by default. For the full published set usenpx hyperframes skills.
skills addresolves the skills.sh registry blob, which can lagmainby hours.npx hyperframes skills updateinstalls the skills from the release tag that matches your CLI version, so they match the CLI that runs them.
Run project-local installs from your video project's directory. From a HyperFrames
checkout, use npx hyperframes skills update for a global install instead: a
project-local installer target can overlap the tracked skills/ source and
overwrite uncommitted edits. See contributor setup.
Try a prompt like:
Using
/hyperframes, create a 10-second product intro with a fade-in title, a background video, and subtle background music.
The skills teach agents the HyperFrames production loop: plan the video, write valid HTML, wire seekable animations, add media, lint, preview, and render. They work with Claude Code, Codex, Cursor, Gemini CLI, IBM Bob, and other coding agents that support skills.
Skills
HyperFrames ships 9 skills. Make any video by asking for it; the /hyperframes skill carries the contract and the references (film, captions, overlays, motion, look). Read it first.
For standalone installation, default to the core set (/hyperframes, /hyperframes-cli, /hyperframes-registry, /media-use). npx hyperframes skills update installs exactly that from anywhere; the interactive picker (npx skills add heygen-com/hyperframes) lists it as the "Core Skills" group, nothing pre-selected. The picker is interactive-only — a non-interactive or agent run without --skill installs all 9. Use npx skills add heygen-com/hyperframes --all to install the complete published set deliberately (skips the picker), or npx skills add heygen-com/hyperframes --skill <name> for just one (bare name, no leading /).
Standalone installs stay lean after that: npx hyperframes init installs the core set only when it is missing and never touches a skill you already have (npx hyperframes skills update refreshes them, and never removes one); /figma, /slideshow, /remotion-to-hyperframes and /reverse-any-video install on demand with npx hyperframes skills update <name>. Nothing re-pulls the full set behind your back.
Plugin packages
Plugins bundle the full skill catalog and use their agent's update manager.
bun run package:agent-plugin builds the committed portable ZIP, source metadata,
and SHA-256 checksum. See the maintainer checklist.
Upload to Codex
Build the upload-ready Codex plugin archive from the committed HEAD version of the manifest, brand assets, and skills:
bun run package:codex-plugin
This writes dist/hyperframes-plugin.zip with a hyperframes/ root folder and fails if the archive exceeds Codex's 100 MB upload limit.
Core set
| Skill | Use when |
|---|---|
/hyperframes | Read first for any request to make, edit, animate or render a video, motion graphic, captions or overlays with HyperFrames (HTML rendered to video). Holds the render contract and the work loop, and points to the references for format, motion, look, captions, whole films and storyboards. |
/hyperframes-cli | The HyperFrames CLI by job — scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history — plus reading its JSON and recovering from build or render failures. |
/hyperframes-registry | About 450 ready-made blocks and components installed as editable source — transitions, overlays, titles, kinetic type, captions, charts, maps, 3D, camera moves. Use before hand-building any named visual; also for hyperframes add and catalog. |
/media-use | Get or make any media for a video — music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks — with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull. |
On demand
| Skill | Use when |
|---|---|
/figma | Bring Figma into a video — rendered assets, brand tokens, components, storyboard frames as reconstructed motion, shaders and connector-assisted motion. Use when you paste a figma.com link. |
/slideshow | A presentation, pitch deck or interactive deck — discrete slides, fragment reveals, branching, hotspot navigation, presenter mode with speaker notes. Output is a navigable deck, not a rendered MP4. |
/remotion-to-hyperframes | Bringing existing video code or footage into HyperFrames (Remotion first; also Motion Canvas, Lottie, Three.js, canvas, other tools' renders), verified frame by frame. |
/reverse-any-video | Rebuilding any video file as an editable HyperFrames project (motion graphics, talking heads, live action, AI-generated footage), checked frame by frame against the original. HyperFrames Pro. |
/style-sampling | Making a new episode on your topic in one of five proven styles: Collage Explainer, Finance Explainer, Animated Science Explainer, 3D Brand Explainer, 3D True Crime. HyperFrames Pro. |
For visual design handoff workflows, see the Claude Design guide and Open Design guide.
Manually with the CLI
npx hyperframes init my-video
cd my-video
npx hyperframes preview # preview in browser with live reload
npx hyperframes render # render to MP4
Requirements: Node.js 22+, FFmpeg
What You Can Build
Need ideas? Browse the Showcase for finished videos you can watch, read, run, and remix.
- Product launch videos and feature announcements
- PR walkthroughs with animated code diffs, narration, and captions
- Data visualizations, chart races, and map animations
- Social videos with kinetic captions, overlays, and music
- Docs-to-video, PDF-to-video, and site-tour explainers
- Reusable motion graphics for automated content pipelines
Frame.md
frame.md — your design system, ready for video.
Every brand has a design.md. None of them were written for a camera. frame.md is the missing translation layer: it takes your web-context design spec and inverts it for the frame — the same tokens, the same rules, but rewritten so an AI agent can compose a promo video without guessing at scale or reaching for web chrome.
The output is a DESIGN.md superset your whole toolchain can read. Atoms stay sacred. Composition stays free. Numbers come from the script.
Browse and remix them all at hyperframes.studio/design.
How It Works
Define a video as HTML. Add data attributes for timing and tracks. Use GSAP, CSS, Lottie, Three.js, Anime.js, WAAPI, or your own frame adapter for seekable animation.
<div id="stage" data-composition-id="launch" data-start="0" data-width="1920" data-height="1080">
<video
class="clip"
data-start="0"
data-duration="6"
data-track-index="0"
src="intro.mp4"
muted
playsinline
></video>
<h1 id="title" class="clip" data-start="1" data-duration="4" data-track-index="1">Launch day</h1>
<audio
data-start="0"
data-duration="6"
data-track-index="2"
data-volume="0.5"
src="music.wav"
></audio>
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script>
<script>
const tl = gsap.timeline({ paused: true });
tl.from("#title", { opacity: 0, y: 40, duration: 0.8 }, 1);
window.__timelines = window.__timelines || {};
window.__timelines.launch = tl;
</script>
</div>
Preview instantly in the browser. Render locally or in Docker. The renderer seeks each frame in headless Chrome and encodes the result with FFmpeg, so the same input produces the same video.
HyperFrames Stack
HyperFrames is the open-source rendering engine, plus a growing set of tools around HTML-native video creation.
| Piece | Status | What it does |
|---|---|---|
| CLI | Available | Scaffold, preview, lint, inspect, and render local video projects |
| Core / Engine / Producer | Available | Parse compositions, drive headless Chrome, encode video, and mix audio |
| Catalog | Available | Reusable blocks and components for transitions, overlays, captions, charts, maps, and effects |
| Agent skills | Available | Teach coding agents the video-production patterns that generic web docs miss |
| Studio | Available, evolving | Browser surface for previewing and editing compositions |
| AWS Lambda rendering | Available | Deploy a distributed render stack and drive renders from your laptop or CI |
| hyperframes.studio | Available | Community playground for previewing, iterating, sharing, and rendering HTML-native video projects |
| frame.md | Available | Invert your design system for the camera — a DESIGN.md superset an agent can compose video from |
Catalog
Install ready-to-use blocks and components:
npx hyperframes add flash-through-white # shader transition
npx hyperframes add instagram-follow # social overlay
npx hyperframes add data-chart # animated chart
Browse the catalog at hyperframes.heygen.com/catalog.
Why HyperFrames?
- HTML-native: compositions are HTML files with data attributes. No React requirement, no proprietary timeline format.
- Agent-friendly: agents already write HTML, and the CLI is non-interactive by default.
- Deterministic: same input, same frames, same output. Built for CI, regression tests, and automated rendering.
- No build step: an
index.htmlcomposition plays as-is and can be previewed directly in the browser. - Adapter-based animation: bring GSAP, CSS animations, Lottie, Three.js, Anime.js, WAAPI, or a custom runtime.
- Open source: Apache 2.0 license, with no per-render fees or commercial-use thresholds.
HyperFrames vs Remotion
HyperFrames is inspired by Remotion. Both tools render video with headless Chrome and FFmpeg. The main difference is the authoring model: Remotion's bet is React components; HyperFrames' bet is plain HTML that humans and agents can both write easily.
| HyperFrames | Remotion | |
|---|---|---|
| Authoring | HTML + CSS + seekable animation | React components |
| Build step | None; index.html plays as-is | Bundler required |
| Agent handoff | Plain HTML files | JSX / React project |
| Library-clock animations | Seekable, frame-accurate via adapters | Wall-clock animation patterns need care |
| Distributed rendering | Local and AWS Lambda render paths | Remotion Lambda, mature cloud renderer |
| License | Apache 2.0 | Source-available Remotion License |
Read the full comparison in the HyperFrames vs Remotion guide.
Documentation
Full documentation: hyperframes.heygen.com/introduction
Packages
| Package | Description |
|---|---|
hyperframes | CLI for creating, previewing, linting, and rendering compositions |
@hyperframes/core | Types, parsers, generators, linter, runtime, and frame adapters |
@hyperframes/engine | Seekable page-to-video capture engine using Puppeteer and FFmpeg |
@hyperframes/producer | Full rendering pipeline for capture, encode, and audio mix |
@hyperframes/studio | Browser-based composition editor UI |
@hyperframes/player | Embeddable <hyperframes-player> web component |
@hyperframes/shader-transitions | WebGL shader transitions for compositions |
@hyperframes/aws-lambda | AWS Lambda SDK and deployment surface for distributed renders |
Community
HyperFrames is used in production at HeyGen, with community examples from teams like tldraw, TanStack, and others in ADOPTERS.md. Open a PR if your team is using HyperFrames.
- Questions and ideas: Discord
- Bugs and feature requests: GitHub Issues
- User research: Book a casual 30-minute conversation with the HyperFrames team — no preparation or sales pitch
- Security reports: SECURITY.md
- Contributions: CONTRIBUTING.md
Development Note
The repo uses Git LFS for golden regression-test baselines under packages/producer/tests/**/output.mp4 (about 240 MB of .mp4 files). If you're cloning the full repo for development, install Git LFS first:
# macOS
brew install git-lfs
# Ubuntu / Debian
sudo apt install git-lfs
# Windows
winget install GitHub.GitLFS
# Then, once per machine
git lfs install
If you only need source files, you can skip LFS content:
GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/heygen-com/hyperframes.git