Anssol
Back to Skills
Media & Content

Video Toolkit

AI-native video production with Remotion, ElevenLabs, FFmpeg, and Playwright.

videoproductionmedia

claude-code-video-toolkit

<p align="center"> <img src="assets/banner/toolkit-banner.gif" alt="claude-code-video-toolkit — NARRATE ▸ SCORE ▸ GENERATE ▸ COMPOSE ▸ RENDER" width="960" /> </p>

GitHub release License: MIT GitHub stars

Tell Claude Code what video you want — it writes the script, generates the voiceover, music, and visuals, and renders the MP4. An AI-native video production workspace: the skills, commands, templates, and tools your AI agent needs to take a video from concept to final render, on open-source models that cost cents (voiceover ~$0.01, AI video clips ~$0.23).

See What It Makes

Every frame below was generated in this workspace — click to watch.

<a href="https://demos.digitalsamba.com/video/q2-townhall-longarm-ad.mp4"><img src="assets/readme-thumbs/q2-townhall-longarm-ad.jpg" height="280" alt="Super Bowl-style launch ad"></a><a href="https://demos.digitalsamba.com/video/hallucinations_short.mp4"><img src="assets/readme-thumbs/hallucinations-short.jpg" height="280" alt="AI hallucinations explainer short"></a><a href="https://demos.digitalsamba.com/video/short-blue-sky.mp4"><img src="assets/readme-thumbs/sky-blue-short.jpg" height="280" alt="Why is the sky blue? short"></a>
Super Bowl-style launch ad<br>LTX-2 animated cameo,<br>dramatic AI announcerAI hallucinations explainer<br>9:16 short — Ideogram 4 cards,<br>cloned voice, burned captions"Why is the sky blue?"<br>52s vertical short,<br>~$0.80 in generation

More in the showcase table below.

Quick Start

git clone https://github.com/digitalsamba/claude-code-video-toolkit.git
cd claude-code-video-toolkit
uv sync   # Optional: AI voiceover, image gen, music, moviepy examples
claude    # Open Claude Code in the toolkit

Python dependencies are managed with uvuv sync creates .venv/ and installs everything from the lockfile in seconds. No uv yet? curl -LsSf https://astral.sh/uv/install.sh | sh (macOS/Linux) or powershell -c "irm https://astral.sh/uv/install.ps1 | iex" (Windows).

Then in Claude Code:

/setup                    # Configure cloud GPU, storage, voice (~5 min, mostly free)
/video                    # Create your first video

That's it. /setup walks you through everything interactively — cloud GPU provider, file transfer, voice config. /video creates a project from a template and guides you through the whole workflow.

What's free: The toolkit leans heavily on open-source AI models — voiceovers (Qwen3-TTS), image generation (FLUX.2), music (ACE-Step), and more. You deploy them to your own cloud GPU account and run them at cost. Cloudflare R2 has a generous free tier (10GB, zero egress), and Modal gives $30/month free compute on the Starter plan — more than enough for a few 5-minute videos a month.

Requirements: Node.js 18+ and Claude Code. uv recommended for the AI tools (it installs Python 3.10+ for you). FFmpeg optional.

Want to skip setup and just render something?

cd examples/hello-world && npm install && npm run render

No API keys needed — outputs an MP4 immediately.


A Note from the Author (not AI-generated)

I've spent months painstakingly putting this toolkit together and plan to keep iterating on it. AI makes things easier, but hard work still has huge value. Every video I create is a chance for improvement — every skill, template, tool, and workflow here has been refined through that cycle. It would be wonderful if others wanted to get involved with that: use it, refine it, and feed back into the repo via an issue or PR what you learn.

My own use case is fairly specific: creating sprint review videos for the AI mobile development arm of Digital Samba. But the idea behind this project is a reusable toolkit for using Claude Code to autonomously generate any kind of "explainer" style video — product demos, walkthroughs, presentations, whatever you need. Autonomous video creation is a lofty ideal for such a subjective field, but we can try :)

What makes this work is that Claude Code is fantastically resourceful and flexible — give it the framing and tooling that this toolkit provides and it will adapt it to create templates and videos based on your prompting. The skills, templates, and tools here are building blocks. Claude Code is the builder. You are the director, editor, and designer.

If you're getting started, run /setup then /video and let Claude Code guide you. Or start with /template to create a template for your own use case.

Cloud GPU — I recommend Modal for running the toolkit's AI tools. The Starter plan gives you $30/month free compute, which is more than enough. RunPod is also supported as an alternative. Run /setup to deploy the tools you need.

