引言
"Write HTML. Render video. Built for agents."
这是「每日一个开源项目」系列的第 242 篇。今天的项目是 HyperFrames —— HeyGen 开源的 HTML 转视频框架,68,154 颗 Star,6,157 个 Fork,Apache-2.0 协议,HeyGen 自己的生产环境在用。
让 AI Agent 做视频,通常要面对两个难题:一是视频的"源码"格式——专有时间线格式 Agent 不熟,React 工程又需要打包构建;二是结果能不能复现——今天渲出来的和明天渲出来的帧要一致,才能放进 CI、做回归测试。HyperFrames 的回答很干脆:视频就是一个 HTML 文件,用 data-* 属性标注时间和轨道,动画用 GSAP/CSS/Lottie/Three.js 这些"可 seek"的库来写;渲染时无头 Chrome 逐帧 seek 截图,FFmpeg 编码,同样的输入得到同样的输出。而 Agent 最擅长写的东西,恰好就是 HTML。
你会学到什么
- HyperFrames 的核心模型:HTML + data 属性 + 可 seek 动画,如何变成确定性的 MP4
- 怎样在 Claude Code / Codex / Cursor 里用一句话让 Agent 出片
- 21 个 Agent Skill 的分层设计:一个路由 Skill + 创作工作流 + 领域 Skill
frame.md:把网页设计系统翻译成"给镜头看"的设计规范- 与 Remotion 的取舍对比
前提知识
- 了解基本的 HTML/CSS,知道 GSAP 这类动画库更好
- Node.js 22+ 和 FFmpeg 环境
- 使用过 Claude Code、Codex 或 Cursor 等编码 Agent 会更容易体会它的设计意图
项目背景
概述
HyperFrames 是一个开源框架,把 HTML、CSS、媒体文件和可 seek 的动画变成确定性的 MP4 视频。它可以三种方式使用:本地 CLI、通过 Skill 交给 AI 编码 Agent、或者作为托管式创作工作流背后的渲染内核。
它受 Remotion 启发,两者都是"无头 Chrome + FFmpeg"的渲染思路,核心差别在创作模型:Remotion 押注 React 组件,HyperFrames 押注"人和 Agent 都能轻松写的纯 HTML"。
作者 / 团队
- 开发方: HeyGen(heygen-com 组织),AI 数字人视频公司
- 主要语言: TypeScript
- 许可证: Apache-2.0,无每次渲染收费,也没有商用门槛
- 创建时间: 2026-03-10
- 当前状态: 非常活跃,最近一次提交就在今天;HeyGen 生产环境在用,社区案例包括 tldraw、TanStack 等
项目数据
- ⭐ GitHub Stars: 68,154+
- 🍴 Forks: 6,157+
- 📄 许可证: Apache-2.0
- 📅 创建时间: 2026-03-10
- 👥 核心贡献者:miguel-heygen(2807 次提交)、vanceingalls(1141)、jrusso1020(953)、ukimsanov(262)
- 📬 Open Issues: 387
- 🏷️ Topics: ai, ai-agents, animation, claude-code, ffmpeg, gsap, html-to-video, mcp, motion-graphics, puppeteer, rendering, video-editor 等
快速上手
交给 Agent(推荐路径)
Claude Code 安装带版本的插件:
claude plugin marketplace add heygen-com/hyperframes
claude plugin install hyperframes@hyperframes
之后用 /hyperframes:hyperframes 即可。其他 Agent(包括 OpenCode)用独立 Skill 安装:
npx skills add heygen-com/hyperframes
# Agent 或非交互场景用这个,只装核心集:
npx hyperframes skills update
然后直接说需求:
Using
/hyperframes, create a 10-second product intro with a fade-in title, a background video, and subtle background music.
手动用 CLI
npx hyperframes init my-video
cd my-video
npx hyperframes preview # 浏览器实时预览
npx hyperframes render # 渲染成 MP4
要求 Node.js 22+ 和 FFmpeg。
核心剖析
视频即 HTML:data 属性 + 可 seek 动画
HyperFrames 的合成格式就是一个普通 HTML 文件:
<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>
data-start、data-duration、data-track-index 给每个元素定出时间和轨道,GSAP 时间线设为 paused 并注册到 window.__timelines。这里的关键词是"seekable(可 seek)":渲染器不是靠真实时钟播放,而是让页面跳到第 N 帧、截图,再跳到第 N+1 帧。动画只要能被"定位到任意时刻",就能被逐帧截取——GSAP、CSS 动画、Lottie、Three.js、Anime.js、WAAPI 都能通过适配器接入,也可以自己写 frame adapter。
这个设计带来三个直接好处:不需要构建步骤(index.html 本身就能在浏览器里直接播放预览);同样输入得到同样帧,适合 CI 与回归测试;Agent 交接物是纯 HTML 文件,而不是一个需要打包的 JSX 工程。仓库自己也用 Git LFS 存了约 240 MB 的黄金基线 MP4 做渲染回归测试,这是"确定性"被认真对待的一个侧面证据。
21 个 Skill 的三层设计:路由、工作流、领域
很多项目也提供 Agent Skill,但 HyperFrames 的分层比较有章法:
- 路由层:只有一个
/hyperframes,是"先读它"的能力地图——任何"做个视频/动画/幻灯片"的请求先到这里,它会先确认创作 brief,再分发到具体工作流。 - 创作工作流(10 个):
/product-launch-video(给网站 URL 出宣传片)、/faceless-explainer(任意文本出讲解视频)、/pr-to-video(GitHub PR 出变更说明视频,通过ghCLI 读取)、/embedded-captions(给口播视频加字幕)、/talking-head-recut(口播加图形包装)、/motion-graphics(10 秒内的短动效)、/music-to-video(音乐驱动的节拍同步视频)、/slideshow(可导航的演示稿)、/general-video(兜底)、/remotion-to-hyperframes(把 Remotion 工程单向迁移过来)。 - 领域 Skill(按需加载):
hyperframes-core(合成契约与确定性规则)、hyperframes-animation、hyperframes-keyframes、hyperframes-creative、media-use(把 BGM/SFX/图片/配音等需求统一解析成本地冻结文件并记账)、hyperframes-audio(人声下压、EQ/压缩/混响链、子混音总线)、hyperframes-cli、hyperframes-registry、figma。
值得注意的是安装策略:独立安装只给"核心集",创作工作流由路由 Skill 在进入前按需 skills update <workflow> 安装,"不会在你背后重新拉取全部"。这是对 Agent 上下文预算的克制——Skill 多了本身就是 Token 负担。
frame.md:把网页设计系统翻译成"给镜头看"的版本
这是 README 里最有想法的一块。每个品牌都有 design.md,但它是为网页写的——字号、间距、导航栏这些在视频画面里并不成立。frame.md 就是缺失的那层翻译:拿网页语境的设计规范,为画面重新反转一遍,使 Agent 做宣传片时不必自己猜尺度,也不会套用网页的 chrome。口号是:原子元素神圣不可改,构图保持自由,数字来自脚本。输出是 DESIGN.md 的超集,整条工具链都能读。项目在 hyperframes.dev/design 提供了一批可直接 remix 的模板(Biennale Yellow、BlockFrame、Blue Professional 等)。
与 Remotion 的取舍
README 给了一张坦率的对比表:
| HyperFrames | Remotion | |
|---|---|---|
| 创作方式 | HTML + CSS + 可 seek 动画 | React 组件 |
| 构建步骤 | 无,index.html 直接播放 | 需要 bundler |
| Agent 交接 | 纯 HTML 文件 | JSX / React 工程 |
| 分布式渲染 | 本地 + AWS Lambda | Remotion Lambda,更成熟 |
| 许可证 | Apache 2.0 | 源码可得的 Remotion License |
表里没有回避自己的短板——在分布式渲染成熟度上,它承认 Remotion 的云渲染更成熟。另外,Studio 一栏也被标为"可用,持续演进",而不是宣称已经完善。还有一点现实提醒:仓库有 387 个未关闭 Issue,对一个增长这么快的项目来说属于正常现象,但生产落地前最好先看看和自己场景相关的那些。
项目地址与资源
- 🌟 GitHub: heygen-com/hyperframes
- 🌐 Playground: hyperframes.dev
- 📖 文档: hyperframes.heygen.com/introductio…
- 🚀 Quickstart: hyperframes.heygen.com/quickstart
- 🎬 Showcase: hyperframes.heygen.com/showcase
- 🧩 Catalog: hyperframes.heygen.com/catalog
- 📦 npm: hyperframes
- 💬 Discord: discord.gg/EbK98HBPdk
总结
HyperFrames 回答的是一个很具体的问题:如果视频的"源码"要让 AI Agent 来写,最好的格式是什么? 它的答案是 HTML,因为 Agent 本来就最会写 HTML,而"可 seek 的动画 + 无头 Chrome + FFmpeg"又保证了输出可复现。
三点值得注意:
确定性被当成一等公民。 "同样输入、同样帧、同样输出"不只是一句口号——可 seek 的动画适配器、不依赖挂钟时间的渲染方式、以及仓库里用 Git LFS 管理的黄金基线视频,共同支撑了这一点。这让视频第一次可以像代码一样进 CI。
Skill 设计克制且分层。 一个路由 Skill 加按需加载的工作流和领域 Skill,并明确"不会在你背后拉取全部",这是对 Agent 上下文成本的务实考虑,值得其他做 Skill 的项目参考。
坦率承认差距。 对比 Remotion 时直接写出"分布式渲染它更成熟",Studio 标注为"持续演进"。再加上 Apache-2.0、无渲染收费、无商用门槛,这个项目的取舍是清晰且可信的。
如果你正在让 Agent 批量产出产品宣传片、PR 讲解视频或数据可视化动效,或者想把视频生成接入自动化流水线,HyperFrames 值得先用一句话 prompt 跑一遍试试。
探索 PrimeSkills —— 精选 AI agent 和技能工具,每一个都经过真实工作流验证。没有炒作,只有真正好用的工具。
访问我的个人主页,获取更多见解和有趣的产品。