Agent skill

Figma to HyperFrames

by heygen-com in 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.

Apache-2.0Auto-check: notesMedia & Creative

Install Figma to HyperFrames

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

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

GitHub CLI
$ gh skill install heygen-com/hyperframes figma --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/figma .claude/skills/figma && 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
figma
GitHub stars
59k
Used in
3 other repos
Token cost
~4.5k tokens
SKILL.md length
2,346 words
Files
2 (incl. scripts)
Skills in repo
32
Repo updated
First seen
Licence
Apache-2.0

At a glance

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.

  • Works in 3 steps: figma.com/settings → Security → Personal… → Scopes — read-only is all this… → Have the user set FIGMA_TOKEN in their…
  • Pasting a figma.com link and asking for that design inside a video composition
  • SKILL.md covers Auth — two credentials, scoped, Routing, Assets (Phase 1 — CLI) and Tokens (Phase 2 — CLI), plus 5 more sections
  • Runs JavaScript scripts from its folder; calls npx and node; needs FIGMA_TOKEN and BAD_TOKEN

What it does

When you paste a figma.com link or ask to bring a Figma design, frame, logo or brand into a video, the agent splits the job into five phases. Static assets, brand tokens and styles, and components converted to HTML go through the REST API with the hyperframes figma asset, tokens and component commands. Motion becomes GSAP animation through a Figma connector when one is available, and shaders come from a connector or a native export.

REST is preferred because it works headless and at volume, and a connector is optional, so the agent asks for a native export when none is present. Every import freezes assets locally so renders stay deterministic, and storyboard reconstructions combine exported assets with an agent-built timeline. Before the first CLI call the agent checks for a FIGMA_TOKEN in the shell or the project .env, and if there is none it walks you through creating a personal access token in Figma settings. A scripts/verify-motion.mjs script is included, and the agent asks before running the skill update command.

When your agent uses it

  • Pasting a figma.com link and asking for that design inside a video composition
  • Pulling a brand's colors, type and styles from Figma into a video project
  • Converting a Figma component into HTML for a HyperFrames scene
  • Rebuilding a Figma storyboard as an animated timeline

Example prompts

  • “Bring the logo frame from this Figma link into my intro composition.”
  • “Import the brand tokens from our Figma file and apply them to the product video.”
  • “Rebuild the storyboard frames in this Figma file as an animated composition.”

Requirements

  • A Figma personal access token in FIGMA_TOKEN or the project .env
  • The HyperFrames CLI, run through npx
  • A Figma connector for motion and shaders (optional)

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. figma.com/settings → Security → Personal access tokens → Generate new token.
  2. Scopes — read-only is all this integration ever needs (it never writes to Figma): File content: Read-only + File metadata: Read-only. Add…
  3. Have the user set FIGMA_TOKEN in their shell profile or project .env; never ask them to paste the token into the conversation.

What it can do on your machine

Read from SKILL.md and the folder at commit 0c76e52. 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/ (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • npx
    • node

    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 these keys or tokens, usually read from environment variables:

    • FIGMA_TOKEN
    • BAD_TOKEN

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

Context cost

Figma to HyperFrames loads about 4.5k tokens when it runs. Until then it costs about 104 tokens; SKILL.md has 2,346 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~104
When it runs · the whole SKILL.md, loaded when a task matches
~4.5k

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:26
    n "$FIGMA_TOKEN" ]`) **or** the project `.env` (the CLI auto-loads it — a `.env` entry counts as configured). If neither
  • NoteMentions a .env fileSKILL.md:30
    OKEN` in their shell profile or project `.env`; never ask them to paste the token into the conversation.

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 0c76e52, republished under its Apache-2.0 licence (© heygen-com). 2,346 words, ~4,528 tokens.

Download SKILL.mdSave it as .claude/skills/figma/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
figma
description
Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

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 figma. 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.

Figma → HyperFrames

Bring the user's Figma work into a composition. Split by capability (design spec §2):

