Best for
- Use when the user mentions product demo, demo video, walkthrough video, feature showcase, screen recording, GIF demo, product tour, onboarding video, visual tutorial, feature walkthrough, landing page video, hero video,…
MoizIbnYousaf/marketing-cli/skills/marketing-demo/SKILL.md
Record product demos and walkthroughs for marketing assets. Two modes: quick screenshot-stitch demos via ply + ffmpeg, or polished Remotion compositions. Use when the user mentions product demo, demo video, walkthrough video, feature showcase, screen recording, GIF demo, product tour, onboarding video, visual tutorial, feature walkthrough, landing page video, hero video, product video, app preview video, or wants to show their product in action. Even if they just say 'show what it does', 'make a
Decision brief
Record product demos for marketing. Two production paths: quick (ply + ffmpeg) for rough demos, polished (Remotion) for branded marketing videos.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/marketing-demo"Inspect the Agent Skill "marketing-demo" from https://github.com/MoizIbnYousaf/marketing-cli/blob/f12fbcbe4929584697b309b9096c9427b0cfce8e/skills/marketing-demo/SKILL.md at commit f12fbcbe4929584697b309b9096c9427b0cfce8e. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Ask the user which type, or infer from context.
Before recording, plan each shot:
Fast, rough demos from screenshots stitched into video.
All outputs go to marketing/demos/. Name by type:
Review the “Step 5: Completion Summary” section in the pinned source before continuing.
Permission review
The documentation includes network, browsing, or remote request actions.
URL: https://example.comThe documentation includes network, browsing, or remote request actions.
ply navigate "https://example.com"The documentation asks the agent to run terminal commands or scripts.
npx remotion init marketing/demos/remotion-demoThe documentation asks the agent to run terminal commands or scripts.
npx remotion render marketing/demos/remotion-demo/src/index.tsx \Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 79/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 27 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Record product demos for marketing. Two production paths: quick (ply + ffmpeg) for rough demos, polished (Remotion) for branded marketing videos.
brand/creative-kit.md — Colors, fonts, logo paths for branded overlaysbrand/voice-profile.md — Tone guidance for text overlaysbrand/stack.md — Available tools (ply, ffmpeg, remotion)brand/creative-kit.md for colors, fonts, logo paths. If missing, ask for brand colors and logo.brand/voice-profile.md for tone guidance on text overlays. If missing, use clear/neutral tone.brand/stack.md to confirm available tools. If missing, detect tools directly.command -v ply && echo "ply: ready" || echo "ply: missing"
command -v ffmpeg && echo "ffmpeg: ready" || echo "ffmpeg: missing"
command -v npx && echo "remotion: available" || echo "remotion: unavailable"
ply or ffmpeg missing, warn and suggest install.| Demo Type | Duration per Shot | Notes |
|---|---|---|
| Quick overview | 0.5-1s | Fast cuts, build excitement |
| Feature demo | 2-3s | Time to read + comprehend |
| Walkthrough | 4-5s | Instructional pacing |
| Social clip | 1-2s | Attention-grabbing, fast |
Demos fail when they show the product mechanically instead of telling a story. The viewer needs a reason to keep watching. These principles come from what actually gets engagement on landing pages and social:
| Type | Duration | Resolution | Format | Use Case |
|---|---|---|---|---|
| Hero demo | 15-30s | 1280x800 | MP4 | Landing page above-fold |
| Feature highlight | 5-15s | 1280x800 | GIF/MP4 | Feature section, docs |
| Full walkthrough | 60-180s | 1280x800 | MP4 | YouTube, sales deck |
| Social clip | 5-15s | 1080x1080 | MP4 | Instagram, Twitter/X |
| Email GIF | 3-8s | 600x400 | GIF | Email campaigns |
| How-to | 30-90s | 1280x800 | MP4 | Help docs, onboarding |
Ask the user which type, or infer from context.
Before recording, plan each shot:
## Shot List
1. [Action: Navigate to landing page]
- URL: https://example.com
- Wait: 1s for load
- Highlight: Hero section
2. [Action: Click "Get Started" button]
- Wait: transition animation
- Highlight: Signup form
3. [Action: Fill demo data]
- Type: demo@example.com
- Highlight: Success state
Each shot = one ply screenshot or interaction sequence.
Fast, rough demos from screenshots stitched into video.
Capture screenshots:
# Navigate and screenshot each shot
ply navigate "https://example.com"
ply screenshot --output marketing/demos/shot-01.png
ply click "Get Started"
ply screenshot --output marketing/demos/shot-02.png
Stitch with ffmpeg:
# MP4 from screenshots (2 seconds per frame)
ffmpeg -framerate 0.5 -i marketing/demos/shot-%02d.png \
-c:v libx264 -pix_fmt yuv420p \
-vf "scale=1280:800:force_original_aspect_ratio=decrease,pad=1280:800:(ow-iw)/2:(oh-ih)/2" \
marketing/demos/demo.mp4
# Preview GIF (lower quality, smaller file)
ffmpeg -i marketing/demos/demo.mp4 \
-vf "fps=10,scale=640:-1:flags=lanczos" \
-c:v gif marketing/demos/demo-preview.gif
# Email GIF (600px wide, optimized)
ffmpeg -i marketing/demos/demo.mp4 \
-vf "fps=8,scale=600:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" \
marketing/demos/demo-email.gif
# Square crop for social (1080x1080)
ffmpeg -i marketing/demos/demo.mp4 \
-vf "crop=min(iw\,ih):min(iw\,ih),scale=1080:1080" \
marketing/demos/demo-square.mp4
For marketing-grade output with transitions, text overlays, branded intros.
Generate Remotion composition:
# Initialize if needed
npx remotion init marketing/demos/remotion-demo
# Render final video
npx remotion render marketing/demos/remotion-demo/src/index.tsx \
--output marketing/demos/demo-polished.mp4
Composition structure:
src/
├── index.tsx # Root composition
├── Intro.tsx # Branded intro (logo, tagline)
├── DemoScene.tsx # Screenshot with text overlay
├── Transition.tsx # Fade/slide between scenes
└── Outro.tsx # CTA + URL
Key Remotion patterns (see references/remotion-examples.md for complete component code):
<Img> for screenshots, <AbsoluteFill> for layoutuseCurrentFrame() + interpolate() for animationsbrand/creative-kit.md<Sequence>Intro scene (2-3s): Logo centered, tagline fades in. Brand colors as background gradient. Keep it short — the product is the star.
Demo scene (per shot): Screenshot fills 80% of frame. Text overlay at top or bottom with 1-line feature callout. Use interpolate() for a subtle zoom-in (1.0 → 1.05 over the scene duration) to add life.
Transition between scenes: Fade + slight slide (200ms). Never use fancy wipes — they distract from the product.
Outro scene (3-4s): CTA text ("Try it free at [url]"), logo, and optional social proof line. This is the only slide that sells — keep all other slides focused on showing.
ply failures (page doesn't load, element not found, timeout): Skip to shot N+1 and document the failure in the shot list. After all shots complete, review skipped shots and retry once. If still failing, use manual screenshots as fallback.
ffmpeg failures (codec not found, format error): Check ffmpeg -codecs for available codecs. If libx264 is missing, try -c:v h264 or install via brew install ffmpeg. For GIF palette issues, simplify the filter chain — drop split/palettegen/paletteuse and use basic -vf "fps=10,scale=640:-1".
Remotion failures (render crashes, composition errors): Check node version (node -v, needs 18+). If npx remotion render fails, try npx remotion render --gl=angle or --gl=swangle for GPU issues. For composition errors, verify all <Img> src paths are correct and images exist.
All outputs go to marketing/demos/. Name by type:
| Output | Filename | Notes |
|---|---|---|
| MP4 (desktop) | demo-hero.mp4 | H.264, 1280x800 |
| MP4 (social) | demo-social-1080.mp4 | Square, 1080x1080 |
| GIF (preview) | demo-preview.gif | 640px wide, <5MB |
| GIF (email) | demo-email.gif | 600px wide, <2MB |
| MP4 (polished) | demo-polished.mp4 | Remotion output |
## Demo Assets Created
| Asset | Size | Format | Suggested Use |
|-------|------|--------|--------------|
| demo-hero.mp4 | 1.2MB | MP4 1280x800 | Landing page hero |
| demo-preview.gif | 3.4MB | GIF 640px | README, docs |
| demo-email.gif | 1.1MB | GIF 600px | Email campaigns |
| demo-social-1080.mp4 | 800KB | MP4 1080x1080 | Instagram, X |
All assets saved to `marketing/demos/`.
| Platform | Width | Height | Scale |
|---|---|---|---|
| Desktop | 1280 | 800 | 1x |
| Desktop HD | 1920 | 1080 | 1x |
| Mobile | 390 | 844 | 2x |
| 1080 | 1080 | 1x | |
| Twitter/X | 1200 | 675 | 1x |
| 600 | 400 | 1x |
| Mistake | Why It Fails |
|---|---|
| Recording login/signup flows | Nobody cares about your auth screen. Start after login. |
| Showing loading spinners | Edit them out or skip to the loaded state. Spinners kill momentum. |
| No text overlays on silent autoplay | Social videos autoplay muted. Without text, viewers have no idea what they're watching. |
| Demo longer than 60s without chapter breaks | Attention drops after 15s. If it's long, add clear section titles. |
| Recording at inconsistent viewport sizes | Shots that jump between sizes look amateur. Lock viewport before recording. |
| Showing every feature | Pick 3-5 features max. Demos that show everything sell nothing. |
| Mouse cursor wandering aimlessly | Plan each click. Cursor should move with purpose — straight lines to targets. |
/creative — Ad visuals, product photos (static assets, not demos)/content-atomizer — Turn demo into platform-specific posts/page-cro — Audit the page the demo showcasesAlternatives
event4u-app/agent-config
Grounded design brief from the adopted corpus — style, WCAG-checked color tokens, typography, layout pattern, anti-patterns. Use on ui-design-brief or any which-style/palette/font/chart decision.
MoizIbnYousaf/marketing-cli
Use when the user wants to generate an image or video via Higgsfield AI. Covers 30+ models: Soul V2, Seedance 2.0, Kling 3.0, Veo 3.1, GPT Image 2, Nano Banana 2. Also covers Marketing Studio — branded ad video/image with avatars and products. Use whenever: "generate an image", "make a video", "animate this photo", "image-to-video", "img2vid", "edit this image with AI", "produce a clip", "create an ad", "make a UGC video", "marketing video", "brand video", "TV spot", "import product from URL", "
MoizIbnYousaf/marketing-cli
Generate visual asset briefs, ad copy variants, AI image prompts, video scripts, and storyboards. Full creative production system with 5 specialized modes: product photos, product video, social graphics, talking heads, and ad creative. Make sure to use this skill whenever the user mentions any visual or creative marketing need — ad creative, image prompts, video scripts, thumbnails, banners, social graphics, product photography, storyboards, or marketing visuals of any kind. Even if they just sa
coreyhaines31/marketingskills
When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking. Also use when the user mentions "sitemap," "site map," "visual sitemap," "site structure," "page hierarchy," "information architecture," "IA," "navigation design," "URL structure," "breadcrumbs," "internal linking strategy," "website planning," "what pages do I need," "how should I organize my site," or "site navigation." Use this whenever someone is planning what page