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.
Render a punchy ~12s vertical (9:16) music-only direct-response OFFER ad as a 4-beat kinetic-typography film — HEADLINE slam → real PRODUCT drop → CLAIM/proof → CTA pill — from one config of copy…
$ npx skills add gooseworks-ai/goose-skills --skill render-offer-ad -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gooseworks-ai/goose-skills render-offer-ad --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/gooseworks-ai/goose-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ads/capabilities/render-offer-ad .claude/skills/render-offer-ad && 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 "render-offer-ad" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/ads/capabilities/render-offer-ad into .claude/skills/render-offer-ad/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "render-offer-ad", 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/gooseworks-ai/goose-skills/tree/main/skills/ads/capabilities/render-offer-adType 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 gooseworks-ai/goose-skills --skill render-offer-ad -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gooseworks-ai/goose-skills render-offer-ad --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/ads/capabilities/render-offer-ad .agents/skills/render-offer-ad && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "render-offer-ad" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/ads/capabilities/render-offer-ad into .agents/skills/render-offer-ad/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "render-offer-ad", 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 gooseworks-ai/goose-skills --skill render-offer-ad -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gooseworks-ai/goose-skills render-offer-ad --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/ads/capabilities/render-offer-ad .cursor/skills/render-offer-ad && 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 "render-offer-ad" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/ads/capabilities/render-offer-ad into .cursor/skills/render-offer-ad/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "render-offer-ad", 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/gooseworks-ai/goose-skills.git --path skills/ads/capabilities/render-offer-ad--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 gooseworks-ai/goose-skills --skill render-offer-ad -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gooseworks-ai/goose-skills render-offer-ad --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/ads/capabilities/render-offer-ad .gemini/skills/render-offer-ad && 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 "render-offer-ad" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/ads/capabilities/render-offer-ad into .gemini/skills/render-offer-ad/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "render-offer-ad", 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 gooseworks-ai/goose-skills render-offer-adInstalls 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 gooseworks-ai/goose-skills --skill render-offer-ad -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/ads/capabilities/render-offer-ad .github/skills/render-offer-ad && 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 "render-offer-ad" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/ads/capabilities/render-offer-ad into .github/skills/render-offer-ad/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "render-offer-ad", 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 gooseworks-ai/goose-skills --skill render-offer-ad -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install gooseworks-ai/goose-skills render-offer-ad --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/ads/capabilities/render-offer-ad .opencode/skills/render-offer-ad && 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 "render-offer-ad" agent skill from https://github.com/gooseworks-ai/goose-skills/tree/main/skills/ads/capabilities/render-offer-ad into .opencode/skills/render-offer-ad/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "render-offer-ad", 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.
render-offer-adRender a punchy ~12s vertical (9:16) music-only direct-response OFFER ad as a 4-beat kinetic-typography film — HEADLINE slam → real PRODUCT drop → CLAIM/proof → CTA pill — from one config of copy…
Render Offer Ad is an agent skill from gooseworks-ai/goose-skills. Render a punchy ~12s vertical (9:16) music-only direct-response OFFER ad as a 4-beat kinetic-typography film — HEADLINE slam → real PRODUCT drop → CLAIM/proof → CTA pill — from one config of copy slots, a real product photo, a brand palette, fonts, bpm, and beat split. DETERMINISTIC + FREE (a bundled Remotion project; springs + interpolate, no AI-gen for visuals). Backgrounds are engine gradient divs off the palette, props are inline SVG, the ONLY composited bitmap is the REAL product photo (objectFit:contain…
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 26 other files, including scripts (for example `project/package.json`, `project/remotion.config.ts` and `project/src/fonts.ts`).
It sits in Media & Creative, covering Video production, Motion graphics and Logo and visual identity. It works with Remotion and FFmpeg. The repository describes itself as: Library of Growth & GTM skills + data APIs for Claude Code, Codex, Cursor to run ads, social, content, lead gen, seo and data scraping. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c650c6d. 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/ (TypeScript, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
npmpython3npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm and 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.
Render Offer Ad loads about 2.5k tokens when it runs. Until then it costs about 245 tokens; SKILL.md has 1,078 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 gooseworks-ai/goose-skills at commit c650c6d, republished under its MIT licence (© gooseworks-ai). 1,078 words, ~2,484 tokens.
.claude/skills/render-offer-ad/SKILL.md (or your agent's skills folder). This skill also uses 21 other files; get the full folder from GitHub.The free, deterministic renderer for the motion-graphics-offer-ad format — the punchy ~12s vertical, music-only, direct-response offer ad built as a 4-beat kinetic -typography film: a HEADLINE slams in word-by-word → the real PRODUCT drops in → the CLAIM/proof lands → a CTA pill resolves. No character, no VO, no captions — the on-screen typeset text IS the message.
This is a bundled Remotion project (project/) driven by a thin Python driver. The
shipping master is 100% engine-rendered (springs + interpolate): backgrounds are
gradient divs off the brand_palette, props are inline SVG, and the ONLY composited
bitmap is the REAL product photo (objectFit:contain, never stretched). ALL
headline/claim/CTA/URL/wordmark text is typeset in the engine — never AI-rendered;
that is the format's credibility guard. Render cost is ~$0; the only paid step is an
optional music bed, gated upstream in the recipe to create-music-elevenlabs.
The whole ad is data: copy strings, product photo, palette, fonts, bpm, and beat
split all arrive as config.json and are bound to Remotion input props — nothing is
hardcoded in the scenes (the source run's Spoiled Child strings are generalised into
project/src/props.ts). Deterministic → iterate the cut for free.
The creative calls are the user's, asked by the format recipe before any paid step; this renderer typesets whatever the config holds.
copy.headline_words,
copy.subline, copy.motif_chip. The demo used the category-killer angle.music.prompt for create-music-elevenlabs; the rendered music.bed file is what this
renderer mixes. The demo used punchy lo-fi pop at 115 BPM.The 4-beat structure, palette roles, fonts and gates are the format; palette, product photo, claims and CTA are brand facts.
headline_words slam in WORD-BY-WORD
(slamIn, ~7-frame stagger, scale-overshoot + motion-blur smear, settling on the
downbeat); subline + an animated bobbing down-arrow drop in.dropIn) and
idle-bobs (bob), objectFit:contain (never stretch); the motif_chip pops in
(popIn); optional GENERIC competitor shape + strike-through (wipe) — never a
named competitor.mechanism_prop slides in from a frame edge
(flyIn overshoot, ~20% from the bottom) to add motion AND show the mechanism; the
3-line claim drops in staggered; product held bottom-right.wordmark slams (slamIn); the CTA pill
pops in as the motif-chip handoff resolving (popIn) with an arrow nudge; the
cta_url fades up.Scene boundaries are derived from beat_split_sec (default [3.0, 3.5, 3.0, 2.5]s →
cuts at frames 0/90/195/285/360 @30fps) so the hard cuts land on the beat downbeats. The
motion kit — slamIn / dropIn / bob / flyIn / popIn / wipe — lives in
project/src/lib/anim.ts and is kept intact from the source run.
spoon / sip / drink / 0 mess; powder → scoop / mix / no clumps;
capsule → 1 a day; gummy → chew. render.py rejects foreign-format vocabulary
(e.g. a liquid product must not borrow powder grammar like scoop / no clumps). Set
product_format in the config to arm this gate.mechanism_prop (spoon for drinkable liquids, or accent for a neutral edge-entry
accent bar) that supplies motion AND shows the mechanism. A text-only claim beat is too
static — render.py rejects an unsupported/missing prop.# 1) install the bundled Remotion project's deps (one-time; render.py auto-runs
# this if node_modules is absent).
cd project && npm install && cd ..
# 2) bind config → Remotion input props, render the 9:16 master, derive the 1:1 crop.
python3 scripts/render.py \
--config path/to/config.json \
--work-dir <work> \
--out <work>/master
# → <work>/master-9x16.mp4 (1080x1920) and <work>/master-1x1.mp4 (1080x1080 crop)render.py copies the config's product_hero_image (+ optional music.bed) into
project/public/, maps every config key onto the OfferAdProps shape props.ts reads,
writes the input props to <work>/props.json, runs npx remotion render offer-ad --props <work>/props.json, then center-crops the 9:16 master to 1:1 with ffmpeg (no 2nd
composition). NO hardcoded /Users or clients paths — every asset arrives via the
config and a runtime --work-dir.
scripts/render.py — the driver: gating checks → stage assets into project/public/
→ bind config to Remotion input props → npx remotion render (9:16) → ffmpeg 1:1
center-crop.scripts/config.example.json — the shape of the config the recipe binds
(brand-neutral worked defaults from the source run; replace every /abs/... placeholder).project/ — the bundled Remotion project. src/props.ts (the input-props schema +
beat-layout math + safe defaults), src/lib/anim.ts (the slamIn/dropIn/bob/flyIn/ popIn/wipe motion kit — kept intact), src/scenes/Scene01–04.tsx (the four beats,
all copy/palette/fonts from props), src/Main.tsx (the beat spine + audio bed),
src/Root.tsx (the offer-ad composition; duration derived from beat_split_sec).| config key | Remotion prop (props.ts) | scene that reads it |
|---|---|---|
product_hero_image | product_image (staged to public/) | Scene02 (drop), Scene03 (anchor) |
brand_palette{primary_ground,light_ground,ink,highlight_chip} (dict OR ≥4-hex list) | palette | all 4 (grounds/type/chip) |
fonts{display,body} | fonts (resolved in fonts.ts) | all 4 |
copy.headline_words[] / copy.subline | copy.headline_words / copy.subline | Scene01 |
copy.motif_chip | copy.motif_chip | Scene02 |
copy.claim_lines[]{big,small} | copy.claim_lines | Scene03 |
copy.cta_label / copy.cta_url / copy.wordmark | same | Scene04 |
mechanism_prop (spoon|accent) | mechanism_prop | Scene03 (inline-SVG prop) |
bpm | bpm | beat grid |
beat_split_sec [4] | beat_split_sec | derives cut frames + total duration |
music.bed / music.fade_out_frames | music.src (staged) / music.fade_out_frames | Main audio bed |
show_competitor_strike | show_competitor_strike | Scene02 |
aspects | (driver) | 9:16 always; 1:1 = ffmpeg crop |
objectFit:contain, never stretched.music.fade_out_frames inside the
render. No VO, no captions.show_competitor_strike), not a named brand.@remotion/cli ≥4.0, installed via the bundled
project/package.json — render.py runs npm install in project/ on first use).
This capability legitimately needs a node runtime — the renderer IS a Remotion project.watch (QC the final master — confirm the headline slams WORD-BY-WORD on the beat, the
real product photo drops in + idle-bobs and is NOT stretched, the mechanism prop enters
from a frame edge on the claim beat, the claim lines drop in staggered, the CTA label +
URL are readable at 1080×1920, the hard cuts land on the downbeats, and the music ramps
out; re-confirm both gating checks visually). The recipe gates the only optional paid
step (music bed → create-music-elevenlabs) — this capability itself makes NO paid calls.© gooseworks-ai, 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 21 other files (scripts) in skills/ads/capabilities/render-offer-ad of gooseworks-ai/goose-skills.
Open the folder on GitHubat commit c650c6d
Render Offer Ad 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 |
|---|---|---|---|---|---|---|
| Render Offer Ad this skillgooseworks-ai/goose-skills | 1.2k | — | ~2.5k | Automated safety check: Pass | MIT | |
| HyperFrames Video Entry Pointheygen-com/hyperframes | 60k | 3 repos | ~5.2k | Automated safety check: Pass | Apache-2.0 | |
| Black White Text OpenerPluviobyte/video-production-skills | 671 | — | ~1k | Automated safety check: Pass | None | |
| Super Video MakerBomx/super-video-maker-skill | 310 | — | ~11k | Automated safety check: Notes | None | |
| Background Musicnotivn/AIEV | 127 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Vid Sizzle ReelVarnan-Tech/opendirectory | 674 | — | ~3.9k | Automated safety check: Pass | MIT |
heygen-com/hyperframes
Entry point for making, editing and rendering videos from HTML compositions with HyperFrames, routing each request to the right workflow.
Pluviobyte/video-production-skills
Create reusable black-background white-text opening animations for new videos.
Bomx/super-video-maker-skill
End-to-end AI video production skill for agentic frameworks.
notivn/AIEV
Pick background music from the assets/music/ library and configure auto-ducking (music dips automatically under speech) via meta.json audio.music for the Remotion assembly layer.
Varnan-Tech/opendirectory
Generates a high-energy sizzle reel or hype video (MP4) from brand assets and key messages.
anbeime/skill
Adds Remotion-style video transitions and Framer Motion page animations to PPT-based videos and HTML slide viewers, planning the animation sequence first.
gooseworks-ai/goose-skills
Scrape and search Reddit posts using Apify. An agent skill from gooseworks-ai/goose-skills.
gooseworks-ai/goose-skills
Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent.
gooseworks-ai/goose-skills
Replace an existing video's opening with a supplied clip or free kinetic text hook while retaining and verifying every original body frame, audio, captions and ending.
gooseworks-ai/goose-skills
Scrape blog posts via RSS feeds (free, no API key) with Apify fallback for JS-heavy sites.
gooseworks-ai/goose-skills
Find leads by scraping engagers from a competitor's top LinkedIn posts.
gooseworks-ai/goose-skills
Assemble a ChatGPT chat-reveal video ad from a thread + timeline JSON — one continuous Playwright recording of a ChatGPT mobile chat (user types with the iOS keyboard up → taps send → keyboard…
Categories
Render a punchy ~12s vertical (9:16) music-only direct-response OFFER ad as a 4-beat kinetic-typography film — HEADLINE slam → real PRODUCT drop → CLAIM/proof → CTA pill — from one config of copy…. Render Offer Ad is an agent skill from gooseworks-ai/goose-skills. Render a punchy ~12s vertical (9:16) music-only direct-response OFFER ad as a 4-beat kinetic-typography film — HEADLINE slam → real PRODUCT drop → CLAIM/proof → CTA pill — from one config of copy slots, a real product photo, a brand palette, fonts, bpm, and beat split.
Render Offer Ad fits situations like: the motion-graphics-offer-ad format; tasks that involve Video production; tasks that involve Motion graphics.
Run `npx skills add gooseworks-ai/goose-skills --skill render-offer-ad -a claude-code`. Or copy the skill folder (skills/ads/capabilities/render-offer-ad in gooseworks-ai/goose-skills) into .claude/skills/render-offer-ad in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gooseworks-ai/goose-skills --skill render-offer-ad -a codex`. Or copy the skill folder (skills/ads/capabilities/render-offer-ad in gooseworks-ai/goose-skills) into .agents/skills/render-offer-ad 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 gooseworks-ai/goose-skills --skill render-offer-ad -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/render-offer-ad, .gemini/skills/render-offer-ad, .github/skills/render-offer-ad and .opencode/skills/render-offer-ad in your project.
Going by SKILL.md and its folder, Render Offer Ad needs TypeScript for the scripts in its folder and the command-line tools its instructions call (npm, python3 and npx). Our summary lists: Python 3; Node.js.
SKILL.md contains no URLs. Its commands use npm and 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.
Render Offer Ad is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 9.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Render Offer Ad: HyperFrames Video Entry Point (heygen-com/hyperframes, 60k stars), Black White Text Opener (Pluviobyte/video-production-skills, 671 stars), Super Video Maker (Bomx/super-video-maker-skill, 310 stars) and Background Music (notivn/AIEV, 127 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
gooseworks-ai (a GitHub organization) maintains it in gooseworks-ai/goose-skills, which has 1,240 GitHub stars. The repository holds 273 skills in this directory. The repository was last updated on October 8, 2026.
Source: gooseworks-ai/goose-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.