New: v0.4.3 (April 2026) Apache 2.0 Open Source Agent-First Design

Write HTML. Render Video.
Built for Agents.

HyperFrames by HeyGen turns your HTML, CSS & JavaScript into deterministic, frame-accurate video files. No new DSL. No React. Just the web stack LLMs already know.

Get Started in 30 Seconds

1
Install HyperFrames
npm install -g hyperframes
2
Create a project
hyperframes init my-video
3
Preview in browser
cd my-video && hyperframes preview
4
Render to MP4
hyperframes render

Why HyperFrames?

Everything you need to create professional videos with code

🎨

HTML-Native Authoring

Write video compositions in standard HTML with a few data-* attributes. No proprietary DSL or framework-specific syntax to learn.

🤖

Agent-First Design

Built for AI coding agents. Includes slash commands for Claude Code, Cursor, and Gemini CLI. Non-interactive CLI for CI/CD pipelines.

🎬

Deterministic Rendering

Seek-driven frame capture via headless Chrome + FFmpeg encoding. Same HTML always produces the identical MP4. Reproducible builds.

Live Preview Studio

Browser-based editor with hot reload. See changes instantly as you code. Separate @hyperframes/studio package for visual editing.

🎲

50+ Reusable Blocks

Pre-built components: transitions, charts, social overlays, lower thirds, app showcases. Install with npx hyperframes add <block>.

🎵

Full Animation Support

GSAP timelines, Lottie vectors, CSS animations, Three.js 3D, WebGL shader transitions, and audio-reactive effects.

💻

100% Local & Offline

No cloud services, no API keys, no subscriptions. Everything renders on your machine. Your data stays private.

📦

Flexible Output

Render to MP4, MOV, or WebM. Customizable resolution, FPS (24/30/60), and quality presets (draft, standard, high).

HyperFrames vs Remotion vs FFmpeg

See how HyperFrames compares to other programmatic video tools

FeatureHyperFramesRemotionRaw FFmpeg
LanguageHTML/CSS/JSReact/TypeScriptCLI flags
AI Agent Friendly✓ Built-in skills✗ Complex API✗ Hard to generate
Learning CurveMinimal (HTML)Medium (React)Steep
Deterministic Output✓ Seek-driven
Live Preview✓ Hot reload
Component Library50+ blocksCommunity packages✗ None
GSAP Animation✓ First-classVia wrapper
3D / WebGL✓ Three.js + shaders
Audio Mixing✓ Automatic✓ Manual
CI/CD Integration✓ Non-interactive CLI
LicenseApache 2.0Custom (paid for companies)LGPL/GPL
Setup Complexitynpm installnpm install + configSystem deps

Code Examples

See how easy it is to create videos with HTML

<!-- composition.html -->
<div data-composition-id="hello-world"
     data-width="1920" data-height="1080"
     data-fps="30">

  <div class="clip" data-start="0" data-end="5">
    <h1 style="
      position: absolute;
      top: 50%; left: 50%;
      transform: translate(-50%, -50%);
      font-size: 72px;
      color: white;
      font-family: sans-serif;
    ">Hello, HyperFrames!</h1;
  </div>

</div>

