Forked from HyperFrames (Apache-2.0), full history preserved. Hosts are mapped explicitly and BEFORE the identifier rename, because hyperframes.heygen.com is not decoration: 175 of its occurrences are $schema identifiers that a validator dereferences. A blind rename would have left them naming a host that never serves them. The schema files are in this repo under docs/schema, so the mapped host is one we can actually serve -- that is the condition that makes the rewrite safe, and serving them is a deploy task, not an edit. docs/schema/hyperframes.json is renamed to frames.json to match the identifier it is now published under. api.heygen.com and the CLI auth against heygen.com are left UNRENAMED on purpose. They are a dependency on HeyGen's SaaS, not a name of ours to take, and the right move is to remove that integration rather than rebrand it. LICENSE and CREDITS.md are untouched; NOTICE records the lineage. Co-authored-by: Hanzo Dev <[email protected]>
frames
CLI for creating, previewing, and rendering HTML video compositions.
Install
npm install -g frames
Or use directly with npx:
npx frames <command>
Requirements: Node.js >= 22, FFmpeg
Commands
init
Scaffold a new Hyperframes project from a template:
npx frames init my-video
cd my-video
preview
Start the live preview studio in your browser:
npx frames preview
# Studio running at http://localhost:3002
npx frames preview --port 4567
render
Render a composition to MP4. Run from the project directory; the positional
argument is the project directory (not a file), so render the project's
index.html directly, or point at a specific composition file with -c:
npx frames render -o output.mp4
npx frames render -c ./my-composition.html -o output.mp4
lint
Validate your Hyperframes HTML:
npx frames lint ./my-composition
npx frames lint ./my-composition --json # JSON output for CI/tooling
npx frames lint ./my-composition --verbose # Include info-level findings
By default only errors and warnings are shown. Use --verbose to also display informational findings (e.g., external script dependency notices). Use --json for machine-readable output with errorCount, warningCount, infoCount, and a findings array.
compositions
List compositions found in the current project:
npx frames compositions
benchmark
Run rendering benchmarks:
npx frames benchmark ./my-composition.html
doctor
Check your environment for required dependencies (Chrome, FFmpeg, Node.js):
npx frames doctor
browser
Manage the bundled Chrome/Chromium installation:
npx frames browser
info
Print version and environment info:
npx frames info
docs
Open the documentation in your browser:
npx frames docs
upgrade
Check for updates and show upgrade instructions:
npx frames upgrade
npx frames upgrade --check --json # machine-readable for agents
Documentation
Full documentation: frames.hanzo.ai/packages/cli
Related packages
@frames/core— types, parsers, frame adapters@frames/engine— rendering engine@frames/producer— render pipeline@frames/studio— composition editor UI