PhaseWhatTransportSurface
1Static assetsRESThyperframes figma asset
2Brand tokens/stylesRESThyperframes figma tokens
3Components → HTMLRESThyperframes figma component
4Motion → GSAPconnector when availableuse its motion context
5Shadersconnector / manual exportuse it or a native export

REST is used wherever it can be (usable at volume, headless). A compatible Figma connector is optional for motion and shader data; without one, ask for a native export. Every path freezes assets locally so renders stay deterministic. Storyboard reconstructions compose Phase-1 asset exports (REST) with agent-driven timeline assembly — no connector needed. Existing frozen assets, manifest records, and bindings are unaffected by routing changes — the split only changes which credential the next import uses.

Auth — two credentials, scoped

Preflight — before the first CLI call, check a token exists: shell env ([ -n "$FIGMA_TOKEN" ]) or the project .env (the CLI auto-loads it — a .env entry counts as configured). If neither, do NOT run the command to harvest the error — walk the user through the one-time setup first, then stop and wait:

  1. figma.com/settings → Security → Personal access tokens → Generate new token.
  2. Scopes — read-only is all this integration ever needs (it never writes to Figma): File content: Read-only + File metadata: Read-only. Add Library content: Read-only if you'll run tokens on a non-Enterprise plan — the published-styles fallback hits /v1/files/:key/styles, which 403s without it (a scope the older setup text omitted). Optionally Variables: Read-only for brand variables — Enterprise-only; without it tokens degrades to published styles automatically (expected, not an error — say so). A 403 now names the exact missing scope; 429s retry automatically (per-minute limit, honors Retry-After).
  3. Have the user set FIGMA_TOKEN in their shell profile or project .env; never ask them to paste the token into the conversation.

While onboarding, also set expectations in one breath: every import lands as a local frozen file with recorded provenance — renders never call Figma, re-running a command re-imports only what changed in Figma, and one token works for assets, brand tokens, and components across every file their Figma account can view.

  • Phases 4–5 (motion/shaders): a compatible Figma connector, with separate authorization from the token. If it is unavailable or unauthenticated, ask the user to connect it or provide a native export, then stop.
  • Say exactly which credential a failing phase needs — never present the split as broken.
  • BAD_TOKEN (401) mid-flow → the token is expired/revoked; re-mint. FORBIDDEN (403) → the message names the exact missing scope (e.g. library_content:read for the styles fallback) — add it, or the file isn't visible to the account. REQUIRES_ENTERPRISE (403 on variables) → not a failure: styles fallback already ran. RATE_LIMITED (429) → the client already retried with backoff (this applies to EVERY read — assets, tokens, styles, node trees, versions — the retry lives in the shared request path; Retry-After is honored, capped at 60s); if it still surfaces, wait a minute or import fewer nodes per call.

Rate-limit awareness (spec §2.1): connector quotas vary by Figma plan — batch parent-frame requests, skip verification screenshots unless asked, and cache raw responses so re-derivation never spends a second call. REST is per-minute (10+/min, per-endpoint buckets) — fine at volume, back off on 429.

Routing

Parse the user's figma link with parseFigmaRef (URL, fileKey:nodeId, bare fileKey). Then by intent:

  • "use this layer / logo / image" → Asset (CLI)
  • "pull my brand / colors / tokens" → Tokens (CLI)
  • "build a scene from this frame" → Component (CLI)
  • "import this animation / motion" → Motion (connector when available, below)
  • a storyboard section / filmstrip of scene frames → Storyboard (below)
  • shader fill/effect → Shaders (below)

Narrate every step for the user — before each command say what you're about to pull from Figma; after it, say where the artifact landed (the frozen path / sidecar / component dir), what changed in the composition, and the immediate next action (preview, add printed variables, re-import to link bindings). The user should never have to ask "did it work?" or "now what?".

Assets (Phase 1 — CLI)

bash
hyperframes figma asset '<url-or-fileKey:nodeId>' [more refs…] [--format svg|png|jpg|pdf] [--scale 2] [--description "..."] [--entity "..."]

