Agent skill

Hyperframes

by scott-fryxell in scott-fryxell/brayness

Create video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML.

MITAuto-check passedMedia & Creative

Install Hyperframes

skills CLI
$ npx skills add scott-fryxell/brayness --skill hyperframes -a claude-code

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

GitHub CLI
$ gh skill install scott-fryxell/brayness 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/scott-fryxell/brayness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/hyperframes .claude/skills/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
hyperframes
GitHub stars
124
Token cost
~3.2k tokens
SKILL.md length
1,372 words
Files
79 (incl. scripts, references)
Skills in repo
27
Repo updated
First seen
Licence
MIT

At a glance

Create video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML.

  • Works in 3 steps: Design system → Prompt expansion → Plan
  • Any HTML-based video work - authoring compositions
  • SKILL.md covers Approach, Layout Before Animation, Timeline Contract and Rules (Non-Negotiable), plus 5 more sections
  • Calls npx

What it does

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.

When your agent uses it

  • Any HTML-based video work - authoring compositions
  • Syncing captions to audio
  • Generating TTS narration
  • Running the dev loop (init

Example prompts

  • “/hyperframes”

Requirements

  • Node.js

Workflow steps

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

  1. Design system
  2. Prompt expansion
  3. Plan

What it can do on your machine

Read from SKILL.md and the folder at commit 71f10e2. 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/, 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

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.

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

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 scott-fryxell/brayness at commit 71f10e2, republished under its MIT licence (© scott-fryxell). 1,372 words, ~3,166 tokens.

Download SKILL.mdSave it as .claude/skills/hyperframes/SKILL.md (or your agent's skills folder). This skill also uses 78 other files; get the full folder from GitHub.
name
hyperframes
description
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.

HyperFrames

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.

Approach

Discovery (exploratory requests only)

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.

Step 1: Design system

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:

  1. User named a style or mood? Read visual-styles.md (8 named presets), pick the closest.
  2. Browse visually? Run the design picker - references/design-picker.md.
  3. Go fast? Ask mood, light/dark, brand colors/fonts; pick a palette from house-style.md.

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.

Step 2: Prompt expansion

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.

Step 3: Plan
  1. What - narrative arc, key moments, emotional beats.
  2. Structure - how many compositions, sub-comps vs inline, which tracks carry what.
  3. Rhythm - declare the scene rhythm before implementing (fast-fast-SLOW-fast-SHADER-hold). Templates: references/beat-direction.md.
  4. Timing - which clips drive duration, where transitions land.
  5. Layout - build the end state first (next section).
  6. Animate - then add motion.

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>

Layout Before Animation

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.

  1. Identify the hero frame per scene - the moment most elements are simultaneously visible. Build that layout.
  2. Write static CSS for it. .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.
  3. Entrances with 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.)
  4. Final scene only: exits with 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.

Timeline Contract

  • All timelines start { paused: true } - the player controls playback
  • Register every timeline: window.__timelines["<composition-id>"] = tl
  • Framework auto-nests sub-timelines - do NOT manually add them
  • Duration comes from data-duration, not GSAP timeline length
  • Never create empty tweens to set duration

Rules (Non-Negotiable)

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

  1. Forget window.__timelines registration
  2. Use video for audio - always muted video + separate <audio>
  3. Nest video inside a timed div - use a non-timed wrapper
  4. Use data-layer (use data-track-index) or data-end (use data-duration)
  5. Animate video element dimensions - animate a wrapper div
  6. Call play/pause/seek on media - framework owns playback
  7. Create a top-level container without data-composition-id
  8. Use repeat: -1 on any timeline or tween
  9. Build timelines asynchronously
  10. Use gsap.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.
  11. Use <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.
Show full SKILL.md (467 more words)Show less

Scene Transitions (Non-Negotiable)

Every multi-scene composition MUST follow all four. Violating any one is a broken composition.

  1. ALWAYS use transitions between scenes. No jump cuts.
  2. ALWAYS animate every element IN via gsap.from(). Nothing appears fully formed. Five elements means five entrance tweens.
  3. NEVER use exit animations except on the final scene. No 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.
  4. Final scene only may fade elements out.

Transition selection and implementation: references/transitions.md.

Animation Guardrails

  • Offset first animation 0.1-0.3s (not t=0)
  • Vary eases - at least 3 different eases per scene, no repeated entrance pattern within a scene
  • Avoid full-screen linear gradients on dark backgrounds (H.264 banding) - radial or solid + localized glow
  • 60px+ headlines, 20px+ body, 16px+ data labels
  • font-variant-numeric: tabular-nums on number columns

Editing Existing Compositions

  • Read actual files, don't guess. The composition IS the spec - extract exact hex codes, fonts, and easing patterns from source, not memory.
  • Only change what was requested; preserve timing of unrelated clips.

Output Checklist

Fast (run immediately, block on results):

  • npx hyperframes lint and npx hyperframes validate both pass
  • Design adherence verified if design.md exists

Slow (run in parallel while presenting the preview):

  • npx hyperframes inspect passes, or every reported overflow is intentionally marked
  • Contrast warnings addressed
  • Animation choreography verified (animation-map script)

How to run and fix each check: references/quality-checks.md.

Reference Index

Always read for any new composition:

FileCovers
references/authoring.mddata attributes, template structure, variables, video/audio, fonts/assets
references/video-composition.mdvideo-medium rules - these override web instincts
references/typography.mdfont pairing, OpenType, dark-background adjustments
references/motion-principles.mdmotion design, image motion, load-bearing GSAP rules

Also always read for multi-scene compositions:

FileCovers
references/beat-direction.mdrhythm templates, choreography verbs, depth layers
references/transitions.mdtransition 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:

FileRead when
references/quality-checks.mdrunning inspect/contrast/design/animation-map checks
references/cli.mdany CLI command; build/render troubleshooting
references/captions.mdany text synced to audio timing
references/transcript-guide.mdcaption-side transcript handling (CLI invocation lives in media.md)
references/dynamic-techniques.mddynamic caption animation (karaoke, slam, scatter)
references/audio-reactive.mdvisuals responding to music/voice
references/css-patterns.mdmarker highlighting (highlight, circle, burst, scribble)
references/techniques.mdplanning techniques per beat (11 patterns with code)
references/narration.mdvoiceover/TTS pacing and script structure
references/media.mdTTS (Kokoro), transcription (Whisper), background removal
references/prompt-expansion.mdStep 2 of the approach
references/design-picker.mdcreating a design.md visually
references/from-website.mdturning a website into a video
references/registry.mdinstalling/contributing registry blocks (hyperframes add)
visual-styles.mduser names a style; generating design.md
house-style.mdaesthetic defaults when no design.md
patterns.mdPiP, title cards, slide shows
data-in-motion.mddata, 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

Files

SKILL.md and 78 other files (scripts, references) in skills/hyperframes of scott-fryxell/brayness.

  • SKILL.md
  • data-in-motion.md
  • house-style.md
  • palettes/bold-energetic.md
  • palettes/clean-corporate.md
  • palettes/dark-premium.md
  • palettes/jewel-rich.md
  • palettes/monochrome.md
  • palettes/nature-earth.md
  • palettes/neon-electric.md
  • palettes/pastel-soft.md
  • palettes/warm-editorial.md
  • patterns.md
  • references/adapters/animejs.md
  • references/adapters/css-animations.md
  • references/adapters/lottie.md
  • references/adapters/three.md
  • references/adapters/typegpu.md
  • … and 61 more

Open the folder on GitHubat commit 71f10e2

Compare with similar skills

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.

Hyperframes compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Hyperframes this skillscott-fryxell/brayness124—~3.2kAutomated safety check: PassMIT
Media Useedenfunf/reelmimic1.7k2 repos~2kAutomated safety check: PassMIT
Hyperframes Mediacosmicstack-labs/mercury-agent-skills476—~1.7kAutomated safety check: PassMIT
Hyperframes Mediaboraoztunc/skills3952 repos~3.7kAutomated safety check: PassApache-2.0
Hyperframes CLIaiskillstore/marketplace4301 repos~2.7kAutomated safety check: PassNone
HyperFrames Media Useheygen-com/hyperframes59k—~2.4kAutomated safety check: PassApache-2.0

Similar skills

  • Media Use

    edenfunf/reelmimic

    Agent Media OS, the single skill for every media need in a HyperFrames project.

    1.7k GitHub starsUsed in 2 repos~2k tokens
    Media & CreativeAuto-check passed
  • Hyperframes Media

    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…

    476 GitHub stars~1.7k tokensUpdated 1 mo ago
    Media & CreativeAuto-check passed
  • Hyperframes Media

    boraoztunc/skills

    Asset preprocessing for HyperFrames compositions — text-to-speech narration (Kokoro), audio/video transcription (Whisper), and background removal for transparent overlays (u2net).

    395 GitHub starsUsed in 2 repos~3.7k tokens
    Media & CreativeAuto-check passed
  • Hyperframes CLI

    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…

    430 GitHub starsUsed in 1 repo~2.7k tokens
    Media & CreativeAuto-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.

    59k GitHub stars~2.4k tokensUpdated today
    Media & CreativeAuto-check passed
  • Hyperframes

    boraoztunc/skills

    Create video compositions, animations, title cards, overlays, captions, voiceovers, audio-reactive visuals, and scene transitions in HyperFrames HTML.

    395 GitHub starsUsed in 9 repos~7.6k tokens
    Media & CreativeAuto-check passed

More from scott-fryxell/brayness

All 27 skills in this repo
  • Logo Finder

    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.

    124 GitHub stars~1.1k tokensUpdated 10 days ago
    Auto-check passed
  • Test Coverage

    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.

    124 GitHub stars~1.6k tokensUpdated 10 days ago
    Auto-check passed
  • Flexible Visual System

    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…

    124 GitHub stars~1.9k tokensUpdated 10 days ago
    Auto-check passed
  • Motion Systems

    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…

    124 GitHub stars~1.7k tokensUpdated 10 days ago
    Auto-check passed
  • Vue Inspect

    scott-fryxell/brayness

    Inspect live Vue 3 component state via agent-browser eval - no Devtools extension, no console.log.

    124 GitHub stars~779 tokensUpdated 10 days ago
    Auto-check passed
  • Vuetify To Semantic

    scott-fryxell/brayness

    Refactor a Vue page or component from Vuetify to semantic HTML5 + Schema.org microdata + Stylus element selectors.

    124 GitHub stars~1.2k tokensUpdated 10 days ago
    Auto-check passed

Works with

Questions about Hyperframes

What does Hyperframes do?

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.

When should I use Hyperframes?

Hyperframes fits situations like: any HTML-based video work - authoring compositions; syncing captions to audio; generating TTS narration; running the dev loop (init.

How do I install Hyperframes in Claude Code?

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.

How do I install Hyperframes in Codex?

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.

Can I use 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 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.

What does Hyperframes need to run?

Going by SKILL.md and its folder, Hyperframes needs the command-line tools its instructions call (npx). Our summary lists: Node.js.

Does 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 Hyperframes 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 Hyperframes use?

Hyperframes is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Hyperframes use?

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.

What are the alternatives to Hyperframes?

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.

Who maintains Hyperframes?

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.