Media Use
edenfunf/reelmimic
Agent Media OS, the single skill for every media need in a HyperFrames project.
Create video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML.
$ npx skills add scott-fryxell/brayness --skill hyperframes -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scott-fryxell/brayness hyperframes --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/scott-fryxell/brayness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/hyperframes .claude/skills/hyperframes && rm -rf skills-srcUse ~/.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/
Install the "hyperframes" agent skill from https://github.com/scott-fryxell/brayness/tree/main/skills/hyperframes into .claude/skills/hyperframes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hyperframes", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/scott-fryxell/brayness/tree/main/skills/hyperframesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add scott-fryxell/brayness --skill hyperframes -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scott-fryxell/brayness hyperframes --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scott-fryxell/brayness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/hyperframes .agents/skills/hyperframes && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "hyperframes" agent skill from https://github.com/scott-fryxell/brayness/tree/main/skills/hyperframes into .agents/skills/hyperframes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hyperframes", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add scott-fryxell/brayness --skill hyperframes -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scott-fryxell/brayness hyperframes --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scott-fryxell/brayness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/hyperframes .cursor/skills/hyperframes && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "hyperframes" agent skill from https://github.com/scott-fryxell/brayness/tree/main/skills/hyperframes into .cursor/skills/hyperframes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hyperframes", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/scott-fryxell/brayness.git --path skills/hyperframes--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add scott-fryxell/brayness --skill hyperframes -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scott-fryxell/brayness hyperframes --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scott-fryxell/brayness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/hyperframes .gemini/skills/hyperframes && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "hyperframes" agent skill from https://github.com/scott-fryxell/brayness/tree/main/skills/hyperframes into .gemini/skills/hyperframes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hyperframes", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install scott-fryxell/brayness hyperframesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add scott-fryxell/brayness --skill hyperframes -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/scott-fryxell/brayness.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/hyperframes .github/skills/hyperframes && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "hyperframes" agent skill from https://github.com/scott-fryxell/brayness/tree/main/skills/hyperframes into .github/skills/hyperframes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hyperframes", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add scott-fryxell/brayness --skill hyperframes -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install scott-fryxell/brayness hyperframes --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scott-fryxell/brayness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/hyperframes .opencode/skills/hyperframes && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "hyperframes" agent skill from https://github.com/scott-fryxell/brayness/tree/main/skills/hyperframes into .opencode/skills/hyperframes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hyperframes", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
hyperframesCreate video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML.
Hyperframes is an agent skill from scott-fryxell/brayness. Create video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML. Use for any HTML-based video work - authoring compositions, syncing captions to audio, generating TTS narration, running the dev loop (init, lint, inspect, preview, render), preprocessing assets (tts, transcribe, remove-background), or installing/contributing registry blocks.
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 81 other files, including scripts and reference files (for example `data-in-motion.md`, `house-style.md` and `palettes/bold-energetic.md`).
It sits in Media & Creative, covering Text to speech and voice, Motion graphics and Transcription. It works with HeyGen. The repository describes itself as: A harness for the anxious digital mind. A safe place for creatives to keep their creative soul while exploring digital skills. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 71f10e2. It shows what the files ask for, not the result of running them.
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.
Ships 1 file in scripts/, which the agent can run.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Hyperframes loads about 3.2k tokens when it runs, and up to ~72k if it reads all its reference files. Until then it costs about 110 tokens; SKILL.md has 1,372 words of instructions outside code blocks.
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.
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.
The full file from scott-fryxell/brayness at commit 71f10e2, republished under its MIT licence (© scott-fryxell). 1,372 words, ~3,166 tokens.
.claude/skills/hyperframes/SKILL.md (or your agent's skills folder). This skill also uses 78 other files; get the full folder from GitHub.HTML is the source of truth for video. A composition is an HTML file with
data-* attributes for timing, a GSAP timeline for animation, and CSS for
appearance. The framework handles clip visibility, media playback, and
timeline sync.
Attribute API, composition/template structure, variables, and media rules: references/authoring.md. Read it before writing your first composition HTML in a session.
For open-ended requests ("make me a product launch video") where the user hasn't committed to a direction, understand intent before picking colors: audience, platform, priority (motion quality vs accuracy vs speed), and whether they want variations. If variations, offer 2-3 that differ in pacing or structure - one safe, one ambitious - not color swaps.
For specific requests ("add a title card", "fix scene 3 timing"), skip discovery.
If design.md or DESIGN.md exists, read it first (both casings - they're
different files on Linux). It's the source of truth for brand colors,
fonts, and constraints - use its exact values. If it names fonts with no
.woff2 files in fonts/ and no built-in match, warn the user before
writing HTML.
If no design.md exists, offer a choice:
design.md defines the brand, not video composition rules. Those come from references/video-composition.md and house-style.md. Brand colors at video scale, not web-UI opacity.
Run on every composition except single-scene pieces and trivial edits - grounds intent against design.md/house-style.md into a consistent intermediate. Process and format: references/prompt-expansion.md.
Build what was asked. "A title card" is not "a title card + 3 supporting scenes + music + captions." Propose extras; don't add them.
For small edits, skip straight to the rules.
<HARD-GATE>
Before writing ANY composition HTML - verify you have a visual identity from Step 1. If you're reaching for `#333`, `#3b82f6`, or `Roboto`, you skipped it.
</HARD-GATE>
Position every element where it should be at its most visible moment - fully entered, correctly placed, not yet exiting. Write that as static HTML+CSS first. No GSAP yet.
Why: if you position elements at their animated start state (offscreen, opacity 0) and tween toward where you think they land, you're guessing the final layout, and overlaps stay invisible until render. Build the end state first and layout bugs are visible before motion exists.
.scene-content MUST fill the scene:
width: 100%; height: 100%; padding: Npx; with
display: flex; flex-direction: column; gap: Npx; box-sizing: border-box.
Padding pushes content inward - NEVER position: absolute; top: Npx on
a content container (it overflows when content grows). Reserve absolute
positioning for decoratives.gsap.from() - animate FROM offscreen TO the CSS
position. CSS is ground truth; the tween is the journey. (Sub-comps
loaded via data-composition-src: prefer gsap.fromTo() - see
references/motion-principles.md.)gsap.to(). All other scenes end fully
visible - the transition IS the exit (transition rule 3 below).If element A exits before element B enters in the same area, give both correct CSS positions for their own hero frames - the timeline keeps them from coexisting, and the layout step catches accidental overlap from timing errors. Intentional layering (glow behind text, card stacks) is fine; the step exists to catch unintentional overlap - two headlines colliding, a stat covering a label, content off-frame.
{ paused: true } - the player controls playbackwindow.__timelines["<composition-id>"] = tldata-duration, not GSAP timeline lengthDeterministic: no Math.random(), Date.now(), or time-based logic.
Seeded PRNG (e.g. mulberry32) for pseudo-random.
GSAP: only animate visual properties (opacity, x, y, scale,
rotation, color, backgroundColor, borderRadius, transforms). Never
animate visibility or display; never call video.play()/audio.play().
Animation conflicts: never animate the same property on the same element from multiple timelines simultaneously.
No repeat: -1: infinite repeats break the capture engine. Compute
repeat: Math.ceil(duration / cycleDuration) - 1.
Synchronous timeline construction: never build timelines inside
async/await, setTimeout, or Promises - the capture engine reads
window.__timelines synchronously after load. Fonts are embedded by the
compiler; no font-load waiting.
Never do:
window.__timelines registration<audio>data-layer (use data-track-index) or data-end (use data-duration)data-composition-idrepeat: -1 on any timeline or tweengsap.set() on clip elements from later scenes - they don't exist
in the DOM at page load. Use tl.set(selector, vars, timePosition) at
or after the clip's data-start.<br> in content text - it stacks with natural wrapping and causes
overlap; use max-width instead. Exception: short display titles
deliberately one word per line.Every multi-scene composition MUST follow all four. Violating any one is a broken composition.
gsap.from(). Nothing appears
fully formed. Five elements means five entrance tweens.gsap.to()
fading opacity, moving offscreen, or scaling to 0 before a transition -
the transition IS the exit, and the outgoing scene must be fully visible
when it fires. An exit tween before a transition hands the transition an
empty frame.Transition selection and implementation: references/transitions.md.
font-variant-numeric: tabular-nums on number columnsFast (run immediately, block on results):
npx hyperframes lint and npx hyperframes validate both passSlow (run in parallel while presenting the preview):
npx hyperframes inspect passes, or every reported overflow is
intentionally markedHow to run and fix each check: references/quality-checks.md.
Always read for any new composition:
| File | Covers |
|---|---|
| references/authoring.md | data attributes, template structure, variables, video/audio, fonts/assets |
| references/video-composition.md | video-medium rules - these override web instincts |
| references/typography.md | font pairing, OpenType, dark-background adjustments |
| references/motion-principles.md | motion design, image motion, load-bearing GSAP rules |
Also always read for multi-scene compositions:
| File | Covers |
|---|---|
| references/beat-direction.md | rhythm templates, choreography verbs, depth layers |
| references/transitions.md | transition selection; catalog routes to implementations; shader transitions live in the @hyperframes/shader-transitions npm package (read its source in node_modules) |
Read when the task calls for it:
| File | Read when |
|---|---|
| references/quality-checks.md | running inspect/contrast/design/animation-map checks |
| references/cli.md | any CLI command; build/render troubleshooting |
| references/captions.md | any text synced to audio timing |
| references/transcript-guide.md | caption-side transcript handling (CLI invocation lives in media.md) |
| references/dynamic-techniques.md | dynamic caption animation (karaoke, slam, scatter) |
| references/audio-reactive.md | visuals responding to music/voice |
| references/css-patterns.md | marker highlighting (highlight, circle, burst, scribble) |
| references/techniques.md | planning techniques per beat (11 patterns with code) |
| references/narration.md | voiceover/TTS pacing and script structure |
| references/media.md | TTS (Kokoro), transcription (Whisper), background removal |
| references/prompt-expansion.md | Step 2 of the approach |
| references/design-picker.md | creating a design.md visually |
| references/from-website.md | turning a website into a video |
| references/registry.md | installing/contributing registry blocks (hyperframes add) |
| visual-styles.md | user names a style; generating design.md |
| house-style.md | aesthetic defaults when no design.md |
| patterns.md | PiP, title cards, slide shows |
| data-in-motion.md | data, stats, infographics |
Runtime adapters (read when the composition uses that runtime instead of GSAP): waapi, lottie, three, animejs, css-animations, typegpu.
© scott-fryxell, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 78 other files (scripts, references) in skills/hyperframes of scott-fryxell/brayness.
Open the folder on GitHubat commit 71f10e2
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Hyperframes this skillscott-fryxell/brayness | 124 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Media Useedenfunf/reelmimic | 1.7k | 2 repos | ~2k | Automated safety check: Pass | MIT | |
| Hyperframes Mediacosmicstack-labs/mercury-agent-skills | 476 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Hyperframes Mediaboraoztunc/skills | 395 | 2 repos | ~3.7k | Automated safety check: Pass | Apache-2.0 | |
| Hyperframes CLIaiskillstore/marketplace | 430 | 1 repos | ~2.7k | Automated safety check: Pass | None | |
| HyperFrames Media Useheygen-com/hyperframes | 59k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 |
edenfunf/reelmimic
Agent Media OS, the single skill for every media need in a HyperFrames project.
cosmicstack-labs/mercury-agent-skills
Asset preprocessing for HyperFrames compositions — local text-to-speech narration (Kokoro-82M, no API key), audio/video transcription (Whisper), and background removal for transparent overlays…
boraoztunc/skills
Asset preprocessing for HyperFrames compositions — text-to-speech narration (Kokoro), audio/video transcription (Whisper), and background removal for transparent overlays (u2net).
aiskillstore/marketplace
Use the HyperFrames CLI development loop: init, add, catalog, capture, lint, check, snapshot, compare, grade-compare, preview, play, present, beats, keyframes, single or batch render, publish…
heygen-com/hyperframes
Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.
boraoztunc/skills
Create video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML.
scott-fryxell/brayness
Find and install brand SVG logos via SVGL (https://svgl.app/) and Wikimedia Commons fallbacks into any project's static asset folder.
scott-fryxell/brayness
Write Vitest specs for Vue 3 JavaScript (Vite Plus, happy-dom, @vue/test-utils) and analyze V8 coverage + Fallow health to prioritize test-first refactors.
scott-fryxell/brayness
Derive a project's visual rules from its existing tokens, palette, type scale, logo, and icons (Intake), then generate raw SVG vector graphics from those rules as a small composable set (module…
scott-fryxell/brayness
A skill your agent uses when designing or implementing motion for web interfaces, including CSS transitions and keyframes, linear() easing design, transform strategy (translate/rotate vs…
scott-fryxell/brayness
Inspect live Vue 3 component state via agent-browser eval - no Devtools extension, no console.log.
scott-fryxell/brayness
Refactor a Vue page or component from Vuetify to semantic HTML5 + Schema.org microdata + Stylus element selectors.
Works with
Categories
Create video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML. Hyperframes is an agent skill from scott-fryxell/brayness. Create video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML.
Hyperframes fits situations like: any HTML-based video work - authoring compositions; syncing captions to audio; generating TTS narration; running the dev loop (init.
Run `npx skills add scott-fryxell/brayness --skill hyperframes -a claude-code`. Or copy the skill folder (skills/hyperframes in scott-fryxell/brayness) into .claude/skills/hyperframes in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scott-fryxell/brayness --skill hyperframes -a codex`. Or copy the skill folder (skills/hyperframes in scott-fryxell/brayness) into .agents/skills/hyperframes in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add scott-fryxell/brayness --skill 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/hyperframes, .gemini/skills/hyperframes, .github/skills/hyperframes and .opencode/skills/hyperframes in your project.
Going by SKILL.md and its folder, Hyperframes needs the command-line tools its instructions call (npx). Our summary lists: Node.js.
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.
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.
Hyperframes is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k 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 69k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Hyperframes: Media Use (edenfunf/reelmimic, 1.7k stars), Hyperframes Media (cosmicstack-labs/mercury-agent-skills, 476 stars), Hyperframes Media (boraoztunc/skills, 395 stars) and Hyperframes CLI (aiskillstore/marketplace, 430 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
scott-fryxell (a GitHub user) maintains it in scott-fryxell/brayness, which has 124 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on September 28, 2026.
Source: scott-fryxell/brayness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.