Files
Vance Ingalls 43337ae224 fix: add media rendering guardrails to prevent silent failures
Lint rules:
- media_missing_id (error): audio/video with data-start but no id
- media_missing_src (error): media with id but no src
- media_preload_none (warning): preload="none" blocks the renderer
- video_nested_in_timed_element upgraded from warning to error

Compiler:
- Strip preload="none" from media during compilation
- Fire-and-forget keyframe interval + VFR detection via ffprobe
- Warn on sparse keyframes (>2s) and variable frame rate videos

CLI:
- Shared lintProject() lints index.html + compositions/*.html
- Shared formatLintFindings() used by lint, render, and dev commands
- Pre-render lint: warns by default, --strict blocks on errors,
  --strict-all blocks on errors + warnings
- Pre-dev lint: prints issues for agents before starting studio
- Render orchestrator hints --workers 1 on parallel capture timeout

Refactor:
- Extract runFfprobe() + parseProbeJson() (~80 lines deduped)
- Extract shouldBlockRender() for testable strict flag logic
- Extract formatLintFindings() (3 consumers unified)
2026-03-30 10:00:32 -07:00
..
2026-03-21 22:43:56 -07:00

hyperframes

CLI for creating, previewing, and rendering HTML video compositions.

Install

npm install -g hyperframes

Or use directly with npx:

npx hyperframes <command>

Requirements: Node.js >= 22, FFmpeg

Commands

init

Scaffold a new Hyperframes project from a template:

npx hyperframes init my-video
cd my-video

dev

Start the live preview studio in your browser:

npx hyperframes dev
# Studio running at http://localhost:3002

npx hyperframes dev --port 4567

render

Render a composition to MP4:

npx hyperframes render ./my-composition.html -o output.mp4

lint

Validate your Hyperframes HTML:

npx hyperframes lint ./my-composition.html

compositions

List compositions found in the current project:

npx hyperframes compositions

benchmark

Run rendering benchmarks:

npx hyperframes benchmark ./my-composition.html

doctor

Check your environment for required dependencies (Chrome, FFmpeg, Node.js):

npx hyperframes doctor

browser

Manage the bundled Chrome/Chromium installation:

npx hyperframes browser

info

Print version and environment info:

npx hyperframes info

docs

Open the documentation in your browser:

npx hyperframes docs

upgrade

Check for updates and show upgrade instructions:

npx hyperframes upgrade
npx hyperframes upgrade --check --json  # machine-readable for agents

Documentation

Full documentation: hyperframes.heygen.com/packages/cli