heygen-com/hyperframes11 files

Hyperframes CLI

>

Specification
Skill ID
heygen-com/hyperframes/hyperframes-cli
Publisher
heygen-com
Repository
hyperframes
Installs
9,387
Files
11
Synced
Sep 16, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

heygen-com/hyperframes/hyperframes-cliInstalls these files
  • references/beats.md
  • references/cloud.md
  • references/cloudrun.md
  • references/compare-and-batch.md
  • references/doctor-browser.md
  • references/init-and-scaffold.md
  • references/lambda.md
  • references/lint-validate-inspect.md
  • references/preview-render.md
  • references/upgrade-info-misc.md
  • SKILL.md

What this skill tells the agent

HyperFrames CLI

Run commands as npx hyperframes ... unless project instructions provide a wrapper. Obey the wrapper when present. The CLI requires Node.js 22 or newer and FFmpeg.

Development loop

  1. Scaffold: npx hyperframes init <project> (centered blank). Or capture a site. Pass --example=<name> only to start from a named example.
  2. Find the move: before authoring motion by hand, search for a primitive that already does it: npx hyperframes catalog --query "reveal a headline one line at a time". Ask for the effect you want rather than the mechanism you have in mind. Install with npx hyperframes add <name> (see /hyperframes-registry). Author by hand only once nothing fits.
  3. Author: write the composition using /hyperframes-core.
  4. Get fast feedback while editing: run npx hyperframes lint after the first HTML pass and after structural changes.
  5. Run the final gate: run npx hyperframes check; it reruns lint before opening the browser. Do not prepend a redundant standalone lint invocation. Add --snapshots for annotated overview frames and finding crops.
  6. Inspect sub-compositions: when index.html mounts data-composition-src, capture midpoint snapshots and inspect each mounted scene.
  7. Open the final Studio preview: run npx hyperframes preview --background, verify the URL returns HTTP 200, hand the timeline project URL to the user, and ask whether to revise or render. Keep it alive until review ends.
  8. Render only after approval: use --quality draft while iterating, --quality looks for the first real encode (the CLI default), and --quality delivery for final delivery.
  9. Verify the output: confirm the file exists and is non-empty. Read the render summary's second line (beginframe vs screenshot, GPU, stage timings). screenshot + software gpu on Linux is the slow path. ffprobe -v error -show_format -show_streams and compare duration (and fps if the brief set it) to the root data-duration.

Mandatory creator-edit cross-references

  • Before authoring or diagnosing a zoom, punch-in/punch-out, reframe, camera move, or any keyframe motion, read /hyperframes-keyframes first.
  • Before hyperframes keyframes, read /hyperframes-keyframes; the command surfaces animation trajectories and does not diagnose clip cuts.
  • For a cut, trim, splice, reorder, or source timing edit, read /hyperframes-core and use its clip/timeline contract.
  • For fade-in/fade-out, crossfade, track gain, volume automation, ducking, voiceover carve, or FX on placed audio, read /hyperframes-audio. Load core alongside it when clip placement or picture timing also changes.
  • Use /media-use only to source/generate media or preprocess a derived asset. Copy creator edit markup from /hyperframes-corereferences/creator-editing-recipes.md.
# Fast iteration check; repeat while authoring as needed.
npx hyperframes lint

# Required final gate; includes lint.
npx hyperframes check
npx hyperframes preview --background
npx hyperframes render --quality looks --output out.mp4
test -s out.mp4
ffprobe -v error -show_format -show_streams out.mp4

check runs lint first, then uses one browser session and one seek pass to audit runtime errors, failed requests, layout, *.motion.json assertions, and WCAG contrast. Persistent findings gate the exit code; transient entrance or exit findings are informational. Use --strict to gate warnings. validate, inspect, and layout remain aliases for compatibility but must not appear in new instructions or scripts.

Two different preview surfaces

Do not confuse these states:

SurfaceWhen it may openPurpose
Storyboard boardBefore composition checks, only when storyboard: yesReview plan cards and wireframe sketches. Open ?view=storyboard#project/<name>.
Final composition previewAfter check passesReview the assembled timeline before render. Open #project/<name>.

The early board is not approval of the final video. Rendering always requires the final approval defined by hyperframes/references/review-loop.md.

Sub-composition smoke test

Static audits cannot catch every mount failure. When the project uses sub-compositions, capture at least one visible midpoint for each host slot:

npx hyperframes snapshot --at <t1>,<t2>,<t3>

Treat tiny unstyled content, canvas-sized icons, missing hero elements, or timeline-registration timeouts as render-blocking mount defects. See hyperframes-core/references/sub-compositions.md for the corresponding fixes.

Agent conventions

  • Search the catalog before writing motion by hand. npx hyperframes catalog --query "<the beat, in plain English>". Search is entirely local: there is no hosted tier, no account, and the query text is never sent anywhere. By default it ranks on vocabulary shared with the item's name, title and description, which misses any phrasing that does not reuse the catalog's own wording. Add --on-device to rank by meaning instead (see the offline tier below).
  • Query in English even when the video is not. Both tiers index an English catalog, so a query in another script produces no searchable terms and returns nothing. Describe the move in English; the on-screen copy stays in whatever language the video needs. No searchable words in query means exactly this and is not a missing component, so do not report it as a catalog gap.
  • Read which tier answered; never infer it from results appearing. With --json the envelope carries query, tier (on-device or words), tier_detail, dropped, unindexed, shown, total and results, plus top_score when the answering tier produces one and warnings when a tier was asked for and could not run, or when a search returned nothing and a better tier is still waiting on someone's consent. A weak result on words is expected; the same result on on-device is a bug. top_score is on-device only and has no threshold behind it: the ranker returns the whole catalog in some order for every query, so read it as evidence rather than as a pass or fail.
  • `dropped` and `unindexed` are opposite skews between the registry and the on-device index, and rewording the query fixes neither. dropped counts ranked names this registry cannot install, so the strongest matches are the ones being lost. unindexed counts registry moves the index cannot see at all, which no query can ever return. Refreshing the registry is not the answer to either: its manifest carries a 24h TTL and heals itself, while the vectors are a separately published artifact fetched into ~/.hyperframes/catalog/. Re-running with --on-device refetches that index when unindexed is above zero, so that is the remedy to hand the user. A pure over-coverage skew (dropped above zero while unindexed is zero) does not trigger the refetch; clearing ~/.hyperframes/catalog/ is the only way out of that one. Both counts are of names rather than of results, so either can exceed total.