New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Create a demo video, product walkthrough, feature showcase

by alirezarezvani · MIT license · ★ 26,349 on GitHub · updated Aug 30

Demo video cover

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…

---
name: "demo-video"
description: "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."
---

# 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

Overview

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

What you get

  • scenes/ — one HTML file per scene (1920x1080 viewport)
  • narration/ — one .txt file per scene (for edge-tts input)
  • scenes.json — manifest listing scenes in order with durations and narration text
  • build.sh — shell script that runs the full pipeline:
  • playwright screenshot each HTML scene → frames/
  • edge-tts each narration file → audio/
Manual install (npx, ZIP)
Claude Codenpx skills add alirezarezvani/claude-skills --skill demo-video -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/alirezarezvani/claude-skills/tar.gz/19392f7a0826 \ | tar -xz -C ~/.claude/skills --strip-components=4 claude-skills-19392f7a0826/engineering/demo-video/skills/demo-video
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/2edc750bb2eea1d1b4d6/demo-video.zip" -OutFile "$env:TEMP\demo-video.zip"; Expand-Archive "$env:TEMP\demo-video.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md5.1 KB
  • references/1 file · 1.6 KB
Read the files here
alirezarezvani/19392f72 files
SKILL.md
Show the full text111 lines

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 
View all files on GitHub →

Details

Updated
Aug 30, 2026
License
MIT
Stars on the repo
★ 26,349
Checked
Source
alirezarezvani/claude-skills ↗
Creator
alirezarezvani · 363 listings
View creator

Similar skills

See all →
SkillReverse-lookup glossary that turns a vague descriptionAnimation vocabularyemilkowalski/skills · by emilkowalskiReverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term ("the bouncy thing when a popover opens" → Pop in; "the iOS rubber-band scroll" → Rubber-banding). Use when the user asks "what's it called when…", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.★ 40.8k GitHub starsSkillMake hand-painted watercolour-and-ink cartoon videosPainted animationedenfunf/reelmimic · by edenfunfMake hand-painted watercolour-and-ink cartoon videos (MP4) with code — p5.js + p5.brush rendered frame by frame in headless Chrome, encoded with ffmpeg — starring Clawd or any character. Use when the user asks to make an animation, animated short, cartoon, music video, lyric video, animated GIF/loop or "a video of Clawd…", or mentions the PDoomVideo / ClaudeAnimationBase approach. Covers storyboarding, the engine API, the render-and-look review loop, music/lyric sync and splitting long videos across subagents.★ 3.6k GitHub starsSkillSearch tool for modern web development best practicesModern web guidanceGoogleChrome/modern-web-guidance · by GoogleChromeSearch tool for modern web development best practices. MANDATORY: Execute FIRST for all HTML/CSS and clientside JS tasks. Do NOT skip — web APIs evolve rapidly and training weights contain obsolete patterns. Trigger immediately for: - UI/Layout: Modals, dialogs, popovers, Glassmorphism/backdrop-filters, anchor positioning, container queries, `:has()`, `:user-valid`. - Scroll/Motion: View Transitions, Scroll-driven animations, scroll parallax/reveals. - Performance: CWV (LCP, INP), content-visibility, Fetch Priority, image optimization. - System/APIs: Local filesystem access, WebUSB, WebSockets sync, WebAssembly widgets. - Frameworks: Adapting layout/styles in React, Vue, Angular. - General Frontend: Forms, autofill, advanced inputs, custom scrollbars, modern component states, etc. DO NOT trigger for: - Backend: Database SQL, ORMs, Express API routes. - Pipelines: CI/CD deployment, Docker, Actions. - Generic: Local scripts (Python/Go tools), ESLint, Git.★ 2.4k GitHub starsSkillTraduz pedidos de animação em português para o efeito deBiblioteca de Motion apenasdouglas · Versão Documentalapenasdouglas/ai-motion-library · by apenasdouglasTraduz pedidos de animação em português ("faz o número quicar", "entra um depois do outro", "dá um tranco no zoom") para o efeito de motion graphics certo, com o termo técnico, a duração e a aceleração. Use sempre que o usuário pedir animação, motion, transição ou efeito em vídeo, HTML, CSS, GSAP, Remotion, HyperFrames ou After Effects, principalmente quando o pedido for vago ("faz uma animação bonita") ou o vídeo for de canal dark (faceless) de curiosidades, história ou documentário. Also triggers on English requests for motion graphics, easing and animation effects in documentary or faceless YouTube videos.★ 68 GitHub starsSkillHeadless, reproducible browser automation with PlaywrightPlaywright BrowserAndyShiu/claude-skill-playwright-browser · by AndyShiuHeadless, reproducible browser automation with Playwright for any project — screenshots of web pages or local dev servers (desktop/tablet/mobile, full page or one element, single page or every page/menu of an app in one batch), frontend audits (console errors, failed requests, broken images/links, responsive overflow, axe accessibility, LCP/CLS performance), before/after visual comparison, scripted E2E flows (log in, click, fill, page through, assert), and logged-in pages via saved sessions. Use this whenever the user wants to screenshot or visually check a site, find frontend bugs, see how a page looks on mobile, compare the UI before and after a CSS/code change, reproduce a bug from an issue or ticket and capture evidence images for it, verify a UI flow works, or run/write a browser test — even if they never say "Playwright" or "browser". If Claude in Chrome could also do the job, briefly ask which to use (with a recommendation) instead of silently picking.★ 49 GitHub starsSkillRebuild a web page, sectionReplicaalbertirgi/replica · by albertirgiRebuild a web page, section, component or interaction from a reference (a live URL, a local HTML file, a screenshot or design export, or a screen recording or GIF) inside the user's own codebase. Then measure the rebuild against the reference (element boxes, computed styles, pixels, motion timing and easing) and iterate until a numeric Replica Score passes. Use when the user wants to clone, replicate, recreate, copy, port or match a site, landing page, hero, navbar, pricing table, card, modal, footer, hover effect, scroll reveal, page-load animation or any other UI, or to "make it look/feel/move like" one. Also use when they say "pixel-perfect", "1:1", "exactly like this" or "same as <url>", or hand over a screenshot, Figma export or video and ask to build it, including when they want their own copy, brand or extra features on top.★ 43 GitHub stars

