11-second example rendered by this skill from examples/lowtide-weekend · 1280×720
Example settingswhat each example above was built from
examples/lowtide-weekendbrief.json
- Format
- wide
- Colors
- ground #0e0f13 · ink #f3efe6 · accent #ff4b1f · accent2 #3d55f5
examples/overprint-summitbrief.json
- Format
- tall
- Colors
- ground #f1ebdf · ink #17161a · accent #e8431c · accent2 #c8ef3c
What you get
- A 1920×1080 MP4 line-up film with its own beat-synced music, or 1080×1920 with one field changed
- An original soundtrack with sound effects on every cut, synthesised on your machine in six styles, with nothing to license
- Every cut on the beat grid: the headliners on the drop and the ticket button on the final hit
- 2 to 4 tiers sized like a poster bill from 6 to 24 names, each with a hard cut and its own kinetic move
- A halftone or slabs backdrop placed around the type in every shot, with all small type on solid plates
- A 4:5 poster PNG of the held last frame, exported without touching the project
- A brief checker and a render script that checks the music's loudness, peaks and timing
- Open-source licenses for every part it builds on
Good fit
- A festival announcing its acts by day or stage with a headliner tier and two or three tiers of support.
- A conference revealing keynotes, featured speakers, talks and workshops in a vertical story or reel.
- A promoter who needs the same line-up as a 16:9 film, a 9:16 film and a 4:5 poster still.
Not for
- Logos, photos or artist portraits on the poster
- Line-ups of more than 24 names or more than 4 tiers
- Full schedules with set times for every act
- Vocals or a licensed hit song, since the music is synthesised
About this skill
A line-up announcement film for a festival or conference that comes with its own original music, at 1920×1080 or 1080×1920. A soundtrack generated on your machine sets the cut: the event name slams in over the build, the headliners land on the drop, and each of 2 to 4 tiers gets a hard cut on its own downbeat while its names build in kinetic type, billed by size like a real poster. A code-drawn halftone and disc, or bold slabs, is placed around the type in every shot, so nothing runs behind a word. The full poster cuts in and the ticket button lands on the track's final hit, then the chord rings out over the held still, also exported as a 4:5 PNG.
Example request
Make a line-up announcement video for our festival: the name and dates slam in, then the three tiers of acts build one by one like a poster bill, ending on the full poster with a tickets button.
How it works
Your agent
- 1
Make the project
- 2
Get the line-up
Ask the person for the event, the dates, the place and the names, in billing order.
- 3
Pick the look
Four colours:
ground(background),ink(every name and label),accent(dates, marks, button, backdrop) andaccent2(backdrop). - 4
Write the brief
Write
brief.jsonin the project. - 5
Apply the brief
It checks the whole brief (the music block too) and, if anything is wrong, lists every problem at once with the fix: a field over its limit, an empty name (
a||b), a tier out of order or with too many names, too few or too many names in all, a label with no names under it, or a colour the text can't be read on. - 6
Check
It opens the project in headless Chrome, plays the timeline to each moment where type has settled (each tier's card and the poster, at the end of each shot), and fails (exit 1, every problem listed) when any visible text has capitals under 3% of the frame height, leaves the safe area (16:9 and 4:5: the 90% title-safe area; 9:16: clear of the top 14%, the bottom 35% and 6% at each side), or is faded in or out by opacity for longer than 6 frames (use a mask or a hard cut instead).
- 7
Look before you render
Run the
snapshotcommand thatapply-briefprinted. - 8
Render, with the music
It renders the picture with HyperFrames (
--quality delivery), puts the track under it withscripts/music/mux.mjs(AAC, trimmed to the film, at the brief'smusic.volume), checks the track against its beat map and stems withscripts/music/check.mjs(loudness, peaks, spectrum, every kick on time, and the SFX checks A1 to A11) and checks that the MP4 has a video and an audio stream of the same length. - 9
Export the poster
The last frame is designed to stand alone.
- 10
Hand it off
Give the person
renders/lineup-announcement.mp4,renders/poster.pngand one still of a tier fromsnapshots/.
- 1
You get
- renders/lineup-announcement.mp4
- renders/poster.png


What you need
- Node.js 22 or newer and FFmpeg on the PATH.
- HyperFrames runs through
npx, pinned to the version this template was tested with:npx --yes hyperframes@0.8.192. The first render downloads a headless Chrome. Ifrendersays Chrome is missing, runnpx --yes hyperframes@0.8.192 browser ensureonce. - Network access to
fonts.googleapis.com(Archivo) andcdn.jsdelivr.net(GSAP). See Troubleshooting if either is blocked. - Nothing else for the music:
scripts/music/is plain Node.js with no packages.
Last checked Nov 1, 2026: the package’s own build and render commands ran and passed.
If something goes wrong
Render hangs, then shows a static frame, or reports
sub_timeline_script_failure.GSAP didn't load. If your network blocks
cdn.jsdelivr.net, runnpm i gsap@3.14.2in the project, copynode_modules/gsap/dist/gsap.min.jstoassets/vendor/, and point the<script src>inindex.htmlatassets/vendor/gsap.min.js.apply-briefleaves it alone.The names are in the wrong font, or lines run wide.
fonts.googleapis.comwas unreachable during the render, so the bill was measured in a fallback font. HyperFrames caches the font after one successful fetch; render again.The bill looks small.
The headliners are sized to the longest tier that has to fit the width. Move a long name down a tier, split a crowded tier into two, or use
tall, where tiers may run to more lines.
What’s in the download
- SKILL.md23.6 KB
- examples/
- examples/lowtide-weekend/839 Ba 16:9 dark music festival, made up. Three tiers, 13 names, halftone backdrop, dot marks,
launch-pulsemusic. 11.8 s. · 1 file - examples/overprint-summit/942 Ba 9:16 light design conference, made up. Four tiers, 18 speakers and studios, slabs backdrop, slash marks,
tech-minimalmusic at 126 bpm. 12.9 s. The previews on Lookbk are rendered from these two. · 1 file - scripts/
- scripts/music/beatgen, the music generator, with its own README.
- scripts/music/examples/
- scripts/music/examples/events.example.json555 B
- scripts/music/samples/
- scripts/music/samples/manifest.json371 B
- scripts/music/beatgen.mjs11.8 KB
- scripts/music/check.mjs50.0 KB
- scripts/music/dsp.mjs20.0 KB
- scripts/music/engine.mjs51.7 KB
- scripts/music/mux.mjs2.36 KB
- scripts/music/presets.mjs36.8 KB
- scripts/music/README.md23.7 KB
- scripts/music/samples.mjs4.90 KB
- scripts/music/sfx.mjs17.1 KB
- scripts/music/theory.mjs3.34 KB
- scripts/music/voices.mjs16.9 KB
- scripts/apply-brief.mjs12.8 KBchecks a brief, makes the music, writes it into the project, and sets the cues and the film's length from the beat grid. No dependencies.
- scripts/export-poster.mjs2.58 KBwrites the held last frame as a 4:5 poster PNG without changing the project.
- scripts/gate.mjs15.3 KBthe type gate (cap height, safe area, no long text fades), run by
render.mjsbefore it renders. - scripts/music.mjs16.0 KBreads the
musicblock and builds the beat grid. - scripts/render.mjs9.00 KBruns the type gate, renders, puts the music under the picture and checks the result.
- template/the HyperFrames project.
- template/hyperframes.json318 B
- template/index.html10.0 KBholds the variables, the CSS and the two clips (backdrop and bill) with the cue times.
- template/lineup.js40.3 KBlays out the poster, draws the backdrop and builds the camera and type timeline.
- template/package.json293 B
- NOTICE.md1.08 KBthird-party software this skill uses.
- PROMPT.md2.97 KBa prompt to paste into Claude Code or Codex to make a film for your own event with this skill.
- TESTED.json5.17 KB
28 files · 381 KB · installs to ~/.claude/skills/lineup-announcement for Claude Code and ~/.agents/skills/lineup-announcement for other agents
Credits and licenses: NOTICE.md plus any LICENSE files inside the ZIP.
Similar Skills
View allDetails
- Output
- MP4 · 11.8 s · 1080p
- Needs
- Node.js 22+, FFmpeg on the PATH and Chrome (HyperFrames downloads its own headless Chrome on first render); network access to fonts.googleapis.com and cdn.jsdelivr.net.
- Series
- Motion Type · 5 skills
- Updated
- Nov 2, 2026
- Checked
- Nov 1, 2026: its own commands ran and passed. That is a working check, not a security audit.
Written for
See all 31 agents that read skill folders.
Install guides
For your agent
Generates with
Installed it? Tell others how it went. Reviews come from people who installed this skill.
Write a reviewFAQ
How many names and tiers can the bill take?
Two to four tiers and 6 to 24 names in all. Headliners take 1 to 4 names, tier 2 takes 2 to 8, and tiers 3 and 4 take 2 to 10 each. One name may be up to 26 characters. The checker lists anything outside these limits before it writes a thing.
How long is the film?
It follows the music: one bar per tier plus the intro, the poster and the final hit. With the default launch-pulse preset at 122 bpm, 2 tiers run 9.8 s and 3 tiers 11.8 s, and each extra tier adds one bar. Slower presets make it longer.
Where does the music come from?
It is synthesised on your machine by the package's own generator in plain Node.js, from six styles such as launch-pulse or cinematic-rise. There are no samples, so nothing needs a licence, and the same brief and seed always give the same track.
Which agents is Lineup Announcement written for?
Any agent that reads SKILL.md folders, including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode.
Do I own what I make with it?
Yes. Everything your agent makes with this skill is yours, including for client and commercial work.
What if it doesn’t work for me?
Email support@lookbk.dev within 7 days of buying and we’ll fix it or refund you.
Credits and licensesBuilt on heygen-com/hyperframes
What Lookbk adds on top of heygen-com/hyperframes (Apache-2.0): Lookbk wrote this package, including its music generator; it renders with HyperFrames (Apache-2.0) and GSAP (Standard License), sets type in Archivo (SIL Open Font License 1.1), and the events and names in its examples are invented.
Credits and licenses for the open-source software and fonts it uses are in NOTICE.md inside the download.