<style>
  body { margin: 0; background: #1e1b4b; }
</style>
<!-- gsap-animation.html -->
<div data-composition-id="animated-intro"
     data-width="1920" data-height="1080"
     data-fps="30">

  <div class="clip" data-start="0" data-end="4">
    <div id="title" style="opacity:0; font-size:80px;
         color:white; text-align:center; margin-top:40vh">
      Your Brand
    </div>
    <div id="subtitle" style="opacity:0; font-size:36px;
         color:#a5b4fc; text-align:center; margin-top:20px">
      Made with HyperFrames
    </div>
  </div>

</div>

<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script>
<script>
const tl = gsap.timeline();
tl.to("#title", { opacity: 1, y: -30, duration: 1, ease: "power3.out" })
  .to("#subtitle", { opacity: 1, y: -20, duration: 0.8 }, "-=0.3")
  .to("#title, #subtitle", { opacity: 0, duration: 0.5 }, "+=1.5");
</script>
<!-- multi-clip.html -->
<div data-composition-id="product-demo"
     data-width="1920" data-height="1080"
     data-fps="30">

  <!-- Scene 1: Title Card -->
  <div class="clip" data-start="0" data-end="3">
    <h1>Product Launch</h1>
  </div>

  <!-- Scene 2: Feature Demo -->
  <div class="clip" data-start="3" data-end="8">
    <video src="demo.mp4" autoplay muted></video>
    <div class="lower-third">Key Feature #1</div>
  </div>

  <!-- Scene 3: Call to Action -->
  <div class="clip" data-start="8" data-end="12">
    <h2>Try It Free</h2>
    <p>hyperframes.dev</p>
  </div>

  <!-- Background audio -->
  <audio src="bgm.mp3" data-start="0" data-volume="0.3"></audio>

</div>

CLI Reference

Essential commands for the HyperFrames CLI

hyperframes init <name>

Create a new HyperFrames project with template files, package.json, and default composition.

hyperframes preview

Start the live preview server with hot reload. Opens your composition in the browser for real-time editing.

hyperframes render [file]

Render your composition to video. Defaults to MP4. Add --quality high for production output.

hyperframes render --format webm

Render to WebM format. Also supports --format mov. Set FPS with --fps 60.

hyperframes lint

Check your composition for common errors: missing data attributes, overlapping clips, invalid timing.

npx hyperframes add <block>

Install a block from the catalog. Example: npx hyperframes add social-overlay.

hyperframes render --quality draft

Fast draft render for iteration. Lower resolution and faster encoding. Perfect for previewing changes.

hyperframes render --resolution 720p

Render at 720p (1280x720). Also supports 1080p, 4k, or custom WxH.

Block Catalog

50+ reusable components ready to install

🎨
fade-transition
Smooth fade between clips
📈
bar-chart
Animated bar chart
💬
social-overlay
Social media post cards
📴
lower-third
Name/title lower third
📱
app-showcase
Mobile app demo frame
🌟
particle-bg
Animated particle effects
🖌
typewriter
Typewriter text animation
🌐
globe-3d
Rotating 3D globe (Three.js)
📊
pie-chart
Animated pie/donut chart
📷
kenburns
Ken Burns pan & zoom
🎬
split-screen
Side-by-side comparison
🚀
countdown
Animated countdown timer
💡
code-highlight
Syntax-highlighted code block
🔔
notification
Push notification popup
🎶
audio-waveform
Audio-reactive waveform
🛠
shader-glitch
WebGL glitch effect

Install any block: npx hyperframes add <block-name>

AI Agent Integration

HyperFrames is built agent-first. Your AI creates videos from natural language.

💬

Describe

"Make a 30s product demo with animated charts"

🤖

Agent Writes HTML

Claude Code / Cursor generates composition

👀

Preview

Live browser preview with hot reload

🎬

Render MP4

Deterministic video output

Supported Agents & Skills

🔴

Claude Code

/hyperframes skill

🔵

Cursor

.cursor/rules integration

🔷

Gemini CLI

GEMINI.md instructions

Render Time Calculator

Estimate how long your video will take to render

seconds

Monorepo Architecture

HyperFrames is organized as a well-structured monorepo

hyperframes

Main CLI package. Commands: init, preview, render, lint, add. Your primary interface.

@hyperframes/core

Types, parser, linter, and runtime. The shared foundation for all packages.

@hyperframes/engine

Headless browser frame capture. Puppeteer-based seek-driven rendering engine.

@hyperframes/producer

FFmpeg encoding pipeline. Combines captured frames + audio into final video.

@hyperframes/studio

Browser-based visual editor with timeline UI, hot reload, and component inspector.

@hyperframes/player

Embeddable <hyperframes-player> web component for previewing compositions.

Frequently Asked Questions

Everything you need to know about HyperFrames

What is HyperFrames?
HyperFrames is an open-source video rendering framework by HeyGen. It lets you create videos using plain HTML, CSS, and JavaScript, then renders them into deterministic MP4 files. It's designed specifically for AI coding agents to generate videos from natural language prompts.
Is HyperFrames really free?
Yes, HyperFrames is fully open source under the Apache 2.0 license. Free for commercial and personal use. No API keys, cloud services, or subscriptions needed. Everything runs locally on your machine.
How is HyperFrames different from Remotion?
Remotion requires React and TypeScript with a custom component model. HyperFrames uses plain HTML with data-* attributes — no framework needed. This makes it far more accessible to AI agents that already excel at writing HTML. It's also Apache 2.0 licensed (Remotion has a paid company license).
What do I need to run HyperFrames?
Node.js 18+ and FFmpeg installed on your system. The CLI handles everything else. Install with npm install -g hyperframes. Works on macOS, Linux, and Windows.
Can I use HyperFrames in my CI/CD pipeline?
Yes! HyperFrames has a fully non-interactive CLI designed for automated workflows. Use hyperframes render --output video.mp4 in your pipeline. Deterministic rendering means the same input always produces identical output.
What animation libraries are supported?
HyperFrames supports GSAP (GreenSock) as a first-class animation library, plus Lottie for vector animations, standard CSS animations/transitions, Three.js for 3D content, and custom WebGL shaders for transitions and effects.
What output formats can I render?
MP4 (default, H.264 codec), MOV, and WebM. You can customize resolution (720p, 1080p, 4K, or custom WxH), frame rate (24/30/60 fps), and quality presets (draft for fast iteration, standard, or high for production).
How does deterministic rendering work?
HyperFrames uses a seek-driven approach: a headless Chrome browser renders your HTML at each specific frame time point. Puppeteer captures each frame precisely, then FFmpeg encodes them sequentially. No real-time playback means no timing drift or randomness — the output is reproducible.
Can HyperFrames handle audio?
Yes, HyperFrames supports audio layers with automatic mixing. Add <audio> elements with data-start and data-volume attributes. It also supports TTS/captions integration and audio-reactive visual effects.
Where can I find the source code?
HyperFrames is hosted on GitHub at github.com/heygen-com/hyperframes. The repository includes documentation, examples, skills for AI agents, the block catalog, and contribution guidelines.