Agent skill · Content & Marketing

render-imessage-cascade

Assemble an iMessage notification-cascade video ad (≈14s, 9:16) from a phone-on-desk plate + 3–5 messages — authentic Apple Messages banners composited in PIL (SF Pro text, green Messages icon, warm translucent-greige fill, soft shadow) spring in one-by-one at the BOTTOM and push the stack UP, a right-aligned Show-less/X pill rides above, the X clears the stack, then a serif end card resolves. FREE assembly (PIL + ffmpeg); the recipe supplies the per-brand plate, notifications, and end-card config and gates the paid plate-clean/music calls to their own capabilities. Use for the imessage-notifi

gooseworks-aigithub.com/gooseworks-aiGitHub ↗
claude-codecodexcursorships scriptsMIT
Install
npx skills add gooseworks-ai/goose-skills --skill render-imessage-cascade --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 6
SKILL.md size: 4 KB
Bundled scripts: yes
Path: skills/ads/capabilities/render-imessage-cascade/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 1,091
Language: Python

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# render-imessage-cascade The free, deterministic renderer for the **imessage-notification-cascade** video ad format — the viral iOS trend where a phone sits on a desk and Apple Messages notifications STACK IN one after another. The signature mechanic is the **bottom-up push**: each new banner springs in at the bottom (nearest the phone) and shoves every existing one UP a row; the iOS grouped "⌄ Show less / ✕" pill rides above the stack; the ✕ clears the stack; then a serif end card resolves. This is a DETERMINISTIC composite — **no generative video of the UI**. Authentic iMessage banners are drawn in PIL and animated in FFmpeg over a Ken-Burns plate, so the notification text + wordmark stay pixel-crisp (a video model would smear type). The template recipe supplies the per-brand `plate`, `notifications`, and `end_card` config and gates the only paid steps — cleaning the plate (→ `create-image-fal`) and the music bed/pop (→ `create-music-elevenlabs`) — to their own capabilities. This capability itself makes **no paid calls**. ## Scripts (free) - `scripts/build_assets.py` — draws the assets from `config`: `nb-1..N.png` (authentic banners — green Messages icon, warm translucent-greige

What's inside
Steps it walks through
  1. Scripts (free)
  2. Geometry contract (load-bearing — buildassets.py and compose.py MUST share it)
  3. Craft rules (faithful to the source molecule)
  4. Requires
Ships with 5 files
  • scripts/build_assets.py
  • scripts/compose.py
  • scripts/config.example.json
  • skill.meta.json
  • tests/smoke-test.md
More from goose-skills
All skills →
About this skill
What does the render-imessage-cascade skill do?

Assemble an iMessage notification-cascade video ad (≈14s, 9:16) from a phone-on-desk plate + 3–5 messages — authentic Apple Messages banners composited in PIL (SF Pro text, green Messages icon, warm translucent-greige fill, soft shadow) spring in one-by-one at the BOTTOM and push the stack UP, a right-aligned Show-less/X pill rides above, the X clears the stack, then a serif end card resolves. FREE assembly (PIL + ffmpeg); the recipe supplies the per-brand plate, notifications, and end-card config and gates the paid plate-clean/music calls to their own capabilities. Use for the imessage-notifi

How do I install it?

Run `npx skills add gooseworks-ai/goose-skills --skill render-imessage-cascade --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From gooseworks-ai/goose-skills, a repository with 1,091 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going