Renders over REST, sanitizes SVG, freezes under .media/images/, appends the manifest with provenance, regenerates .media/index.md (the shared media-use inventory), prints an <img> snippet. Idempotent per fileKey:nodeId:format:scale:version. Prefer SVG for vectors/logos (scalable, animatable), PNG --scale 2 for raster fidelity. Always pass --description "<what it is>" (it becomes the index row + <img alt>); add --entity "<name>" for named brand marks so media-use resolve --entity finds them later (entity hits match across image/icon).

Batch many nodes in ONE request — pass several refs (space-separated or comma-joined) of the SAME file: hyperframes figma asset 'KEY:1-2' 'KEY:3-4' 'KEY:5-6'. All render in a single /v1/images call, which is figma's own answer to the per-minute rate limit — prefer it over N separate commands when pulling a whole frame's worth of assets. --description/--entity apply to every node in the batch, so batch nodes that share a purpose. 429s also auto-retry with backoff regardless.

Tokens (Phase 2 — CLI)

bash
hyperframes figma tokens <fileKey>

Imports variables as composition brand-variable entries + figma-tokens.json sidecar + binding-index records (.media/figma-bindings.jsonl). Variables are Enterprise-gated upstream: on other plans the command degrades to published-style metadata (values resolve at component-import time). Add the printed entries to the composition's data-composition-variables.

Import tokens before components when both are wanted — that's what lets component colors link to brand variables instead of baking duplicates.

Non-Enterprise variables path (field-tested): REST variables are Enterprise-gated, but a compatible connector may provide variable definitions. When tokens reports REQUIRES_ENTERPRISE and the connector is available, retrieve the parent scene's variables once, cache the raw response to .media/figma-cache/, and use it to build the binding index. The REST node tree's boundVariables supplies per-property VariableIDs; join them by node and property, then write .media/figma-bindings.jsonl rows ({kind:"binding", figmaId, sourceFileKey, compositionVariableId: "figma:<name>", version}) plus the composition-variable entries. Everything downstream (component var() resolution, refresh, runtime CSS variables) is the shipped machinery. Label it for the user: "tokens via the Figma connector — Enterprise plans get this from hyperframes figma tokens directly."

The runtime defines every declared composition variable as a CSS custom property (document root + sub-comp hosts), so imported var(--slug, literal) fills recolor when the variable default changes — updating one value in data-composition-variables re-brands every imported component without re-importing anything. hyperframes render --variables '<json>' overrides them at render time.

Components (Phase 3 — CLI)

bash
hyperframes figma component '<url-or-fileKey:nodeId>'

