Claude Code skill that turns any SaaS/repo into a professional promo video — 30s, 60s, or 90s in landscape + portrait
Overview
One command. Landscape + Portrait. Voiceover included. This installs two Claude Code skills — one teaches Claude how to write Remotion code, the other teaches Claude how to produce a complete promo video. Sign up for free at elevenlabs.io → go to → → copy your key. Navigate to the repo you want to create a video for, then launch Claude Code: Or open the project folder in with the Claude Code extension, or use the . Once Claude Code is running, just type a prompt. Claude will scan your repo, ask you creative questions, and build everything. That's it. Claude handles the rest — scanning your codebase, building scenes, generating voiceover, and rendering both landscape and portrait MP4s. Different prompts give different results. Here are directions you can give Claude:
README
How It Works
Your Repo Claude Code Output
┌──────────┐ ┌───────────────────────────────┐ ┌─────────────────┐
│ code │ │ 1. Scan codebase │ │ landscape.mp4 │
│ logo │───>│ 2. Creative direction │───>│ 1920 x 1080 │
│ readme │ │ 3. Build Remotion scenes │ ├─────────────────┤
│ colors │ │ 4. Generate AI voiceover │ │ portrait.mp4 │
└──────────┘ │ 5. Render + combine audio │ │ 1080 x 1920 │
└───────────────────────────────┘ └─────────────────┘
Quick Start
1. Install the skills
Open any terminal and run:
npx skills add remotion-dev/skills # Remotion fundamentals (peer dependency)
npx skills add AKCodez/promo-video-skill # Promo video workflow
This installs two Claude Code skills — one teaches Claude how to write Remotion code, the other teaches Claude how to produce a complete promo video.
2. Get your ElevenLabs API key
Sign up for free at elevenlabs.io → go to Profile → API Keys → copy your key.
Then set it in your environment:
# macOS / Linux
export ELEVENLABS_API_KEY="sk_your_key_here"
# Windows PowerShell
$env:ELEVENLABS_API_KEY = "sk_your_key_here"
3. Open Claude Code in your project
Navigate to the repo you want to create a video for, then launch Claude Code:
cd ~/your-saas-project
claude # opens Claude Code CLI
Or open the project folder in VS Code with the Claude Code extension, or use the Claude Code desktop app.
4. Prompt Claude
Once Claude Code is running, just type a prompt. Claude will scan your repo, ask you creative questions, and build everything.
Simple:
Create a promo video for this project
With direction:
Create a 60-second dark mode promo video targeting developers
Detailed:
Create a 90-second promo video for this Chrome extension. Use the Rage Hook
narrative — open with someone frustrated, then reveal the product. Dark theme,
dramatic male voice, metallic swoosh transitions.
That’s it. Claude handles the rest — scanning your codebase, building scenes, generating voiceover, and rendering both landscape and portrait MP4s.
Example Prompts
Different prompts give different results. Here are directions you can give Claude:
| What You Say | What You Get |
|---|---|
| “Create a promo video for this project” | Claude picks everything — scans your repo and makes smart defaults |
| “30-second social ad, light mode, fast transitions” | Quick punchy ad for Instagram/TikTok |
| “90-second detailed walkthrough with all features” | Longer format covering every feature |
| “Use the Rage Hook — someone frustrated then discovers the solution” | Emotional opening with anger → silence → whisper reveal |
| “Demo First narrative — show the product working immediately” | Opens cold with the most impressive feature |
| “Dark mode, cinematic, Adam voice, metallic swoosh transitions” | Specific visual + audio direction |
| “Make the CTA ‘Visit fastsolve.app’ with the ghost logo” | Specific branding for the closing |
| “Browse ElevenLabs for a sinister dramatic male voice” | Claude searches voices and generates test samples for you |
| “Speed up the transitions and make the text bigger in scene 3” | Iterate on an existing video after first render |
The Pipeline
Voiceover Emotional Presets
The AI voice changes emotion per scene — not one flat tone for the whole video.
| Preset | Settings | Use For |
|---|---|---|
| Rage | Low stability, high style | Hook frustration — “Are you serious right now?!” |
| Whisper | Low stability, intimate | Secret reveal — “What if you never had to guess again?” |
| Confident | Mid stability, balanced | Feature demos — “Smart detection scans instantly” |
| Warm | High stability, smooth | Social proof — “Join 50,000 users” |
| Dramatic | Mid stability, high style | CTA — “Try it now. Free.” |
Narrative Templates
Four proven story structures, each with scene breakdowns and voiceover tone guides:
| Template | Arc | Best For |
|---|---|---|
| The Rage Hook | Frustration → Silence → Whisper → Reveal → CTA | Products solving a painful problem |
| The Problem Stack | Pain → Pain → Pain → “What if…” → Solution → CTA | Multiple pain points to stack |
| The Demo First | Magic moment → “How?” → Features → CTA | Products where the UX sells itself |
| The Transformation | Before → After → How → Proof → CTA | Workflow improvements |
Available Voices
Built-in (Free Tier)
| Voice | Style | Best For |
|---|---|---|
| Matilda | Warm, confident female | Default — versatile |
| Rachel | Calm, authoritative female | Corporate, B2B |
| Daniel | Polished, broadcast male | Advertising, launches |
| Josh | Friendly, conversational male | Consumer apps |
| Adam | Deep, dramatic male | Cinematic, intense hooks |
Don’t see what you want? Say “Browse ElevenLabs voices for a sinister dramatic male voice” and Claude will search the library, generate test samples, and let you audition them.
What’s Inside
skills/promo-video/
│
├── SKILL.md Main skill — 5-phase workflow
├── voiceover.md ElevenLabs + Whisper timing guide
├── narrative-templates.md 4 story structures with scene breakdowns
├── multi-format.md Responsive 16:9 + 9:16 architecture
├── brand-discovery.md Auto-detect logos, colors, fonts
├── metallic-swoosh.md Custom metallic shine transition
├── promo-patterns.md Visual inspiration catalog
│
├── scripts/
│ ├── preflight.ts Environment validation
│ ├── discover-brand.ts Repo scanner for brand assets
│ ├── discover-voices.ts ElevenLabs voice browser + sampler
│ ├── timing-calculator.ts TransitionSeries duration math
│ └── generate-voiceover.ts Full voiceover generation pipeline
│
└── music/
├── inspired-ambient.mp3 Ambient, atmospheric
├── motivational-day.mp3 Commercial, uplifting
└── upbeat-corporate.mp3 Inspiring, energetic
Utility Scripts
All TypeScript, all cross-platform. Run with npx tsx.
Prerequisites
| Requirement | Required | Install |
|---|---|---|
| Node.js 18+ | Yes | nodejs.org |
| Claude Code | Yes | claude.ai/code |
remotion-dev/skills |
Yes | npx skills add remotion-dev/skills |
| ElevenLabs API Key | Yes | Free at elevenlabs.io |
| ffmpeg | Auto | Bundled via bunx remotion ffmpeg |
| Whisper | Optional | pip install openai-whisper |
About the Remotion Skill
This skill depends on remotion-dev/skills — the official Remotion skill with 30+ rule files:
| Core | Animations, timing, interpolation, sequencing, compositions |
| Transitions | Fade, slide, wipe, custom presentations |
| Media | Images, videos, audio, GIFs, fonts |
| Advanced | Three.js 3D, charts, text animations, captions |
| Audio | Sound effects, visualization, voiceover |
| Tools | FFmpeg, DOM measurement, Tailwind, light leaks |
The Remotion skill teaches Claude how to write Remotion code. This skill teaches Claude how to produce a complete promo video.
About ffmpeg
You do not need to install ffmpeg. This skill uses bunx remotion ffmpeg — bundled, cross-platform, zero PATH configuration. Works on Windows, macOS, and Linux out of the box.
Tips
- Be specific about your audience. “College students struggling with online quizzes” > “students”
- Pick 3-5 features max. More dilutes the message.
- Use the Rage Hook for consumer products — highest engagement.
- Keep scenes to 2-4 seconds. Shorter = more engaging.
- Preview before voiceover. Run
npx remotion studioafter building scenes.
Troubleshooting
| Problem | Fix |
|---|---|
| Voiceover overlaps | Claude auto-fixes this — or ask to regenerate |
| Elements too small | “Scale up the elements” or “make text bigger” |
| Video feels slow | “Shorter scenes” or “quicker transitions” |
| Portrait looks cramped | Claude adapts via LayoutContext — request adjustments if needed |
| ElevenLabs 401 | Check API key in environment |
| Premium voice error | Use one of the 5 built-in voices (free tier) |
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add akcodez/promo-video-skill