More from alirezarezvani

SkillResume a paused experiment/ar:ar-resume — Resume Experimentalirezarezvani/claude-skills · by alirezarezvaniResume a paused experiment. Checkout the experiment branch, read results history, continue iterating. Use when the user runs /ar:ar-resume or asks to pick up a previously started autoresearch experiment.★ 26.3k GitHub starsSkillShow experiment dashboard with results, active loops/ar:ar-status — Experiment Dashboardalirezarezvani/claude-skills · by alirezarezvaniShow experiment dashboard with results, active loops, and progress. Use when the user runs /ar:ar-status or asks how an autoresearch experiment is going.★ 26.3k GitHub starsSkillStart an autonomous experiment loop with user-selected/ar:loop — Autonomous Experiment Loopalirezarezvani/claude-skills · by alirezarezvaniStart an autonomous experiment loop with user-selected interval (10min, 1h, daily, weekly, monthly). Uses CronCreate for scheduling. Use when the user runs /ar:loop or asks to run an autoresearch experiment continuously on a schedule.★ 26.3k GitHub starsSkillRun a single experiment iteration/ar:run — Single Experiment Iterationalirezarezvani/claude-skills · by alirezarezvaniRun a single experiment iteration. Edit the target file, evaluate, keep or discard. Use when the user runs /ar:run or asks for one manual autoresearch iteration.★ 26.3k GitHub starsSkillSet up a new autoresearch experiment interactively/ar:setup — Create New Experimentalirezarezvani/claude-skills · by alirezarezvaniSet up a new autoresearch experiment interactively. Collects domain, target file, eval command, metric, direction, and evaluator. Use when the user runs /ar:setup or asks to start optimizing a file with the autoresearch loop.★ 26.3k GitHub starsSkill/cs:boardroom <brief/cs:boardroom — Multi-Role Boardroom Deliberationalirezarezvani/claude-skills · by alirezarezvani/cs:boardroom <brief> — 6-phase multi-role deliberation across the C-suite with Phase 2 isolation, critic pre-screen, and synthesis. Outputs a board memo. Use when a decision spans multiple executive domains — e.g. a pricing change touching finance, positioning, and product, or a raise-vs-cut runway call.★ 26.3k GitHub stars