Agent skill

Remotion to HyperFrames Porter

by heygen-com in heygen-com/hyperframes

Ports an existing Remotion (React) composition to HyperFrames HTML with GSAP, one way, and grades the result against a tiered set of reference fixtures.

Apache-2.0Auto-check passedMedia & Creative

Install Remotion to HyperFrames Porter

skills CLI
$ npx skills add heygen-com/hyperframes --skill remotion-to-hyperframes -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install heygen-com/hyperframes remotion-to-hyperframes --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/heygen-com/hyperframes.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/remotion-to-hyperframes .claude/skills/remotion-to-hyperframes && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
remotion-to-hyperframes
GitHub stars
58k
Used in
3 other repos
Token cost
~2.8k tokens
SKILL.md length
1,190 words
Files
95 (incl. scripts, references, assets)
Skills in repo
32
Repo updated
First seen
Licence
Apache-2.0

At a glance

Ports an existing Remotion (React) composition to HyperFrames HTML with GSAP, one way, and grades the result against a tiered set of reference fixtures.

  • Works in 5 steps: Lint the source → Plan the translation → Generate the HF composition → …
  • Porting a Remotion project's source code to HyperFrames
  • SKILL.md covers Overview, When to use, Workflow and What this skill explicitly…, plus 1 more section
  • Runs TypeScript and Shell scripts from its folder; calls npx

What it does

This skill maps Remotion idioms to their HyperFrames counterparts, so a React-based video composition becomes an HTML composition animated with GSAP. It is meant only for explicit port, convert or migrate requests. New HyperFrames builds, passing mentions of Remotion and Remotion code shared purely as reference are sent to the /hyperframes entry skill instead.

The author puts the translation at roughly 80% mechanical for typical compositions. For patterns that do not fit HyperFrames' seek-driven rendering, the skill declines to translate and points to a runtime interop approach described in PR 214. Four fixtures in tiers T1 to T4 grade each translation against measured SSIM thresholds, and the skill says not to translate without running that eval, because a result that looks right can still render measurably worse than the validated baseline.

When your agent uses it

  • Porting a Remotion project's source code to HyperFrames
  • Migrating a React video composition to HTML and GSAP
  • Checking a Remotion translation against reference fixtures and SSIM thresholds

Example prompts

  • “Port my Remotion title card in ./remotion-src to HyperFrames HTML.”
  • “Convert this Remotion composition to HyperFrames and run the eval to confirm the render matches.”
  • “I want to migrate off Remotion, so translate the Root.tsx composition into a HyperFrames project.”

Requirements

  • Source code of an existing Remotion project
  • Node.js with npx for the HyperFrames CLI

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Lint the source
  2. Plan the translation
  3. Generate the HF composition
  4. Validate
  5. Document gaps

What it can do on your machine

