HyperFrames is an open-source framework that turns HTML, CSS, media, and timed animations into deterministic MP4 videos. It is used locally, by coding agents, and in hosted authoring workflows to create rendered videos from web-based designs. Its catalogue add-ons provide skills, agents, instructions, hooks, settings, and a plugin for agent-driven video production.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add heygen-com/hyperframes --skill media-usegit clone --depth 1 https://github.com/heygen-com/hyperframesWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/heygen-com/hyperframes/media-use)<a href="https://agentmods.dev/skills/heygen-com/hyperframes/media-use"><img src="https://agentmods.dev/badge/skills/heygen-com/hyperframes/media-use/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/heygen-com/hyperframes/media-use"><img src="https://agentmods.dev/badge/skills/heygen-com/hyperframes/media-use.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Socket warn
- Snyk pass
- NVIDIA SkillSpector warn
SkillSpector: 4 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Prompt Injection · line 72 Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.Fix: Remove the large whitespace padding (blank-line blocks or long space runs) and review any content hidden below or to the right of it. Keep skill files compact and reviewable so no instructions can be
- medium Prompt Injection · line 78 Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.Fix: Remove the large whitespace padding (blank-line blocks or long space runs) and review any content hidden below or to the right of it. Keep skill files compact and reviewable so no instructions can be
- medium Prompt Injection · line 75 Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.Fix: Remove the large whitespace padding (blank-line blocks or long space runs) and review any content hidden below or to the right of it. Keep skill files compact and reviewable so no instructions can be
- medium Prompt Injection · line 77 Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.Fix: Remove the large whitespace padding (blank-line blocks or long space runs) and review any content hidden below or to the right of it. Keep skill files compact and reviewable so no instructions can be
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00196 | $0.01969 |
| Opus 5.5 | $0.00078 | $0.00788 |
| Sonnet 5.5 | $0.00039 | $0.00394 |
| Haiku 4.5 | $0.00020 | $0.00197 |
Grade A, and why
media-use scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 105 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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.
media-use
The media OS for HyperFrames: resolve · generate · operate · remember — every media type, one skill, zero context noise.
Only when HEYGEN_API_BASE is set in your environment (a host app set it and pays for HeyGen with its own key): HeyGen media is already paid for. Do not ask the person to install or sign in to the heygen CLI and do not offer its OAuth allowance; catalog search, TTS and avatar calls here go through the host. When that same host also gives you its own HeyGen tools, use those first. When a call through the host is refused, tell the person the host's message as written (it names the fix, such as adding or replacing the key in the app's Settings) and stop; do not switch to another provider unless they ask.
First run otherwise (no HEYGEN_API_BASE), when you will use HeyGen media (catalog search, TTS, avatar video): install and sign in to the heygen CLI (the free-usage path), then verify with npx hyperframes media-use resolve --doctor. Setup and providers: references/setup-providers.md.
Music and sound effects inside a host app: when the app you run in gives you its own music or sound-effect tools, use those. Without HEYGEN_API_BASE, resolve --type bgm and --type sfx search the HeyGen catalog through the heygen CLI; without it they fail and say so (sfx still answers from its bundled library).
Without HEYGEN_API_BASE, before generating a voiceover or an avatar video, tell the person: signing in to the heygen CLI with OAuth (heygen auth login --oauth) gives a free allowance for TTS voiceover and avatar videos, while an API key bills API credits.
Resolve — the one verb
npx hyperframes media-use resolve --type <type> --intent "<description>" --project <dir>
Returns one line: resolved <id> → <path> (<type>, <metadata>). All search noise stays on disk.
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- .gitignore 17 B
- audio/assets/sfx/chime.mp3 27 KB
- audio/assets/sfx/click-soft.mp3 11 KB
- audio/assets/sfx/click.mp3 11 KB
- audio/assets/sfx/CREDITS.md 1.2 KB
- audio/assets/sfx/error.mp3 51 KB
- audio/assets/sfx/glitch-1.mp3 82 KB
- audio/assets/sfx/glitch-2.mp3 110 KB
- audio/assets/sfx/glitch-3.mp3 97 KB
- audio/assets/sfx/impact-bass-1.mp3 66 KB
- audio/assets/sfx/impact-bass-2.mp3 81 KB
- audio/assets/sfx/key-press.mp3 3.8 KB
- audio/assets/sfx/manifest.json 3.6 KB
- audio/assets/sfx/notification.mp3 77 KB
- audio/assets/sfx/ping.mp3 26 KB
- audio/assets/sfx/pop.mp3 23 KB
- audio/assets/sfx/riser.mp3 314 KB
- audio/assets/sfx/sparkle.mp3 56 KB
- audio/assets/sfx/typing.mp3 26 KB
- audio/assets/sfx/whoosh-cinematic.mp3 173 KB
- audio/assets/sfx/whoosh-short.mp3 18 KB
- audio/assets/sfx/whoosh.mp3 18 KB
- audio/references/bgm.md 8.0 KB
- audio/references/captions/authoring.md 9.3 KB
- audio/references/captions/motion.md 5.5 KB
- audio/references/captions/transcript-handling.md 5.3 KB
- audio/references/remove-background.md 8.3 KB
- audio/references/requirements.md 4.2 KB
- audio/references/sfx.md 3.6 KB
- audio/references/transcribe.md 2.7 KB
- audio/references/tts-to-captions.md 1.7 KB
- audio/references/tts.md 14 KB
- audio/scripts/audio.mjs 13 KB runs code
- audio/scripts/audio.test.mjs 5.8 KB runs code
- audio/scripts/gemini-pipeline.test.mjs 4.8 KB runs code
- audio/scripts/heygen-tts.mjs 4.3 KB runs code
- audio/scripts/heygen-tts.test.mjs 1.4 KB runs code
- audio/scripts/heygen-voice.mjs 3.8 KB runs code
- audio/scripts/heygen-voice.test.mjs 8.3 KB runs code
- audio/scripts/lib/audio-meta.mjs 1.1 KB runs code
- audio/scripts/lib/audio-meta.test.mjs 4.5 KB runs code
- audio/scripts/lib/bgm-volume.mjs 236 B runs code
- audio/scripts/lib/bgm.mjs 11 KB runs code
- audio/scripts/lib/bgm.test.mjs 2.6 KB runs code
- audio/scripts/lib/concurrency.mjs 527 B runs code
- audio/scripts/lib/concurrency.test.mjs 1.6 KB runs code
- audio/scripts/lib/gemini-auth_test.py 4.3 KB runs code
- audio/scripts/lib/gemini-auth.mjs 1.6 KB runs code
- audio/scripts/lib/gemini-auth.py 1.9 KB runs code
- audio/scripts/lib/gemini-auth.test.mjs 3.0 KB runs code
- audio/scripts/lib/gemini-tts.mjs 4.6 KB runs code
- audio/scripts/lib/gemini-tts.test.mjs 8.8 KB runs code
- audio/scripts/lib/heygen.mjs 11 KB runs code
- audio/scripts/lib/heygen.test.mjs 10.0 KB runs code
- audio/scripts/lib/host-audio.mjs 1.4 KB runs code
- audio/scripts/lib/host-audio.test.mjs 3.9 KB runs code
- audio/scripts/lib/main-module.mjs 479 B runs code
- audio/scripts/lib/media-record.mjs 3.9 KB runs code
- audio/scripts/lib/media-record.test.mjs 6.9 KB runs code
- audio/scripts/lib/python.mjs 3.2 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago Changed · +4 lines · +52 tokens per session 0f08ff6b493a
- 12d ago Changed · +2 lines 1fa35c3baa6d
- 19d ago Changed · +2 lines 6baf869f1e33
- 23d ago Changed 17806a2257b8
- 25d ago Changed af377bb914d0
- 1mo ago First seen · 97 lines · 144 tokens per session scan A 1301ea7cb53a
media-use is a skill published in the GitHub repository heygen-com/hyperframes (65,314 stars, last pushed today), licensed Apache-2.0. It adds 196 tokens to every session and 1,969 once invoked, about $0.0008 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
gsap
A JavaScript animation framework with shared systems for timelines, easing, and timed value changes. It can animate CSS, SVG, Canvas, WebGL, framework state, and other JavaScript objects, with extensions for tasks such as scroll triggers, drag interactions, motion paths, and text animation.
architecture-diagram
Create a professional, dark-themed software/system architecture diagram as a single self-contained HTML file with inline SVG. Use when asked to visualize system components, layers, services, or how parts of a codebase fit together.
remotion
Use when creating, rendering, and managing programmatic videos using Remotion (React-based video framework). Covers compositions, frame-driven animation, transitions, effects, captions, audio, voiceover, FFmpeg post-production, and professional SaaS-grade motion design.
motiscope-analyze
Analyze a screen recording of an animation to characterize its motion — timing, easing, transforms, and sequencing — so it can be recreated as web code. Use when the user drops or points at a video of an animation (.mp4/.mov/.webm/.mkv/.m4v/.avi/.gif) and says things like "I want this animation on my site", "recreate…
motiscope-rebuild-site
Rebuild a whole landing page / multi-section website from a screen recording that scrolls or walks through it. Use when the user has a recording of an ENTIRE page (not a single animation) and wants the full page recreated — layout, sections, copy, design system, and scroll animations. Orchestrates analyze (measured…
motiscope-recreate
Recreate an analyzed animation as working web code — GSAP (JavaScript), CSS/Web Animations, Framer Motion (React), or Lottie/SVG. Use after motiscope-analyze, or when the user asks to "build/recreate this animation in ". Reads the motiscope animation spec and emits a runnable component.