My motto: Be brave. Experiment. And please share any videos you create or ideas you have back with the project — it helps me keep improving this toolkit for everyone.

Features

Skills

Claude Code has deep knowledge in:

SkillDescription
remotionReact-based video framework — compositions, animations, rendering
elevenlabsAI audio — text-to-speech, voice cloning, music, sound effects
ffmpegMedia processing — format conversion, compression, resizing
playwright-recordingBrowser automation — record demos as video
frontend-designVisual design refinement for distinctive, production-grade aesthetics
qwen-editAI image editing — prompting patterns and best practices
ideogram4AI image generation with best-in-class in-image text — title cards, thumbnails, exact brand colors
acestepAI music generation — prompts, lyrics, scene presets, video integration
ltx2AI video generation — text-to-video, image-to-video clips, prompting guide
moviepyPython video composition — overlay text on LTX-2/SadTalker output, build.py-style projects
runpodCloud GPU — setup, Docker images, endpoint management, costs

The always-current catalog of skills, commands, tools, and templates lives in _internal/toolkit-registry.json.

Commands

CommandDescription
/setupFirst-time setup — cloud GPU, file transfer, voice, prerequisites
/videoVideo projects — list, resume, or create new
/scene-reviewScene-by-scene review in Remotion Studio
/designFocused design refinement session for a scene
/brandBrand profiles — list, edit, or create new
/templateList available templates or create new ones
/skillsList installed skills or create new ones
/contributeShare improvements — issues, PRs, examples
/record-demoRecord browser interactions with Playwright
/generate-voiceoverGenerate AI voiceover from a script
/redubRedub existing video with a different voice
/voice-cloneRecord, test, and save a cloned voice to a brand
/publishPublish a finished video to YouTube (metadata auto-filled from project.json)
/versionsCheck dependency versions and toolkit updates

Note: After creating or modifying commands/skills, restart Claude Code to load changes.

Templates

Pre-built video structures in templates/:

  • sprint-review — Sprint review videos with demos, stats, and voiceover
  • sprint-review-v2 — Composable scene-based sprint review with modular architecture
  • product-demo — Marketing videos with dark tech aesthetic, stats, CTA
  • concept-explainer-short — 9:16 vertical TikTok/Reels/Shorts explainers (Python/moviepy, no Remotion)

See examples/ for finished projects you can learn from (newest first — scroll down to watch the toolkit evolve in reverse):

DateDemoDescription
2026-06-09hallucinations-short3:41 vertical explainer on AI hallucinations — Ideogram 4 cards, LTX-2 b-roll, burned karaoke captions, Qwen3-TTS voice clone (reference sample from Pixabay)
2026-06-09sky-blue-short52s "Why is the sky blue?" — concept-explainer-short template showcase (examples/sky-blue-short), stock Qwen3-TTS voice
2026-04-08q2-townhall-starsGitHub star history time-lapse with animated chart and deadpan-to-excited commentary
2026-04-08q2-townhall-longarm-adSuper Bowl-style launch ad with dramatic Qwen3-TTS announcer and LTX-2 animated Lugh cameo
2026-03-15the-space-betweenAI-generated video essay — flux2 avatar, Qwen3-TTS voice, SadTalker animation
2026-02-23cortinaMobile platforms sprint review
2026-01-25schlumbergeraAndroid sprint review video
2026-01-22ds-remote-mcpRemote MCP server demo (the jazz background music is a joke)
2025-12-10digital-samba-skill-demoProduct demo showcasing Claude Code skill
2025-12-05sprint-review-cho-oyuiOS sprint review with demos

Scene Transitions

The toolkit includes a transitions library for scene-to-scene effects:

TransitionDescription
glitch()Digital distortion with RGB shift
rgbSplit()Chromatic aberration effect
zoomBlur()Radial motion blur
lightLeak()Cinematic lens flare
clockWipe()Radial sweep reveal
pixelate()Digital mosaic dissolution
checkerboard()Grid-based reveal (9 patterns)

Plus official Remotion transitions: slide(), fade(), wipe(), flip()

Preview all transitions:

cd showcase/transitions && npm install && npm run studio

See lib/transitions/README.md for full documentation.

Brand Profiles

Define visual identity in brands/. When you create a project with /video, the brand's colors, fonts, and styling are automatically applied.

brands/my-brand/
├── brand.json    # Colors, fonts, typography
├── voice.json    # ElevenLabs voice settings
└── assets/       # Logo, backgrounds

Included brands: default, digital-samba

Create your own with /brand.

Project Management System

Video projects are tracked through a multi-session lifecycle:

planning → assets → review → audio → editing → rendering → complete

Each project has a project.json that tracks:

  • Scenes — What to show, asset status, visual types
  • Audio — Voiceover and music status
  • Sessions — Work history across Claude Code sessions
  • Phase — Current stage in the workflow

The system automatically reconciles intent (what you planned) with reality (what files exist), and generates a CLAUDE.md per project for instant context when resuming.

See lib/project/README.md for schema details, scene status tracking, and filesystem reconciliation logic.

Python Tools

Audio, video, and image tools in tools/:

# AI voiceover — ElevenLabs or self-hosted Qwen3-TTS (9 voices + cloning)
uv run tools/voiceover.py --provider qwen3 --speaker Ryan --scene-dir public/audio/scenes --json

# AI music (ACE-Step — free cloud API)
uv run tools/music_gen.py --preset corporate-bg --duration 120 --output music.mp3

# AI image generation (FLUX.2) and editing (Qwen-Image-Edit)
uv run tools/flux2.py --preset title-bg --brand digital-samba --cloud modal
uv run tools/image_edit.py --input photo.jpg --prompt "Add sunglasses" --cloud modal

# AI video generation (LTX-2.3 — text-to-video, image-to-video)
uv run tools/ltx2.py --prompt "A sunset over the ocean, cinematic" --cloud modal

# Talking head from a portrait + audio (SadTalker)
uv run tools/sadtalker.py --image portrait.png --audio voiceover.mp3 --output talking.mp4 --cloud modal
<details> <summary><strong>All tools</strong> — sound effects, redub, upscaling, watermark removal, NotebookLM rebranding, in-image text…</summary>
# Generate voiceover (ElevenLabs)
uv run tools/voiceover.py --script script.md --output voiceover.mp3

# Generate voiceover (Qwen3-TTS — self-hosted, cheaper alternative)
uv run tools/voiceover.py --provider qwen3 --speaker Ryan --scene-dir public/audio/scenes --json
uv run tools/qwen3_tts.py --text "Hello world" --tone warm --output hello.mp3

# Generate background music (ElevenLabs)
uv run tools/music.py --prompt "Upbeat corporate" --duration 120 --output music.mp3

# Generate background music (ACE-Step — free cloud API, XL Turbo 4B model)
uv run tools/music_gen.py --preset corporate-bg --duration 120 --output music.mp3
uv run tools/music_gen.py --prompt "Dramatic cinematic" --duration 30 --bpm 90 --key "D Minor" --output reveal.mp3
uv run tools/music_gen.py --prompt "Upbeat indie rock" --duration 60 --variations 4 --output intro.mp3

# Generate sound effects
uv run tools/sfx.py --preset whoosh --output sfx.mp3

# Redub video with different voice
uv run tools/redub.py --input video.mp4 --voice-id VOICE_ID --output dubbed.mp4

# Add background music to existing video
uv run tools/addmusic.py --input video.mp4 --prompt "Subtle ambient" --output output.mp4

# Rebrand NotebookLM videos (trim outro, add your logo/URL)
uv run tools/notebooklm_brand.py --input video.mp4 --logo logo.png --url "mysite.com" --output branded.mp4

# AI image editing (style transfer, backgrounds, custom prompts)
uv run tools/image_edit.py --input photo.jpg --style cyberpunk --cloud modal
uv run tools/image_edit.py --input photo.jpg --prompt "Add sunglasses" --cloud modal

# AI image upscaling (2x/4x)
uv run tools/upscale.py --input photo.jpg --output photo_4x.png --cloud modal

# Remove watermarks (requires cloud GPU)
uv run tools/dewatermark.py --input video.mp4 --preset sora --output clean.mp4 --cloud modal

# Locate watermark coordinates
uv run tools/locate_watermark.py --input video.mp4 --grid --output-dir ./review/

# Generate talking head video from image + audio (SadTalker)
uv run tools/sadtalker.py --image portrait.png --audio voiceover.mp3 --output talking.mp4 --cloud modal

# AI image generation (FLUX.2 Klein 4B — text-to-image + editing)
uv run tools/flux2.py --prompt "A sunset over mountains" --cloud modal
uv run tools/flux2.py --preset title-bg --brand digital-samba --cloud modal
uv run tools/flux2.py --list-presets

# AI video generation (LTX-2.3 22B — text-to-video + image-to-video)
uv run tools/ltx2.py --prompt "A sunset over the ocean, cinematic" --cloud modal
uv run tools/ltx2.py --prompt "Gentle camera drift" --input photo.jpg --cloud modal