Read from SKILL.md and the folder at commit f6b3821. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (TypeScript and Shell, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Remotion to HyperFrames Porter loads about 2.8k tokens when it runs, and up to ~19k if it reads all its reference files. Until then it costs about 89 tokens; SKILL.md has 1,190 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~89
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~19k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from heygen-com/hyperframes at commit f6b3821, republished under its Apache-2.0 licence (© heygen-com). 1,190 words, ~2,758 tokens.

Download SKILL.mdSave it as .claude/skills/remotion-to-hyperframes/SKILL.md (or your agent's skills folder). This skill also uses 94 other files; get the full folder from GitHub.
name
remotion-to-hyperframes
description
Port an existing Remotion (React) composition's source to HyperFrames HTML. Use ONLY on an explicit ask to port/convert/migrate/translate a Remotion source — one-way, Remotion-only. A passing Remotion mention, reference-only code, or "make something like my Remotion video" is a fresh build (/general-video). Unclear → /hyperframes.

Plugin installs: Before setup or freshness commands, follow plugin execution rules when this skill is inside a HyperFrames plugin. Standalone installs keep the update instructions below.

First, keep this skill fresh — confirm with the user before running: npx hyperframes skills update remotion-to-hyperframes. A fast no-op when everything is current; otherwise it refreshes this skill plus the core domain skills it depends on before you rely on them.

Remotion to HyperFrames

The front door is /hyperframes. Use this only to port an existing Remotion (React) composition's source into HyperFrames, one way. Authoring a new composition, re-creating from a non-Remotion source (After Effects, Framer Motion, plain React / CSS — there is no Remotion source to translate), a passing Remotion mention, or any uncertainty → read /hyperframes first: the intent layer owns every route decision.

Overview

Translate Remotion (React-based) video compositions into HyperFrames (HTML + GSAP) compositions. Most Remotion idioms have direct HyperFrames equivalents — the translation is mechanical for ~80% of typical compositions. This skill encodes the mapping and guards against the lossy 20% by refusing to translate patterns that don't fit HF's seek-driven model and recommending the runtime interop pattern from PR #214 instead.

The skill ships with a tiered test corpus (T1–T4, 4 fixtures total) that grades translations against measured SSIM thresholds. Don't translate without running the eval — a translation that "looks right" but renders 0.05 SSIM lower than the validated baseline is silently wrong.

When to use

Use this skill ONLY when the user explicitly asks to migrate from Remotion. Example trigger phrases:

  • "port my Remotion project to HyperFrames"
  • "convert this Remotion code to HyperFrames"
  • "migrate from Remotion"
  • "translate this Remotion comp"
  • "rewrite this as HyperFrames HTML"

Do NOT use this skill when:

  • (a) The user is authoring a new HyperFrames composition, even if they have or are A/B-testing a similar Remotion video.
  • (b) The user mentions Remotion in passing without asking for migration.
  • (c) The user shares Remotion code as reference material rather than asking for a translation.
  • (d) The user asks for "the same video as my Remotion one" without explicitly asking to migrate the source — treat that as a fresh HyperFrames build.

NOT SUPPORTED (decline — this is not what this skill does):

  • The reverse direction. Exporting a HyperFrames composition back out to Remotion (or to any other framework) is not a workflow — the translation is Remotion → HyperFrames only. Say so plainly.
  • Non-Remotion sources. An After Effects project (.aep), a Framer Motion / plain-React / CSS animation, or any other tool's source is not a Remotion composition — there is no Remotion source to translate. Re-create it natively via /general-video, or decline if HyperFrames can't represent it.

When in doubt, return to /hyperframes; its intent layer picks the route.

Workflow

Step 1: Lint the source

Run scripts/lint_source.py over the Remotion source directory. The lint detects patterns that can't translate cleanly:

  • Blockers (refuse + recommend interop): useState, useReducer, useEffect/useLayoutEffect with non-empty deps, async calculateMetadata, third-party React UI libraries (MUI, Chakra, Mantine, antd, shadcn, Radix, NextUI).
  • Warnings (translate after dropping the construct): @remotion/lambda config, delayRender, useCallback, useMemo, custom hooks.
  • Info (translate with note): staticFile, interpolateColors.

If any blocker fires, stop. Read references/escape-hatch.md and surface the recommendation message. Warnings don't stop translation — drop the offending construct in step 3 and note the gap in TRANSLATION_NOTES.md. @remotion/lambda config is the canonical warning case: the skill drops the import + renderMediaOnLambda(...) calls but translates the rest of the composition.

Step 2: Plan the translation

Read references/api-map.md — the index of every Remotion API and its HF equivalent or per-topic reference. Identify which topic references you'll need based on what the source uses:

Source containsLoad reference
Composition, defaultProps, schema, calculateMetadataparameters.md
Sequence, Series, Loop, AbsoluteFill, Freezesequencing.md
useCurrentFrame, interpolate, spring, Easing, interpolateColorstiming.md
Audio, Video, Img, IFrame, staticFile, delayRendermedia.md
TransitionSeries, @remotion/transitionstransitions.md
@remotion/lottielottie.md
@remotion/google-fonts/<Family>, Font.loadFont, @font-facefonts.md

Don't load all of them — load only what the specific source needs.

Search the live catalog for any visual effect the table does not map. When the source paints a look with no HF API equivalent — a scanline/CRT overlay, a glitch or chromatic-aberration pass, a shader wipe, a film-grain treatment — run npx hyperframes catalog --query "<the effect, in plain English>" --json before hand-writing it in GSAP. The search needs nothing installed: no project, no prior add, no account. It ranks the whole hosted registry (~400 blocks and components) from any directory, and transitions.md already takes this route for clockWipe() / iris() via npx hyperframes add sdf-iris. A real component is closer to the source than a hand-approximation, so it usually raises the SSIM rather than lowering it — but the render diff in Step 4 is still the arbiter. Hand-write the effect when a search returns nothing that fits, and record the substitution in TRANSLATION_NOTES.md either way.

Show full SKILL.md (408 more words)Show less
Step 3: Generate the HF composition

Emit index.html with:

  • Root <div id="stage"> carrying the composition's data-composition-id, data-start="0", data-duration (in seconds), data-fps, data-width, data-height, plus one data-* per scalar prop.
  • One host <div> per scene with data-composition-src="compositions/<scene>.html" and data-start / data-duration / data-track-index. The root holds no nested layout.
  • One compositions/<scene>.html per scene (a <template> sub-composition): its inline <style> for layout (CSS sets the from state of every animated property), its markup, and one paused gsap.timeline({paused: true}) in the scene's local time. Every Remotion useCurrentFrame() derivation becomes a tween on that timeline at the offset within the scene.
  • window.__timelines["<scene-id>"] = tl; in each scene file, and window.__timelines["<composition-id>"] for the root's own (possibly empty) timeline.

Custom React subcomponents inline as repeated HTML using the prop interface as the template (see parameters.md for the per-instance data-* pattern).

Step 4: Validate

Run the eval harness — references/eval.md for the full guide. Quick path:

bash
# Render Remotion baseline (after npm install in the fixture)
cd remotion-src && npx remotion render <CompositionId> out/baseline.mp4

# Render HF translation
cd ../hf-src && npx hyperframes render --skill=remotion-to-hyperframes --output ../hf.mp4

# SSIM diff
../../scripts/render_diff.sh ./remotion-src/out/baseline.mp4 ./hf.mp4 ./diff

Threshold: ~0.02 below p05 of the source's complexity tier (see eval.md's validated thresholds table). If the diff fails, run scripts/frame_strip.sh to see which frames diverged, then re-read the relevant timing/sequencing/media reference.

Critical: both renders must use matching pixel format. Set Config.setVideoImageFormat("png") + Config.setColorSpace("bt709") in the Remotion source's remotion.config.ts — otherwise the diff measures encoder differences (~0.05 SSIM hit), not translation fidelity.

Step 5: Document gaps

Anything that didn't translate cleanly (volume ramps dropped, custom presentations approximated, fonts substituted) gets a TRANSLATION_NOTES.md written next to the HF output. See references/limitations.md for the format.

What this skill explicitly does NOT do

  • Translate React state machines. Compositions that drive animation via useState + useEffect are not deterministic frame-capture targets in HyperFrames' seek-driven model. Recommend the runtime interop pattern.
  • Run Remotion's render pipeline alongside HyperFrames. That's the runtime interop pattern from PR #214 — a separate solution for compositions that fail this skill's lint.

(@remotion/lambda is not a blocker — Lambda config is deployment, not animation. The skill drops it as a warning and translates the rest. See references/escape-hatch.md.)

How to grade your own translation

Run the test corpus orchestrator:

bash
./assets/test-corpus/run.sh

It runs T1, T2, T3 (render + diff) and T4 (lint validation), prints a per-tier pass/fail table, and emits an aggregate JSON report. Use this to verify the skill is working end-to-end on a clean checkout — and as a regression check after editing any reference.

Validated baseline (as of 2026-04-27):

TierComposition shapeMean SSIMThreshold
T1single-element fade-in0.9740.95
T2multi-scene + spring + audio + image0.9850.95
T3data-driven, custom subcomponents, count-up0.9530.90
T4escape-hatch (8 lint cases)8/8 passn/a

© heygen-com, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 94 other files (scripts, references, assets) in skills/remotion-to-hyperframes of heygen-com/hyperframes.

  • SKILL.md
  • assets/.gitkeep
  • assets/test-corpus/.gitignore
  • assets/test-corpus/run.sh
  • assets/test-corpus/tier-1-title-card/.gitignore
  • assets/test-corpus/tier-1-title-card/README.md
  • assets/test-corpus/tier-1-title-card/expected.json
  • assets/test-corpus/tier-1-title-card/hf-src/compositions/title.html
  • assets/test-corpus/tier-1-title-card/hf-src/index.html
  • assets/test-corpus/tier-1-title-card/remotion-src/package.json
  • assets/test-corpus/tier-1-title-card/remotion-src/remotion.config.ts
  • assets/test-corpus/tier-1-title-card/remotion-src/src/Root.tsx
  • assets/test-corpus/tier-1-title-card/remotion-src/src/TitleCard.tsx
  • assets/test-corpus/tier-1-title-card/remotion-src/src/index.ts
  • … and 81 more

Open the folder on GitHubat commit f6b3821

Used in 3 other repositories

We found 3 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 3 other GitHub owners. This page covers the copy in heygen-com/hyperframes, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Remotion to HyperFrames Porter next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Remotion to HyperFrames Porter compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Remotion to HyperFrames Porter this skillheygen-com/hyperframes58k3 repos~2.8kAutomated safety check: PassApache-2.0
Remotion To Hyperframeschmonitor/chmonitor2981 repos~2.5kAutomated safety check: PassGPL-3.0
Remotion To Hyperframesboraoztunc/skills393—~2.2kAutomated safety check: PassApache-2.0
Remotion To Hyperframeswaker240/FullVideoProductionSkill196—~2.4kAutomated safety check: PassApache-2.0
SVG Character Animationcalesthio/OpenMontage65k—~421Automated safety check: PassMIT
Guizang Product Video Skillop7418/guizang-product-video-skill696—~1.1kAutomated safety check: PassAGPL-3.0

Similar skills

  • Remotion To Hyperframes

    chmonitor/chmonitor

    Port an existing Remotion (React) composition to HyperFrames HTML.

    298 GitHub starsUsed in 1 repo~2.5k tokens
    Media & CreativeAuto-check passed
  • Remotion To Hyperframes

    boraoztunc/skills

    Translate an existing Remotion (React-based) video composition into a HyperFrames HTML composition.

    393 GitHub stars~2.2k tokensUpdated 1 mo ago
    Media & CreativeAuto-check passed
  • Remotion To Hyperframes

    waker240/FullVideoProductionSkill

    Port an existing Remotion composition to HyperFrames HTML while preserving visible behavior.

    196 GitHub stars~2.4k tokensUpdated 10 days ago
    Media & CreativeAuto-check passed
  • SVG Character Animation

    calesthio/OpenMontage

    Animate SVG character rigs with GSAP, CSS transforms, Remotion frame control, and HyperFrames-compatible browser previews.

    65k GitHub stars~421 tokensUpdated 3 days ago
    Media & CreativeAuto-check passed
  • Guizang Product Video Skill

    op7418/guizang-product-video-skill

    制作代码驱动的软件产品宣传片和版本更新片(product promo、release notes video、changelog promo)。从真实功能和产品设计出发定方向,用真实组件、GSAP/Three.js 动效、原创配乐和动作音效完成影片,每支片子的视觉手法都从产品本身推导,不套模板。

    696 GitHub stars~1.1k tokensUpdated 6 days ago
    DevelopmentAuto-check passed
  • Reference Video Replica Qc

    Pluviobyte/video-production-skills

    Analyze, recreate, align, and verify reference-video motion.

    664 GitHub stars~1.8k tokensUpdated 2 mo ago
    Media & CreativeAuto-check passed

More from heygen-com/hyperframes

All 32 skills in this repo
  • HyperFrames Animation

    heygen-com/hyperframes

    Collects motion rules, scene blueprints, transitions and runtime adapters for HyperFrames video compositions, with GSAP as the default animation runtime.

    58k GitHub starsUsed in 3 repos~2.1k tokens
    Auto-check passed
  • HyperFrames Media Use

    heygen-com/hyperframes

    Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.

    58k GitHub starsUsed in 2 repos~2.1k tokens
    Auto-check passed
  • Embedded Video Captions

    heygen-com/hyperframes

    Adds captions to a single-subject talking-head video without editing the footage, from plain subtitles to cinematic text placed behind the speaker.

    58k GitHub starsUsed in 3 repos~8.6k tokens
    Auto-check passed
  • Weekly Changelog Video

    heygen-com/hyperframes

    Turns a weekly changelog markdown file into a branded HyperFrames video with voiceover, animated mock-UI scenes and captions, using fonts, background and scripts bundled in the skill.

    58k GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Faceless Explainer Video

    heygen-com/hyperframes

    Turns an article, notes or a topic brief into an explainer video whose visuals are invented per scene, built frame by frame in HyperFrames with no footage.

    58k GitHub starsUsed in 3 repos~7.5k tokens
    Auto-check: notes
  • Figma to HyperFrames

    heygen-com/hyperframes

    Imports Figma assets, brand tokens, components and motion into a HyperFrames video composition, using the Figma REST API with a connector or native export for shaders.

    58k GitHub starsUsed in 3 repos~4.5k tokens
    Auto-check: notes

Questions about Remotion to HyperFrames Porter

What does Remotion to HyperFrames Porter do?

Ports an existing Remotion (React) composition to HyperFrames HTML with GSAP, one way, and grades the result against a tiered set of reference fixtures. This skill maps Remotion idioms to their HyperFrames counterparts, so a React-based video composition becomes an HTML composition animated with GSAP. It is meant only for explicit port, convert or migrate requests.

When should I use Remotion to HyperFrames Porter?

Remotion to HyperFrames Porter fits situations like: porting a Remotion project's source code to HyperFrames; migrating a React video composition to HTML and GSAP; checking a Remotion translation against reference fixtures and SSIM thresholds.

How do I install Remotion to HyperFrames Porter in Claude Code?

Run `npx skills add heygen-com/hyperframes --skill remotion-to-hyperframes -a claude-code`. Or copy the skill folder (skills/remotion-to-hyperframes in heygen-com/hyperframes) into .claude/skills/remotion-to-hyperframes in your project. Claude Code loads it when a task matches its description.

How do I install Remotion to HyperFrames Porter in Codex?

Run `npx skills add heygen-com/hyperframes --skill remotion-to-hyperframes -a codex`. Or copy the skill folder (skills/remotion-to-hyperframes in heygen-com/hyperframes) into .agents/skills/remotion-to-hyperframes in your project. Codex loads it when a task matches its description.

Can I use Remotion to HyperFrames Porter in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add heygen-com/hyperframes --skill remotion-to-hyperframes -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/remotion-to-hyperframes, .gemini/skills/remotion-to-hyperframes, .github/skills/remotion-to-hyperframes and .opencode/skills/remotion-to-hyperframes in your project.

What does Remotion to HyperFrames Porter need to run?

Going by SKILL.md and its folder, Remotion to HyperFrames Porter needs TypeScript and a shell for the scripts in its folder and the command-line tools its instructions call (npx). Our summary lists: Source code of an existing Remotion project; Node.js with npx for the HyperFrames CLI.

Does Remotion to HyperFrames Porter access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Remotion to HyperFrames Porter safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Remotion to HyperFrames Porter use?

Remotion to HyperFrames Porter is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Remotion to HyperFrames Porter use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 17k tokens, read only when the agent opens those files.

What are the alternatives to Remotion to HyperFrames Porter?

Skills that share tags, products or a category with Remotion to HyperFrames Porter: Remotion To Hyperframes (chmonitor/chmonitor, 298 stars), Remotion To Hyperframes (boraoztunc/skills, 393 stars), Remotion To Hyperframes (waker240/FullVideoProductionSkill, 196 stars) and SVG Character Animation (calesthio/OpenMontage, 65k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Remotion to HyperFrames Porter?

heygen-com (a GitHub organization) maintains it in heygen-com/hyperframes, which has 58,020 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on October 7, 2026.

Source: heygen-com/hyperframes on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.