captions-overlay
Overlay doctrine for captions in HyperFrames videos — the caption MODEL (drop / rail / embed) and the rule that captions are an…
The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.
Claude Code
$ npx -y skills add heygen-com/hyperframes --skill hyperframes-cli --agent claude-code
Codex
$ npx skills add heygen-com/hyperframes --skill hyperframes-cli -a codex -y
Cursor
$ npx skills add heygen-com/hyperframes --skill hyperframes-cli -a cursor -y
Gemini CLI
$ npx skills add heygen-com/hyperframes --skill hyperframes-cli -a gemini-cli -y
GitHub Copilot
$ npx skills add heygen-com/hyperframes --skill hyperframes-cli -a github-copilot -y
OpenCode
$ npx skills add heygen-com/hyperframes --skill hyperframes-cli -a opencode -y
Windsurf
$ npx skills add heygen-com/hyperframes --skill hyperframes-cli -a windsurf -y
name: hyperframes-cli description: HyperFrames CLI - scaffold, check frames, edit timelines, preview, render, share and project history; read JSON and recover from failures.
**Plugin installs:** Inside a HyperFrames plugin, follow [plugin execution rules](../hyperframes/references/plugin-installation.md).
**Usage beacon:** run `npx hyperframes events --skill=hyperframes-cli` once as this skill starts. It sends the skill's name with the CLI's usual telemetry (account-linked when signed in) and honours the opt-out.
Run `npx hyperframes <command>` unless the project gives a wrapper; then use the wrapper. It needs Node.js 22+ and FFmpeg. Every command has `--help`; most take `--json`, and a failure prints `✗ …`, a `Fix:` line and exits non-zero.
A `--json` result may carry `_meta.updateNotice`: a newer HyperFrames release is out. Pass it to the person once per conversation, in your own words, at a natural pause; updating is theirs to decide.
| Job | Commands | | --- | --- | | Start | `init <dir> --skip-skills` (blank; `--example <name>` only when asked), `capture <url>` | | Read a project | `info`, `compositions`, `timeline --json`, `docs <topic>` | | Check it | `lint` while writing; `check --json` as the gate (lint, runtime, layout, contrast) | | Look at it | `snapshot` (`--at <t,…>`, `--range START,END`, `--composition <id>`, `--zoom`, `--angle`, `--against <video>`), `keyframes`, `compare`, `audio` | | Edit the timeline | `timeline` with `move`, `trim`, `split`, `set`, `duplicate`, `delete`, `apply`, `undo`, `ids` | | Reuse | `catalog`, `add` (`/hyperframes-registry`) | | Media and sound | `media-treatment`, `grade-compare`, `remove-background`, `tts`, `transcribe`, `beats`, `normalize-audio` (`/media-use`) | | Show and ship | `preview`, `present` (`/slideshow`), `render`, `share`, `publish` (legacy), `cloud`, `lambda`, `cloudrun` | | Desktop app | `open`, `catch-up` | | Upkeep | `doctor`, `browser`, `upgrade`, `usage`, `clean`, `feedback` |
`captions` is not a command: run `transcribe`, then read ../hyperframes/references/captions.md.
`validate`, `inspect` and `layout` are deprecated aliases of `check`; `events` is skills' own telemetry. Don't run them.
1. Write, then `npx hyperframes lint` after the first pass and after structural changes. 2. `npx hyperframes check --json` and fix every error. While a lint error remains the layout and contrast audits don't run; "0 samples" means nothing was checked. Contrast failures carry a `suggestedColor`. A finding at a single sample (an entrance in flight) is info; a 3 s+ video with no visible change fails `sweep_static`. 3. `npx hyperframes snapshot` and read the PNGs (under `.hyperframes/artifacts/snapshots/`): that is how you see the video. With sub-compositions, snapshot a midpoint of every scene; tiny unstyled content or a missing hero is a mount defect (`../hyperframes/references/format.md`). 4. `npx hyperframes preview --background`, check the URL answers 200, give the person the project URL and wait, unless they asked for the file or for no stops. Passing checks alone is not a reason to render. 5. Time to render (step 4): `npx hyperframes render --quality looks -o out.mp4` (`draft` while iterating, `delivery` for the final; paid plan: `cloud render --fps <data-fps> --quality high -o out.mp4`). Confirm the file is non-empty and its `ffprobe` duration matches the root `data-duration`, then look at decoded frames.
"This element" or the current selection: `npx hyperframes preview --context --json --context-fields selection`; `no-selection` means ask them to click it.
These are the edits Studio itself makes, so the result stays in Studio's shape.
<!-- history (trial): remove this block together with the command -->
Every write is kept and can be undone. At the start of a turn, `npx hyperframes history begin --who <you> --label "<plan>"`, then `history --since mine --who <you>` to see what the person changed; build on their edits. A check failed or they say it got worse: `history undo --who <you>`, never hand-edit back. End the turn with `history end`.
<!-- /history (trial) -->
| Need | Command | | --- | --- | | Local | `render --quality looks -o out.mp4` (`draft`, `delivery`) | | Reproducible container | `render --docker --strict -o out.mp4` | | Batch from variables | `render --batch rows.json -o "renders/{name}.mp4"` | | Hosted, no local Chrome or FFmpeg | `cloud render` (`references/cloud.md`) | | Your own AWS or GCP | `lambda render`, `cloudrun render` (`references/lambda.md`, `references/cloudrun.md`) |
A 30 s film renders in a minute or two: run it in the foreground. Detach only a render longer than your tool's timeout (`HYPERFRAMES_RENDER_DETACHED=1`, its own group, output to a log) and wait with `until grep -qE 'Render (complete|failed)' render.log; do sleep 5; done`, never `pgrep -f`, which matches its own loop and waits until the tool times out.
After a verified render, send one `feedback --rating`, plus a report for anything the person asked for that HyperFrames can't do, unless telemetry is off: `references/feedback.md`.
Overlay doctrine for captions in HyperFrames videos — the caption MODEL (drop / rail / embed) and the rule that captions are an…
Turn a weekly changelog .md into a finished branded changelog video (square 1080, ~45-60s, Annie VO, animated brand background,…
The technique catalog: five velocity-matched SEAMS (zoom-through, INVERSE zoom-through, cut-the-curve, waterfall cut, rack-focus…
GATEWAY — load FIRST before composing any HyperFrames animation or video. The high-level motion law that makes a multi-scene…
House-style oversized macOS cursor technique for HyperFrames launch videos. Load whenever a scene involves cursors or a…
Render-correctness doctrine for scene-to-scene seams in HyperFrames launch videos — the prerequisites that make transitions…
AI music generation with ACE-Step 1.5 — background music, vocal tracks, covers, stem extraction for video production. Use when…
This skill should be used when a Seedance 2.0 prompt contains generic AI filler, hollow superlatives, vague cinematic language,…