hyperframes

作者: heygen-com

對於任何製作、創作、編輯、動畫或渲染影片、動畫或動態圖形的請求——包括宣傳片、解說片、附字幕片段、標題卡、疊加層或任何合成作品——請先閱讀此說明。HyperFrames 透過 HTML 渲染影片;這是入門技能,也是代理創作或編輯影片的預設方式。它會將請求導向正確的專業工作流程,並指向 HyperFrames 領域技能,因此在猜測工作流程之前,請先閱讀此說明,而非其他影片或動畫技能。

npx skills add https://github.com/heygen-com/hyperframes --skill hyperframes

Plugin installs: Before setup or freshness commands, follow plugin execution rules 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 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 requestRead
Launch, promo, featurereferences/types/launch.md
Explainer, tutorialreferences/types/explainer.md
Music videoreferences/types/music.md
Chart, numbersreferences/types/data.md
Vertical or social clipreferences/types/vertical.md
3D, simulation, generativereferences/types/3d.md
Character, mascot, story shortreferences/types/character.md
A real place or map; a website, PR or script; kinetic typereferences/film.md
Captions; cards over a talking headreferences/captions.md; references/overlays.md
Motion: eases, titles, cuts, punch-ins, speed, holdsreferences/motion.md
Scenes, attributes, media, lint; GSAP, Lottie, 3D, canvasreferences/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.

來自 heygen-com 的更多技能

hyperframes-audio
heygen-com
Use when audio already placed in a HyperFrames composition needs to be mixed: a music bed that fights a voiceover (voiceover carve), effects on a track (EQ, compressor, limiter, gate, saturation, delay, reverb, chorus, phaser, bitcrush), or automation envelopes drawn on a track's volume or any effect parameter. Don't use for sourcing or generating audio — finding BGM, SFX, or making a voiceover is `/media-use`. Don't use for clip timing or track layout, which is `/hyperframes-core`.
hyperframes-cli
heygen-com
HyperFrames CLI dev loop — `npx hyperframes` for scaffolding (init), validation (lint, inspect), preview, render, and environment troubleshooting (doctor, browser, info, upgrade). Use when running any of these commands or troubleshooting the HyperFrames build/render environment. For asset preprocessing commands (`tts`, `transcribe`, `remove-background`), invoke the `hyperframes-media` skill instead.
developmenttestingapi
hyperframes-animation
heygen-com
HyperFrames 的所有動畫知識——原子運動規則、多階段場景藍圖、場景轉場、更廣泛的動態設計技術,以及七個運行時適配器(預設 GSAP,加上 Lottie、Three.js、Anime.js、CSS 關鍵影格、Web Animations API、TypeGPU)。適用於任何動態或動畫任務:選取 2-4 條規則並組合,或載入藍圖,或查詢特定運行時 API(例如 GSAP 緩動函數 / Lottie 播放器 / Three.js 混合器)。HyperFrames 原生功能:單一暫停時間軸、安全搜尋、...
creativedevelopmentdesign
hyperframes-core
heygen-com
HyperFrames HTML 組合合約。用於組合結構、資料屬性、片段、軌道、子組合、變數、媒體播放、確定性渲染規則,以及最小可渲染專案的驗證。
developmentmediacreative
hyperframes-media
heygen-com
HyperFrames 組合的資產預處理 — 多供應商 TTS(HeyGen / ElevenLabs / Kokoro 本地)、多供應商 BGM(Google Lyria / 本地 MusicGen)、Whisper 轉錄、背景移除及字幕編寫。用於 npx hyperframes tts、bgm、transcribe、remove-background、語音/供應商選擇、音樂情緒提示、字幕/副標題/歌詞/卡拉OK/逐字樣式設定。
mediaaudiovideo
hyperframes-registry
heygen-com
安裝並將註冊區塊與元件接入 HyperFrames 組合中。適用於執行 hyperframes add、安裝區塊或元件、將已安裝項目接入 index.html,或處理 hyperframes.json 時使用。涵蓋 add 指令、安裝位置、區塊子組合接入、元件片段合併、註冊表探索,以及編寫新區塊或元件以向上游貢獻(構想 → 骨架 → 驗證 → PR)。
developmentapicode-review
general-video
heygen-com
作為自訂 HyperFrames HTML 影片合成編寫的備用方案,適用於無專門工作流程可匹配的情況。涵蓋較長或多場景作品、品牌/宣傳短片、蒙太奇、標題卡、長篇動態海報、靜態循環,以及任意長度或格式的自由形式合成。不適用於行銷產品宣傳(product-launch-video)、一般網站轉影片擷取(website-to-video)、主題解說(faceless-explainer)、GitHub PR 影片(pr-to-video)、為現有素材加字幕等用途。
videocreativemedia
motion-graphics
heygen-com
當使用者需要一段簡短、以設計為主的動態圖像,且動態本身即為訊息時使用:動態字體排版、數字或統計數據累計、圖表/數據視覺化呈現、標誌片頭、品牌組合、下方標題、提示框、社群疊加層、動態標題/推文/新聞項目、動態海報,或快速捕捉的頁面重點。通常長度在10秒以內,最長約30秒,無敘事弧線、旁白或真人拍攝主體。可輸出為MP4或透明疊加層。不適用於較長、多場景、有旁白或品牌展示影片等類型。
creativevideodesign