# Publish a finished render to YouTube (OAuth 2.0 + Data API v3) — contributed by @dascope (#29)
uv run tools/youtube_upload.py --auth                                   # one-time browser login
uv run tools/youtube_upload.py --video out/video.mp4 --title "My video" --privacy private --json-out
</details>

Tool Categories:

TypeToolsPurpose
Projectvoiceover, music, music_gen, sfxUsed during video creation workflow
Utilityredub, addmusic, notebooklm_brand, locate_watermarkQuick transformations, no project needed
Cloud GPUimage_edit, upscale, dewatermark, sadtalker, qwen3_tts, flux2, music_gen, ltx2AI processing via Modal or RunPod
Publishingyoutube_uploadUpload a finished render to YouTube (or use /publish)

Cloud GPU (Modal + RunPod)

8 AI tools run on cloud GPUs. Use --cloud modal (recommended) or --cloud runpod on any tool.

ToolWhat It DoesEst. Cost
qwen3_ttsAI text-to-speech (9 speakers, voice cloning)~$0.01
flux2AI image generation & editing~$0.02
image_editAI image editing & style transfer~$0.03
upscaleAI image upscaling (2x/4x)~$0.01
music_genAI music generation (8 scene presets)Free (acemusic) / ~$0.05 (self-hosted)
sadtalkerTalking head video from portrait + audio~$0.10
ltx2AI video generation (text-to-video, image-to-video)~$0.23
dewatermarkVideo watermark removal~$0.10

Modal (recommended): Each tool deploys from docker/modal-*/app.py — Modal builds and hosts the containers. $30/month free compute on the Starter plan, typical usage is $1-2/month. Run /setup to deploy all tools automatically.

RunPod (alternative): Uses pre-built Docker images from ghcr.io/conalmullan/video-toolkit-*. Pay-per-second, no minimums. Run uv run tools/<tool>.py --setup to create endpoints.

See docs/modal-setup.md and docs/runpod-setup.md for details.

Project Structure

claude-code-video-toolkit/
├── .claude/
│   ├── skills/          # Domain knowledge for Claude
│   └── commands/        # Slash commands (/video, /brand, etc.)
├── lib/                 # Shared components, theme system, utilities
│   ├── components/      # Reusable video components (11 components)
│   ├── transitions/     # Scene transition effects (7 custom + 4 official)
│   ├── theme/           # ThemeProvider, useTheme
│   └── project/         # Multi-session project system
├── tools/               # Python CLI tools
├── templates/           # Video templates
├── brands/              # Brand profiles
├── projects/            # Your video projects (gitignored)
├── examples/            # Curated showcase projects with finished videos
├── assets/              # Shared assets
├── playwright/          # Recording infrastructure
├── docs/                # Documentation
└── _internal/           # Toolkit metadata & roadmap

Documentation

Video Workflow

/video → Script → Assets → Scene Review → Design → Audio → Preview → Render → Publish
  1. Create project — Run /video, choose template and brand
  2. Review script — Edit VOICEOVER-SCRIPT.md to plan content and assets
  3. Gather assets — Record demos with /record-demo or add external videos
  4. Scene review — Run /scene-review to verify visuals in Remotion Studio
  5. Design refinement — Use /design to improve slide visuals with the frontend-design skill
  6. Generate audio — AI voiceover with /generate-voiceover
  7. Configure — Update config file with asset paths and timing
  8. Previewnpm run studio for live preview
  9. Iterate — Work with Claude Code to adjust timing, styling, content
  10. Rendernpm run render for final MP4

Using with Codex

The toolkit is built for Claude Code, but an experimental migration script installs its skills and workflows for Codex and generates an AGENTS.md block from CLAUDE.md:

uv run scripts/migrate_to_codex.py --force

See docs/codex.md for what it installs, how the AGENTS.md block is managed, and how to remove it. Contributed by @kimhoontae-gogo in #16.

Using with Kiro CLI

A sibling migration script installs the toolkit's skills and workflows for Kiro CLI/video, /setup, etc. work as slash commands, from any directory:

uv run scripts/migrate_to_kiro.py --force

See docs/kiro.md for what it installs, how it achieves Claude Code-parity, and how to remove it.

Contributing

Contributions welcome! See CONTRIBUTING.md for guidelines.

License

MIT License — see LICENSE for details.


Built for use with Claude Code by Anthropic.

Want something like this for your team?

We build custom MCPs and Claude skills tailored to private workflows. Get in touch.

Start a Conversation

Ready to Ship Something?

Tell us about your project. We respond within one business day with honest scoping — not a sales pitch.

Get Started