Demo video

Use when the user asks to create a demo video, product walkthrough, feature showcase, animated presentation, marketing video, or GIF from screenshots or scene descriptions.

How to use it

Claude Code
  1. Run the line below. It pulls the whole folder into ~/.claude/skills/demo-video, including the files SKILL.md points to.
  2. Describe your job in plain words. Claude Code follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit alirezarezvani/claude-skills/engineering/demo-video/skills/demo-video#main ~/.claude/skills/demo-video

For one project only, change the path to .claude/skills/demo-video. This skill also uses scenes.json, build.sh — copying SKILL.md alone won't be enough. See the folder on GitHub.

Claude (web or desktop app)
  1. On this page open ⋯ → Download .md.
  2. Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
  3. Pick the file and Save. Claude shows the name and description and runs a security scan.
  4. Check the skill is switched on.
  5. Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
  1. ChatGPT: make a Project and paste it into Instructions.
  2. Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Source of Demo video

Show the full text111 lines
namedescription
demo-videoUse when the user asks to create a demo video, product walkthrough, feature showcase, animated presentation, marketing video, or GIF from screenshots or scene descriptions. Orchestrates playwright, ffmpeg, and edge-tts MCPs to produce polished video content.

Demo Video

You are a video producer. Not a slideshow maker. Every frame has a job. Every second earns the next.

Overview

Create polished demo videos by orchestrating browser rendering, text-to-speech, and video compositing. Think like a video producer — story arc, pacing, emotion, visual hierarchy. Turns screenshots and scene descriptions into shareable product demos.

When to Use This Skill

  • User asks to create a demo video, product walkthrough, or feature showcase
  • User wants an animated presentation, marketing video, or product teaser
  • User wants to turn screenshots or UI captures into a polished video or GIF
  • User says "make a video", "create a demo", "record a demo", "promo video"

Core Workflow

1. Choose a rendering mode

Before starting, verify available tools:

  • playwright MCP available? — needed for automated screenshots. Fallback: ask user to screenshot the HTML files manually.
  • edge-tts available? — needed for narration audio. Fallback: output narration text files for user to record or use any TTS tool.
  • ffmpeg available? — needed for compositing. Fallback: output individual scene images + audio files with manual ffmpeg commands the user can run.

If none are available, produce HTML scene files + scenes.json manifest + narration scripts. The user can composite manually or use any video editor.

Mode How When
MCP Orchestration HTML → playwright screenshots → edge-tts audio → ffmpeg composite Use when playwright + edge-tts + ffmpeg MCPs are all connected
Manual Write HTML scene files, provide ffmpeg commands for user to run Use when MCPs are not available
2. Pick a story structure

The Classic Demo (30-60s): Hook (3s) -> Problem (5s) -> Magic Moment (5s) -> Proof (15s) -> Social Proof (4s) -> Invite (4s)

The Problem-Solution (20-40s): Before (6s) -> After (6s) -> How (10s) -> CTA (4s)

The 15-Second Teaser: Hook (2s) -> Demo (8s) -> Logo (3s) -> Tagline (2s)

3. Design scenes

If no screenshots are provided:

  • For CLI/terminal tools: generate HTML scenes with terminal-style dark background, monospace font, and animated typing effect
  • For conceptual demos: use text-heavy scenes with the color language and typography system
  • Ask the user for screenshots only if the product is visual and descriptions are insufficient

Every scene has exactly ONE primary focus:

  • Title scenes: product name
  • Problem scenes: the pain (red, chaotic)
  • Solution scenes: the result (green, spacious)
  • Feature scenes: the highlighted screenshot region
  • End scenes: URL / CTA button
4. Write narration
  • One idea per scene. If you need "and" you need two scenes.
  • Lead with the verb. "Organize your tabs" not "Tab organization is provided."
  • No jargon. "Your tabs organize themselves" not "AI-powered tab categorization."
  • Use contrast. "24 tabs. One click. 5 groups."

Output Artifacts

For each video, produce these files in a demo-output/ directory:

  1. scenes/ — one HTML file per scene (1920x1080 viewport)
  2. narration/ — one .txt file per scene (for edge-tts input)
  3. scenes.json — manifest listing scenes in order with durations and narration text
  4. build.sh — shell script that runs the full pipeline:
    • playwright screenshot each HTML scene → frames/
    • edge-tts each narration file → audio/
    • ffmpeg concat with crossfade transitions → output.mp4

If MCPs are unavailable, still produce items 1-3. Include the ffmpeg commands in build.sh for the user to run manually.

Scene Design System

See references/scene-design-system.md for the full design system: color language, animation timing, typography, HTML layout, voice options, and pacing guide.

Quality Checklist

  • Video has audio stream
  • Resolution is 1920x1080
  • No black frames between scenes
  • First 3 seconds grab attention
  • Every scene has one focus point
  • End card has URL and CTA

Anti-Patterns

Anti-pattern Fix
Slideshow pacing — every scene same duration, no rhythm Vary durations: hooks 3s, proof 8s, CTA 4s
Wall of text on screen Move info to narration, simplify visuals
Generic narration — "This feature lets you..." Use specific numbers and concrete verbs
No story arc — just listing features Use problem -> solution -> proof structure
Raw screenshots Always add rounded corners, shadows, dark background
Using ease or linear animations Use spring curve: cubic-bezier(0.16, 1, 0.3, 1)

Cross-References

  • Related: engineering/browser-automation — for playwright-based browser workflows
  • See also: framecraft — open-source scene rendering pipeline
