Files
frames/packages/cli
zooqueen 375d1e2816 packages: publish as @hanzo/frame and talk to api.hanzo.ai
The npm scope becomes @hanzo: the CLI is @hanzo/frame, every library is
@hanzo/frame-<name>. Versions go to 0.7.82.

Credentials come from Hanzo IAM. `hanzo login` runs the IAM device flow and
writes ~/.hanzo/credentials.json; unattended runs read HANZO_API_KEY delivered
from Hanzo KMS. src/api.ts is the one place that knows the base URL and the
credential, replacing the OAuth client, PKCE flow, loopback server, token
store, and ~/.heygen credential file. `frames auth` keeps only `status`, since
this CLI no longer issues credentials.

Publish and feedback post to api.hanzo.ai/v1 without the HeyGen routing header.
The HeyGen-hosted `frames cloud` render target is gone; local, AWS Lambda, and
Google Cloud Run remain. Voice resolves to Hanzo speech (POST /v1/audio/speech)
before local Kokoro; music resolves to local MusicGen.

No analytics project is configured, so the CLI and studio send no events —
they previously reported to HeyGen's. Drops the HeyGen wordmark from the studio
header and the HeyGen promo render fixture with its brand assets and fonts.
2026-08-13 17:21:08 -07:00
..

@hanzo/frame

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

Install

npm install -g @hanzo/frame

Or use directly with npx:

npx @hanzo/frame <command>

Both install the 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