Agent skill · Testing & QA

render-chatgpt-chat

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 slides down + header cluster swaps in one beat → one gray loading dot → the assistant answer streams in word-by-word) crossfaded into a designed end card, with subliminal ChatGPT SFX and an optional ducked music bed. FREE assembly (Playwright + ffmpeg); the recipe supplies the per-brand thread + timeline + end-card config and gates the paid music call to its own capability. The ChatGPT sibling of render-

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

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

Facts
Files in the skill folder: 16
SKILL.md size: 8 KB
Bundled scripts: yes
Path: skills/ads/capabilities/render-chatgpt-chat/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-chatgpt-chat The free renderer for the **chatgpt-chat** video ad format — the "I just asked ChatGPT…" creative, where someone asks ChatGPT a question and the *streamed assistant answer is the punchline* (the brand surfacing as the natural response). Deterministic Playwright + ffmpeg assembly; no generative video of the UI, so the bubble text and streamed answer stay pixel-crisp. This is the **ChatGPT sibling of `render-imessage-chat`**. Reach for this one when ChatGPT is the more credible host for the answer; reach for iMessage when the punchline is a peer's reaction in a DM. The template recipe (DB) supplies the per-brand `thread` + `timeline` + `end_card` config and gates the paid music call (music bed → `create-music-elevenlabs`) to its own capability. ## What it renders One continuous take — never scene-by-scene (every reload flickers): 1. **User types** in the composer with the iOS keyboard up (`composer-type`). 2. **Send-tap is ONE beat** — the user bubble pops, the keyboard slides down, and the header right-cluster swaps (`personPlus/dottedCircle` → `edit/more`) all on the same `t`. Never sequence them across frames. 3. **One gray loading dot** holds ~500ms (never t

What's inside
Steps it walks through
  1. What it renders
  2. Run
  3. The chat body: bundled create-chatgpt-mockup
  4. Timeline events (consumed by record-chat.js)
  5. Contract
  6. Gaps / routing notes
  7. Self-QC (per project rule — always /watch the master)
Ships with 15 files
  • assets/sfx/key-tap.wav
  • assets/sfx/response-done.wav
  • assets/sfx/send-tap.wav
  • assets/sfx/stream-tick.wav
  • scripts/config.example.json
  • scripts/end-card.template.html
  • scripts/mockup/generate.js
  • scripts/mockup/templates/chat.css
  • scripts/mockup/templates/icons.js
  • scripts/package.json
  • scripts/record-chat.js
  • scripts/render-end-card.js
  • scripts/stitch.sh
  • skill.meta.json
  • tests/smoke-test.md
Commands it runs
cd scripts && npm install            # once — installs Playwright
npx playwright install chromium      # once
node record-chat.js     --config config.json --out-dir <work>   # → master-chat.mp4 + .sfx.json
node render-end-card.js --config config.json --out-dir <work>   # → scene-end-endcard.mp4
bash stitch.sh --chat <work>/master-chat.mp4 --end <work>/scene-end-endcard.mp4 \
More from goose-skills
All skills →
About this skill
What does the render-chatgpt-chat skill do?

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 slides down + header cluster swaps in one beat → one gray loading dot → the assistant answer streams in word-by-word) crossfaded into a designed end card, with subliminal ChatGPT SFX and an optional ducked music bed. FREE assembly (Playwright + ffmpeg); the recipe supplies the per-brand thread + timeline + end-card config and gates the paid music call to its own capability. The ChatGPT sibling of render-

How do I install it?

Run `npx skills add gooseworks-ai/goose-skills --skill render-chatgpt-chat --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