Skill v1.0.0
currentAutomated scan100/100version: "1.0.0" name: hyperframes-cli description: HyperFrames CLI tool — hyperframes init, lint, inspect, preview, render, transcribe, tts, doctor, browser, info, upgrade, compositions, docs, benchmark. Use when scaffolding a project, linting, validating, inspecting visual layout in compositions, previewing in the studio, rendering to video, transcribing audio, generating TTS, or troubleshooting the HyperFrames environment.
HyperFrames CLI
Everything runs through npx hyperframes. Requires Node.js >= 22 and FFmpeg.
Workflow
- Scaffold —
npx hyperframes init my-video - Write — author HTML composition (see the
hyperframesskill) - Lint —
npx hyperframes lint - Visual inspect —
npx hyperframes inspect - Preview —
npx hyperframes preview - Render —
npx hyperframes render
Lint and inspect before preview. lint catches missing data-composition-id, overlapping tracks, and unregistered timelines. inspect opens the rendered composition in headless Chrome, seeks through the timeline, and reports text spilling out of bubbles/containers or off the canvas.
Scaffolding
npx hyperframes init my-video # interactive wizardnpx hyperframes init my-video --example warm-grain # pick an examplenpx hyperframes init my-video --video clip.mp4 # with video filenpx hyperframes init my-video --audio track.mp3 # with audio filenpx hyperframes init my-video --non-interactive # skip prompts (CI/agents)
Templates: blank, warm-grain, play-mode, swiss-grid, vignelli, decision-tree, kinetic-type, product-promo, nyt-graph.
init creates the right file structure, copies media, transcribes audio with Whisper, and installs AI coding skills. Use it instead of creating files by hand.
Linting
npx hyperframes lint # current directorynpx hyperframes lint ./my-project # specific projectnpx hyperframes lint --verbose # info-level findingsnpx hyperframes lint --json # machine-readable
Lints index.html and all files in compositions/. Reports errors (must fix), warnings (should fix), and info (with --verbose).
Visual Inspect
npx hyperframes inspect # inspect rendered layout over the timelinenpx hyperframes inspect ./my-project # specific projectnpx hyperframes inspect --json # agent-readable findingsnpx hyperframes inspect --samples 15 # denser timeline sweepnpx hyperframes inspect --at 1.5,4,7.25 # explicit hero-frame timestamps
Use this after lint and validate, especially for compositions with speech bubbles, cards, captions, or tight typography. It reports:
- Text extending outside the nearest visual container or bubble
- Text clipped by its own fixed-width/fixed-height box
- Text extending outside the composition canvas
- Children escaping clipping containers
Errors should be fixed before rendering. Warnings are surfaced for agent review; add --strict to fail on warnings too. Repeated static issues are collapsed by default so JSON output stays compact for LLM context windows. If overflow is intentional for an entrance/exit animation, mark the element or ancestor with data-layout-allow-overflow. If a decorative element should never be audited, mark it with data-layout-ignore.
npx hyperframes layout remains available as a compatibility alias for the same visual inspection pass.
Previewing
npx hyperframes preview # serve current directorynpx hyperframes preview --port 4567 # custom port (default 3002)
Hot-reloads on file changes. Opens the studio in your browser automatically.
When handing a project back to the user, use the Studio project URL, not the source index.html path:
http://localhost:<port>/#project/<project-name>
Use the actual port from the preview output and the project directory name. For example, after npx hyperframes preview --port 3017 in codex-openai-video, report http://localhost:3017/#project/codex-openai-video.
Treat index.html as source-code context only. It is fine to link it as an implementation file, but do not label it as the project or preview surface.
Rendering
npx hyperframes render # standard MP4npx hyperframes render --output final.mp4 # named outputnpx hyperframes render --quality draft # fast iterationnpx hyperframes render --fps 60 --quality high # final deliverynpx hyperframes render --format webm # transparent WebMnpx hyperframes render --docker # byte-identical
| Flag | Options | Default | Notes | |
|---|---|---|---|---|
--output | path | renders/name_timestamp.mp4 | Output path | |
--fps | 24, 30, 60 | 30 | 60fps doubles render time | |
--quality | draft, standard, high | standard | draft for iterating | |
--format | mp4, webm | mp4 | WebM supports transparency | |
--workers | 1-8 or auto | auto | Each spawns Chrome | |
--docker | flag | off | Reproducible output | |
--gpu | flag | off | GPU-accelerated encoding | |
--strict | flag | off | Fail on lint errors | |
--strict-all | flag | off | Fail on errors AND warnings |
Quality guidance: draft while iterating, standard for review, high for final delivery.
Transcription
npx hyperframes transcribe audio.mp3npx hyperframes transcribe video.mp4 --model medium.en --language ennpx hyperframes transcribe subtitles.srt # import existingnpx hyperframes transcribe subtitles.vttnpx hyperframes transcribe openai-response.json
Text-to-Speech
npx hyperframes tts "Text here" --voice af_nova --output narration.wavnpx hyperframes tts script.txt --voice bf_emmanpx hyperframes tts --list # show all voices
Troubleshooting
npx hyperframes doctor # check environment (Chrome, FFmpeg, Node, memory)npx hyperframes browser # manage bundled Chromenpx hyperframes info # version and environment detailsnpx hyperframes upgrade # check for updates
Run doctor first if rendering fails. Common issues: missing FFmpeg, missing Chrome, low memory.
Other
npx hyperframes compositions # list compositions in projectnpx hyperframes docs # open documentationnpx hyperframes benchmark . # benchmark render performance