8 min read
hyperframes
Generated source view for the actual executable
engineering/hyperframesskill. The durable routing article is Cloud, Data, and Service Skills. Source: skills/engineering/hyperframes/SKILL.md
Runtime Source
| Field | Value |
|---|---|
| Category | engineering |
| Origin | unknown |
| Slug | hyperframes |
| Source slug | hyperframes |
| Family | Cloud, Data, and Service Skills |
| Source | skills/engineering/hyperframes/SKILL.md |
Bundled Resources
These files are part of the executable skill folder and must be preserved with the skill source.
| File | Role |
|---|---|
assets/frame-presets/biennale-yellow/FRAME.md |
Asset |
assets/frame-presets/biennale-yellow/caption-skin.html |
Asset |
assets/frame-presets/biennale-yellow/frame-showcase.html |
Asset |
assets/frame-presets/blockframe/FRAME.md |
Asset |
assets/frame-presets/blockframe/caption-skin.html |
Asset |
assets/frame-presets/blockframe/frame-showcase.html |
Asset |
assets/frame-presets/blue-professional/FRAME.md |
Asset |
assets/frame-presets/blue-professional/caption-skin.html |
Asset |
assets/frame-presets/blue-professional/frame-showcase.html |
Asset |
assets/frame-presets/bold-poster/FRAME.md |
Asset |
assets/frame-presets/bold-poster/caption-skin.html |
Asset |
assets/frame-presets/bold-poster/frame-showcase.html |
Asset |
assets/frame-presets/broadside/FRAME.md |
Asset |
assets/frame-presets/broadside/caption-skin.html |
Asset |
assets/frame-presets/broadside/frame-showcase.html |
Asset |
assets/frame-presets/capsule/FRAME.md |
Asset |
assets/frame-presets/capsule/caption-skin.html |
Asset |
assets/frame-presets/capsule/frame-showcase.html |
Asset |
assets/frame-presets/cartesian/FRAME.md |
Asset |
assets/frame-presets/cartesian/caption-skin.html |
Asset |
assets/frame-presets/cartesian/frame-showcase.html |
Asset |
assets/frame-presets/cobalt-grid/FRAME.md |
Asset |
assets/frame-presets/cobalt-grid/caption-skin.html |
Asset |
assets/frame-presets/cobalt-grid/frame-showcase.html |
Asset |
assets/frame-presets/code-editorial/FRAME.md |
Asset |
assets/frame-presets/code-editorial/caption-skin.html |
Asset |
assets/frame-presets/code-editorial/fonts/EBGaramond-400.woff2 |
Asset |
assets/frame-presets/code-editorial/fonts/EBGaramond-700.woff2 |
Asset |
assets/frame-presets/code-editorial/fonts/Inter-400.woff2 |
Asset |
assets/frame-presets/code-editorial/fonts/Inter-700.woff2 |
Asset |
assets/frame-presets/code-editorial/fonts/JetBrainsMono-400.woff2 |
Asset |
assets/frame-presets/code-editorial/fonts/JetBrainsMono-700.woff2 |
Asset |
assets/frame-presets/code-editorial/fonts/OFL-eb-garamond.txt |
Asset |
assets/frame-presets/code-editorial/fonts/OFL-inter.txt |
Asset |
assets/frame-presets/code-editorial/fonts/OFL-jetbrains-mono.txt |
Asset |
assets/frame-presets/code-editorial/frame-showcase.html |
Asset |
assets/frame-presets/coral/FRAME.md |
Asset |
assets/frame-presets/coral/caption-skin.html |
Asset |
assets/frame-presets/coral/frame-showcase.html |
Asset |
assets/frame-presets/creative-mode/FRAME.md |
Asset |
assets/frame-presets/creative-mode/caption-skin.html |
Asset |
assets/frame-presets/creative-mode/frame-showcase.html |
Asset |
assets/frame-presets/daisy-days/FRAME.md |
Asset |
assets/frame-presets/daisy-days/caption-skin.html |
Asset |
assets/frame-presets/daisy-days/frame-showcase.html |
Asset |
assets/frame-presets/editorial-forest/FRAME.md |
Asset |
assets/frame-presets/editorial-forest/caption-skin.html |
Asset |
assets/frame-presets/editorial-forest/frame-showcase.html |
Asset |
references/captions.md |
Progressive reference |
references/film.md |
Progressive reference |
references/format.md |
Progressive reference |
references/look.md |
Progressive reference |
references/motion.md |
Progressive reference |
references/overlays.md |
Progressive reference |
references/plugin-installation.md |
Progressive reference |
references/review.md |
Progressive reference |
references/runtimes.md |
Progressive reference |
references/skill-lifecycle.md |
Progressive reference |
references/sound.md |
Progressive reference |
references/spec.md |
Progressive reference |
references/story.md |
Progressive reference |
references/storyboard-format.md |
Progressive reference |
references/storyboard.md |
Progressive reference |
references/types/3d.md |
Progressive reference |
references/types/character.md |
Progressive reference |
references/types/data.md |
Progressive reference |
references/types/explainer.md |
Progressive reference |
references/types/launch.md |
Progressive reference |
references/types/music.md |
Progressive reference |
references/types/vertical.md |
Progressive reference |
scripts/bake-basemap.mjs |
Executable helper |
scripts/lib/main-module.mjs |
Executable helper |
scripts/lib/main-module.test.mjs |
Executable helper |
scripts/locate.mjs |
Executable helper |
scripts/plugin-cli.mjs |
Executable helper |
scripts/plugin-cli.test.mjs |
Executable helper |
Description
Read first when making, editing, animating or rendering any HyperFrames video (HTML rendered to video): films, explainers, charts, maps, vertical clips, captions and overlays. Holds the render contract and the work loop.
Skill Source
---
name: hyperframes
description: >-
Read first when making, editing, animating or rendering any HyperFrames video (HTML rendered to
video): films, explainers, charts, maps, vertical clips, captions and overlays. Holds the render
contract and the work loop.
---
**Plugin installs:** Before setup or freshness commands, follow [plugin execution rules](references/plugin-installation.md) when this skill is inside a HyperFrames plugin.
# HyperFrames
HyperFrames renders HTML to video by seeking a paused timeline frame by frame, so every render is identical; the person edits the same files in the Studio preview. Use it unless another framework or a plain browser recording is asked for. Run the CLI as `npx hyperframes <command>` (`/hyperframes-cli`); at the start of a new video, `npx hyperframes usage --json` reports the person's remaining plan usage (say "unknown" when it is).
`index.html` is the root composition: it declares the video's variables and mounts one scene per sub-composition from `compositions/`. Media and fonts live in `assets/`. A new project: `npx hyperframes init <dir>`. A website as the subject: `npx hyperframes capture <url> --json`.
Build what was asked: no voiceover or captions and no new aspect ratio unless the request or the source calls for them; a film over ~15 s that tells something gets music and sound on its visible actions unless the person asked for silence (`references/sound.md`). A new video is 1920×1080 at 30 fps. A question, a hold or a loose idea gets an answer or a proposal, not an edit. Before hand-writing a named effect, transition, caption style, chart or card, search the registry (`/hyperframes-registry`). Any media (a presenter or avatar, footage, voice, music): `/media-use`, which says when HeyGen is needed and what is free. Show real things from their source (the product's screens, the brand's logo, a real place's imagery); draw only what has none.
## Contract
`npx hyperframes check --json` reports most violations with a `Fix:` line.
1. Every timed element has `class="clip"`, `data-start` and `data-duration` in seconds, and shows over `[start, start + duration)`: land an end state just before its end. `data-track-index` is only a Studio lane; paint order is `z-index`.
2. The video's length is the root's `data-duration`: overrun is cut, an early end holds the last frame.
3. Each composition builds one paused timeline and registers it after its tweens: `window.__timelines["<data-composition-id>"] = tl`.
4. No `Date.now()`, unseeded `Math.random()`, network fetches, timers or `repeat: -1`. Everything visible is a function of timeline time.
5. Never tween `display`, `visibility` or `autoAlpha` on a `.clip`; animate a child.
6. No CSS `transform` on an element GSAP transforms; animate transforms, not `left`/`top`/`width`/`height`.
7. Never `play()`, `pause()` or seek media. A `<video>` keeps its sound with `data-has-audio="true"`, else it is `muted`; music, voice, replacement sound and J/L cuts are a separate `<audio>`.
8. Every `<audio>` has an `id` or it is left out of the mix. No `crossorigin` on media. Time a `<video>` or its wrapper, never both.
9. Only the bundled fonts (`references/format.md`) resolve by name; any other family needs `@font-face` to a file in `<repo>/assets/fonts/`.
10. Asset paths: `assets/...` (no leading `/`), in sub-compositions too.
11. Grades, grain, blur and vignettes on footage go through `npx hyperframes media-treatment` (`/media-use`), never CSS filters.
12. A scene file puts its styles, markup and scripts inside `<template>` and styles its root as `#root`. Intended overflow or overlap: `data-layout-allow-overflow`, `data-layout-allow-overlap`.
## Keep it editable
Studio edits the tags you write.
- One scene per sub-composition, short readable ids; the root holds only scene hosts, media and audio.
- Timed elements are written in the HTML, not made by script, each with a stable `id`.
- Copy, brand colours and swappable media are variables (`data-var-text`, `data-var-src`, `var(--id)`).
- One kind per track: `data-track-kind="graphics"` on scene and overlay hosts, `captions` on the one host that holds every caption group.
- Content stays inside the 90% action-safe box, captions and key text inside 80% title-safe; Studio draws the guides, never add them.
## Work loop
- An existing project: `npx hyperframes timeline --json` shows what plays when; before any change, `npx hyperframes history --since mine --who <you>` shows what the person changed since your last turn: build on it (`/hyperframes-cli`).
- A new film over ~15 s that tells something: its type's file (below), then `references/story.md`: three storylines that are three different films, in words only; the person picks unless they asked for the file or no stops. Then `SPEC.md` (`references/spec.md`): every adjective as a number, the defaults banned by name, the shots by frame.
- After your last edit: `npx hyperframes check --json`; fix every error, weigh every warning. A film: `npx hyperframes snapshot --review` and `references/review.md`, ending in `REVIEW.md`. A small edit: snapshot what you changed (`--at`, `--range`, `--composition`) and look before you reply.
- Render when the person approves the Studio preview, asks for the file or asks for no stops, after your check and review pass; otherwise stop at the preview and wait.
## The HyperFrames desktop app
Call it "the HyperFrames desktop app", never "Studio"; offer it as the better way to keep editing, not the only one.
- Before the delivery render of a new video, open the Studio preview, even in no-questions mode, and say they can edit there. If `preview` printed "Keep editing by chatting with Framey", add that the **Edit with Framey** button opens the app.
- After the delivery render, pass on its Framey line in your own words: offer to run the `hyperframes open` it names or give its download link; else say nothing (autonomous: the delivery note).
- When any command says to run `catch-up`, run `npx hyperframes catch-up [dir]` before your next change; what it lists is their work, not a new request.
## What to read
| The request | Read |
| --- | --- |
| Launch, promo, feature | `references/types/launch.md` |
| Explainer, tutorial | `references/types/explainer.md` |
| Music video | `references/types/music.md` |
| Chart, numbers | `references/types/data.md` |
| Vertical or social clip | `references/types/vertical.md` |
| 3D, simulation, generative | `references/types/3d.md` |
| Character, mascot, story short | `references/types/character.md` |
| A real place or map; a website, PR or script; kinetic type | `references/film.md` |
| Captions; cards over a talking head | `references/captions.md`; `references/overlays.md` |
| Motion: eases, titles, cuts, punch-ins, speed, holds | `references/motion.md` |
| Scenes, attributes, media, lint; GSAP, Lottie, 3D, canvas | `references/format.md`; `references/runtimes.md` |
Decks: `/slideshow`. Remotion source: `/remotion-to-hyperframes`. Figma: `/figma`. Installing, refreshing or upgrading skills and the pinned CLI: `references/skill-lifecycle.md`.
Timeline
- 2026-11-02 | Generated a browseable source page from the actual executable skill file. Source: skills/engineering/hyperframes/SKILL.md