Node tree → editable HTML at exact figma geometry, packaged as a registry item under compositions/components/<name>/. Vectors/boolean-ops auto-rasterize via Phase-1 export. Binding pass (spec §7.1, exact-ID only — never value matching):

  • Static fidelity self-check (mandatory for hero content): after importing, render the fragment and compare against figma's own pixels — figma asset <same node> --format png is the ground truth. Text is the known drift axis: a figma text box shorter than its line-height is vertically-trimmed bounds (the mapper emits text-box-trim for these; measured drift without it was ~6px on a 70px font). If the comparison shows drift the mapper doesn't cover, report it — don't hand-tweak the fragment silently.
  • Fill bound to an imported token → var(--slug, #literal) — brand refresh propagates.
  • Bound to an unknown token → literal + data-figma-unresolved flag. The command tells you; offer the user: run tokens on the source (or library) file, then re-import the component to link them. Ask once per unknown library which file it is — never guess, never match by hex.
Show full SKILL.md (1,095 more words)Show less

Motion (Phase 4 — connector-assisted)

Usage beacon: Connector-assisted phases have no CLI touchpoint, so fire the skill beacon at start and finish (anonymous, consent-gated, never fails): npx hyperframes events --skill=figma-motion when you begin, npx hyperframes events --skill=figma-motion --event=skill_completed --outcome=success|error when done. Same for shaders (figma-shaders) and storyboards (figma-storyboard).

No REST equivalent exists. When a compatible connector is available, use it and hand its output to the pure helpers in @hyperframes/core/figma; otherwise ask for a native export:

  1. Retrieve motion context for the parent frame in one recursive request, not one request per element. Save the raw JSON next to the project (.media/figma-cache/) so retranslation is free.
  2. Normalize into MotionDocs with motionContextToDocs(rawResponse, { selectorFor, repeat }) from @hyperframes/core/figma — never transcribe keyframe numbers by hand. The helper encodes the field-tested decoding rules mechanically: it parses the motion.dev snippets (the reliable encoding — the CSS snippets stretch durations and can disagree; they are ignored), strips loop-wrap tail keyframes (sub-millisecond segments at times ≈0.9999→1 are the loop's instant reset, not authored motion — the wrap is realized by repeat restart), and preserves bezier eases verbatim. selectorFor must return the ids from the Phase-3 component import — don't derive selectors from node names. 2b. Validate against ground truth before calling it done — mandatory: export the cohort's root frame through the available connector and run node <SKILL_DIR>/scripts/verify-motion.mjs --reference <export.mp4> --render <render.mp4> --crop WxH+X+Y — it compares motion-energy deltas (static import fidelity cancels out) and fails below 15dB min motion-PSNR (calibrated: faithful ≈ 20+, diverging ≈ 5). Measure --crop from the render's actual card edges, don't guess. FAIL means re-check the translation, not the threshold.
  3. motionToGsap(doc) → emitTimelineScript(spec) → inject as a <script> after the GSAP + CustomEase CDN tags. Paused, finite, registered on window.__timelines with a literal key.
  4. Untranslatable track (shader-driven, unsupported prop, complex masks) → export through the connector, freeze the MP4, then embed it as <video class="clip">. Exception: shader-driven tracks — Figma's export path flattens shaders to the base color (see Shaders below), so a bake there silently loses the shader; ask the user for a native Figma export instead. Always say which path you used and why. Named eases outside the mapped set fall back to linear — the mapping table lives in motionEase.ts; flag the fallback to the user when it fires.
  5. Run npx hyperframes check before calling it done.

Shaders (Phase 5 — mostly manual)

Figma's connector render path does not execute shaders (they flatten to the base color), and shader source is only reachable for library-published styles (paid Full seat). Default path: ask the user to export the shader frame natively in Figma (PNG or Motion MP4), then import it as a Phase-1 asset / clip. Don't attempt connector pixel capture of a shader — it will silently produce the wrong thing.

Storyboards (a SECTION of scene frames → animation)

The cardinal rule: storyboard frames are KEYFRAMES, not slides. Two frames containing the same element describe that element's state through time — animate the ELEMENT between the states; never play the frames as a sequence of stills. A logo drawn in four consecutive frames at descending y is ONE element rising through four keyframes. Playing storyboard frames back-to-back is the failure mode; reconstructing the element timelines they imply is the job.

Storyboard files follow a grammar you can parse mechanically — don't eyeball, decode:

  1. Scene units: inside the SECTION, every frame-sized node is a scene — both named FRAMEs and loose full-frame RECTANGLEs (designers paste stills straight into the section). Filter by size (≈ composition aspect, e.g. >1400×900), not by node type or name.
  2. Order = x-position (row-major if the strip wraps). Sort scenes by absoluteBoundingBox.x.
  3. Diff adjacent frames into element chains — this is where the animation lives. Match children across consecutive frames: first by name (same name = same element → tween its relative x/y/w/h between states), then by geometry similarity (similar size + nearby center = same logical element whose pixels changed → crossfade the two exports in place while tweening geometry; covers typed-text progressions and morph states). Unmatched children enter/exit at their scene's beat. Frame background fills tween as a color track. Export ONE asset per chain (one per state only when pixels genuinely differ) — never one still per frame.
  4. Stills are the fallback, not the default — only for frames that don't decompose (flat full-frame screenshots with no shared elements); those get the animatic treatment below.
  5. Director notes: TEXT nodes below the strip are motion intent, paired to the scene whose x-range they overlap. They describe how to animate — they are not on-screen copy.
  6. Batch exports (elements or stills): GET /v1/images accepts comma-separated ids, but big scene frames hit "Render timeout" past ~12 ids — chunk to ~4 per call with a retry. (One call per scene wastes the rate budget; 26 scenes ≈ 52 calls via the single-asset path.)
  7. Note verbs → transitions (starter vocabulary, extend as encountered):
Note saysDo
EXPLOSION / BURSTincoming scale ~1.5→1 + fade, power3.out
SLIDES / SLIDE TO THE… / SCROLLdirectional slide in from that edge
MORPH / REVEALScrossfade — or Phase-3 import if the motion is inside one scene
CYCLE THROUGH / EACH ONElonger hold — or Phase-3 import if items animate within the scene
(no note)crossfade + slow Ken-Burns drift
  1. Stills vs. components routing: a note describing motion between scenes → transition on the still (above). A note describing motion inside a scene ("TEXT LINES REVEAL ONE AFTER THE OTHER", "PILLS ANIMATE IN") → that frame deserves a Phase-3 component import (real elements) animated per the note, not a flat PNG. Do the animatic pass first with stills, then upgrade the scenes the notes single out.
  2. One main timeline sequences everything (opacity/x/y per scene at absolute times) — no per-scene sub-compositions needed for an animatic.
  3. Escalation — frames depict ONE product UI → rebuild the app, not element chains. When every frame is the same application screen in successive states (a signup flow, a settings panel, a player), element chains undersell it. Rebuild the UI as live DOM — Phase-3 component import for the parts that change state, real exported pixels for static chrome (code what changes state, freeze what doesn't) — and treat each frame delta as an interaction to perform, not a tween to apply: the cursor enters, clicks the control, the state responds, screens push/slide as real navigation. The result reads as one continuous screen recording of a working app. This is the cardinal rule taken to its conclusion for UI flows; the stills/element-chain treatments are for storyboards that aren't one coherent application.

Determinism

Never leave a Figma URL in the composition — freeze first. Never emit repeat: -1 without a finite root data-duration. Timelines paused, finite, literal window.__timelines keys. All Figma I/O at import time; render sees local files only.

© 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 1 other file (scripts) in skills/figma of heygen-com/hyperframes.

  • SKILL.md
  • scripts/verify-motion.mjs

Open the folder on GitHubat commit 0c76e52

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

Figma to HyperFrames 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.

Figma to HyperFrames compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Figma to HyperFrames this skillheygen-com/hyperframes59k3 repos~4.5kAutomated safety check: NotesApache-2.0
Yuv Viral Videohoodini/ai-agents-skills281—~7.5kAutomated safety check: NotesNone
Plotbeat Data VideosUnclecheng-li/AI_Animation1.5k—~2.6kAutomated safety check: PassMIT
Duo Foldable Phone Comparisonheygen-com/hyperframes-community-skills1781 repos~2kAutomated safety check: PassApache-2.0
Talking-Head Video Pipelinenaive-kun/naive-video-skill132—~3.3kAutomated safety check: PassMIT
X Posting License Videoheygen-com/hyperframes-community-skills1781 repos~1.2kAutomated safety check: PassApache-2.0

Similar skills

  • Yuv Viral Video

    hoodini/ai-agents-skills

    Edit any selfie or screen-share footage into a viral short-form video in YUV.AI's signature style — Apple-style liquid-glass cards (real CSS backdrop-filter), dark-mode polish, MrBeast-paced cuts…

    281 GitHub stars~7.5k tokensUpdated 2 mo ago
    Media & CreativeAuto-check: notes
  • Plotbeat Data Videos

    Unclecheng-li/AI_Animation

    Turns a local CSV or JSON file, or data fetched from an approved source, into an editable data-visualization video by adapting HyperFrames templates.

    1.5k GitHub stars~2.6k tokensUpdated 3 days ago
    Media & CreativeAuto-check passed
  • Duo Foldable Phone Comparison

    heygen-com/hyperframes-community-skills

    Builds side-by-side comparison and meme videos on a fixed photo of hands holding an open foldable phone, with your own HTML playing in each screen.

    178 GitHub starsUsed in 1 repo~2k tokens
    Media & CreativeAuto-check passed
  • Talking-Head Video Pipeline

    naive-kun/naive-video-skill

    Turns raw or rough-cut talking-head footage into a captioned, animated final video through a staged, resumable production pipeline.

    132 GitHub stars~3.3k tokensUpdated 1 mo ago
    Media & CreativeAuto-check passed
  • X Posting License Video

    heygen-com/hyperframes-community-skills

    Builds a short animated posting-license card video from an X profile's name, handle, counters and avatar, using a fixed template that the agent only fills in and renders.

    178 GitHub starsUsed in 1 repo~1.2k tokens
    Media & CreativeAuto-check passed
  • Build a Vietnamese vertical TikTok explainer in the "MỔ XẺ PAPER AI" (AI paper dissection) format with HyperFrames (HTML/CSS/GSAP → MP4), Noti.vn style.

    126 GitHub stars~4.8k tokensUpdated today
    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.

    59k GitHub starsUsed in 3 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.

    59k 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.

    59k 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.

    59k GitHub starsUsed in 3 repos~7.7k tokens
    Auto-check: notes
  • 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.

    59k GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • HyperFrames Video Entry Point

    heygen-com/hyperframes

    Entry point for making, editing and rendering videos from HTML compositions with HyperFrames, routing each request to the right workflow.

    59k GitHub starsUsed in 3 repos~5.2k tokens
    Auto-check passed

Works with

Questions about Figma to HyperFrames

What does Figma to HyperFrames do?

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. com link or ask to bring a Figma design, frame, logo or brand into a video, the agent splits the job into five phases. Static assets, brand tokens and styles, and components converted to HTML go through the REST API with the hyperframes figma asset, tokens and component commands.

When should I use Figma to HyperFrames?

Figma to HyperFrames fits situations like: pasting a figma.com link and asking for that design inside a video composition; pulling a brand's colors, type and styles from Figma into a video project; converting a Figma component into HTML for a HyperFrames scene; rebuilding a Figma storyboard as an animated timeline.

How do I install Figma to HyperFrames in Claude Code?

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

How do I install Figma to HyperFrames in Codex?

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

Can I use Figma to HyperFrames 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 figma -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/figma, .gemini/skills/figma, .github/skills/figma and .opencode/skills/figma in your project.

What does Figma to HyperFrames need to run?

Going by SKILL.md and its folder, Figma to HyperFrames needs JavaScript for the scripts in its folder, the command-line tools its instructions call (npx and node) and credentials named FIGMA_TOKEN and BAD_TOKEN. Our summary lists: A Figma personal access token in FIGMA_TOKEN or the project .env; The HyperFrames CLI, run through npx; A Figma connector for motion and shaders (optional).

Does Figma to HyperFrames 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 Figma to HyperFrames safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. 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 Figma to HyperFrames use?

Figma to HyperFrames 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 Figma to HyperFrames use?

About 4.5k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Figma to HyperFrames?

Skills that share tags, products or a category with Figma to HyperFrames: Yuv Viral Video (hoodini/ai-agents-skills, 281 stars), Plotbeat Data Videos (Unclecheng-li/AI_Animation, 1.5k stars), Duo Foldable Phone Comparison (heygen-com/hyperframes-community-skills, 178 stars) and Talking-Head Video Pipeline (naive-kun/naive-video-skill, 132 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Figma to HyperFrames?

heygen-com (a GitHub organization) maintains it in heygen-com/hyperframes, which has 58,669 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on October 8, 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.