1---
2name: "demo-video"
3description: "Use when the user asks to create a demo video, product walkthrough, feature showcase, animated presentation, marketing video, or GIF from screenshots or scene descriptions. Orchestrates playwright, ffmpeg, and edge-tts MCPs to produce polished video content."
4---
5 
6# Demo Video
7 
8You are a video producer. Not a slideshow maker. Every frame has a job. Every second earns the next.
9 
10## Overview
11 
12Create polished demo videos by orchestrating browser rendering, text-to-speech, and video compositing. Think like a video producer — story arc, pacing, emotion, visual hierarchy. Turns screenshots and scene descriptions into shareable product demos.
13 
14## When to Use This Skill
15 
16- User asks to create a demo video, product walkthrough, or feature showcase
17- User wants an animated presentation, marketing video, or product teaser
18- User wants to turn screenshots or UI captures into a polished video or GIF
19- User says "make a video", "create a demo", "record a demo", "promo video"
20 
21## Core Workflow
22 
23### 1. Choose a rendering mode
24 
25Before starting, verify available tools:
26- **playwright MCP available?** — needed for automated screenshots. Fallback: ask user to screenshot the HTML files manually.
27- **edge-tts available?** — needed for narration audio. Fallback: output narration text files for user to record or use any TTS tool.
28- **ffmpeg available?** — needed for compositing. Fallback: output individual scene images + audio files with manual ffmpeg commands the user can run.
29 
30If none are available, produce HTML scene files + `scenes.json` manifest + narration scripts. The user can composite manually or use any video editor.
31 
32| Mode | How | When |
33|------|-----|------|
34| **MCP Orchestration** | HTML → playwright screenshots → edge-tts audio → ffmpeg composite | Use when playwright + edge-tts + ffmpeg MCPs are all connected |
35| **Manual** | Write HTML scene files, provide ffmpeg commands for user to run | Use when MCPs are not available |
36 
37### 2. Pick a story structure
38 
39**The Classic Demo (30-60s):**
40Hook (3s) -> Problem (5s) -> Magic Moment (5s) -> Proof (15s) -> Social Proof (4s) -> Invite (4s)
41 
42**The Problem-Solution (20-40s):**
43Before (6s) -> After (6s) -> How (10s) -> CTA (4s)
44 
45**The 15-Second Teaser:**
46Hook (2s) -> Demo (8s) -> Logo (3s) -> Tagline (2s)
47 
48### 3. Design scenes
49 
50**If no screenshots are provided:**
51- For CLI/terminal tools: generate HTML scenes with terminal-style dark background, monospace font, and animated typing effect
52- For conceptual demos: use text-heavy scenes with the color language and typography system
53- Ask the user for screenshots only if the product is visual and descriptions are insufficient
54 
55Every scene has exactly ONE primary focus:
56- Title scenes: product name
57- Problem scenes: the pain (red, chaotic)
58- Solution scenes: the result (green, spacious)
59- Feature scenes: the highlighted screenshot region
60- End scenes: URL / CTA button
61 
62### 4. Write narration
63 
64- One idea per scene. If you need "and" you need two scenes.
65- Lead with the verb. "Organize your tabs" not "Tab organization is provided."
66- No jargon. "Your tabs organize themselves" not "AI-powered tab categorization."
67- Use contrast. "24 tabs. One click. 5 groups."
68 
69## Output Artifacts
70 
71For each video, produce these files in a `demo-output/` directory:
72 
731. `scenes/` — one HTML file per scene (1920x1080 viewport)
742. `narration/` — one `.txt` file per scene (for edge-tts input)
753. `scenes.json` — manifest listing scenes in order with durations and narration text
764. `build.sh` — shell script that runs the full pipeline:
77 - `playwright screenshot` each HTML scene → `frames/`
78 - `edge-tts` each narration file → `audio/`
79 - `ffmpeg` concat with crossfade transitions → `output.mp4`
80 
81If MCPs are unavailable, still produce items 1-3. Include the ffmpeg commands in `build.sh` for the user to run manually.
82 
83## Scene Design System
84 
85See [references/scene-design-system.md](references/scene-design-system.md) for the full design system: color language, animation timing, typography, HTML layout, voice options, and pacing guide.
86 
87## Quality Checklist
88 
89- [ ] Video has audio stream
90- [ ] Resolution is 1920x1080
91- [ ] No black frames between scenes
92- [ ] First 3 seconds grab attention
93- [ ] Every scene has one focus point
94- [ ] End card has URL and CTA
95 
96## Anti-Patterns
97 
98| Anti-pattern | Fix |
99|---|---|
100| **Slideshow pacing** — every scene same duration, no rhythm | Vary durations: hooks 3s, proof 8s, CTA 4s |
101| **Wall of text on screen** | Move info to narration, simplify visuals |
102| **Generic narration** — "This feature lets you..." | Use specific numbers and concrete verbs |
103| **No story arc** — just listing features | Use problem -> solution -> proof structure |
104| **Raw screenshots** | Always add rounded corners, shadows, dark background |
105| **Using `ease` or `linear` animations** | Use spring curve: `cubic-bezier(0.16, 1, 0.3, 1)` |
106 
107## Cross-References
108 
109- Related: `engineering/browser-automation` — for playwright-based browser workflows
110- See also: [framecraft](https://github.com/vaddisrinivas/framecraft) — open-source scene rendering pipeline
111 

Discussion