/video
Video projects - list, resume, or create new
$ npx -y skills add digitalsamba/claude-code-video-toolkit --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/video
Context preview
What this command does when you run it.
Video projects - list, resume, or create new
Command definition
video.mddescription: Video projects - list, resume, or create new
Video
Unified command for video projects. Scans for existing projects and offers to resume or create new.
Entry Point Logic
On invocation, scan for projects and adapt:
Step 0: Check Setup (first-time only)
If `.env` does not exist or no cloud GPU provider is configured (no `MODAL_*_ENDPOINT_URL` or `RUNPOD_*_ENDPOINT_ID` values set):
Tip: Run /setup to configure AI voiceovers, image generation, and music.
It takes ~5 minutes and most features are free. You can skip this and
create videos with just Node.js — run /setup anytime later.
This is a one-line hint, not a blocker. Proceed to Step 1 immediately.
Step 1: Scan Projects
1. Glob projects/*/project.json
2. For each project found:
- Read project.json
- Check filesystem for actual assets (public/demos/*, public/audio/*)
- Reconcile status vs reality
- Calculate health (ready/blocked/stale/complete)
3. Sort by last updated (most recent first)
Step 2: Present Options
**No projects found:**
No video projects found. Let's create one!
Which template would you like to use?
1. Sprint Review - internal demos, release videos
2. Product Demo - marketing, launches, features
3. Concept Explainer Short - vertical TikTok/Reels/Shorts explainers
→ Proceed to New Project Flow
**One project found:**
Found: **my-release-video** (sprint-review)
Phase: assets
Progress: 2 of 5 demos recorded
Last worked: 2 days ago
→ Resume this project
→ Start a new project
**Multiple projects found:**
Found 3 video projects:
1. **my-release-video** (sprint-review)
Phase: assets - 2/5 demos recorded
Last worked: 2 days ago
2. **product-launch** (product-demo)
Phase: audio - voiceover needed
Last worked: 5 days ago
3. **tutorial-v1** (sprint-review)
✅ Complete
Rendered: 2 weeks ago
Which project? (or 'new' for a new project)---
Resume Flow
When resuming a project:
Step 1: Read State
1. Read project.json
2. Read VOICEOVER-SCRIPT.md for context
3. Glob public/demos/* and public/audio/*
4. Compare to project.json expectations
Step 2: Reconcile Filesystem
For each scene with `visual.asset`:
- If `status: "asset-needed"` but file exists → update to `"asset-present"`
- If `status: "ready"` but file missing → update to `"asset-missing"`, flag issue
For audio:
- Check if `public/audio/voiceover.mp3` exists
- Update `audio.voiceover.status` accordingly
Step 3: Present Current State
Resuming: my-release-video (sprint-review)
## Scenes
| # | Scene | Type | Status |
|---|-------|------|--------|
| 1 | Title | title | ✅ Ready |
| 2 | Overview | overview | ✅ Ready |
| 3 | Dark Mode Demo | demo | ✅ Recorded |
| 4 | Login Flow | demo | ⬜ Needs recording |
| 5 | Stats | stats | ✅ Ready (slide) |
| 6 | Credits | credits | ✅ Ready (slide) |
## Audio
- Voiceover: ⬜ Not yet generated (script ready)
- Music: Optional
## Next Actions
1. **Record login flow demo** (Scene 4)
Run `/record-demo` or provide external video
2. **Generate voiceover** (after demos complete)
Run `/generate-voiceover`
Ready to record the login flow?
Step 4: Update project.json
After reconciliation:
- Update any changed statuses
- Add session entry: `{ date: "YYYY-MM-DD", summary: "Resumed project" }`
- Update `updated` timestamp
Step 5: Regenerate CLAUDE.md
Update the project's CLAUDE.md with current state (see CLAUDE.md Generation below).
---
New Project Flow
When creating a new project:
Phase 1: Setup
**Template Selection:**
Which template would you like to use?
| Template | Best For | Scene Types |
|----------|----------|-------------|
| Sprint Review | Internal demos, release videos | title, overview, demo, split-demo, summary, credits |
| Product Demo | Marketing, launches, features | title, problem, solution, demo, feature, stats, cta |
| Concept Explainer Short | Vertical 9:16 TikTok/Reels/Shorts explainers | hook, concept cards (Ideogram), b-roll (LTX), recap, cta |
> **Concept Explainer Short is Python-based** (moviepy, no Remotion/npm). Its > flow differs after scene planning: author `scenes.json` → generate visuals > (ideogram4/ltx2 from toolkit root) → `gen_vo.py` → `gen_captions.py` → > `build.py`. See `templates/concept-explainer-short/README.md`. Skip the > npm-install and brand.ts steps below; preview = open `out/short.mp4`.
**Brand Selection:**
List available brands from `brands/` directory:
1. Read each brands/*/brand.json
2. Extract name and primary color
3. Present list with "Create new brand" option
Which brand?
1. default - #3B82F6 (blue)
2. digital-samba - #FF6B00 (orange)
3. Create new brand → /brand
**Project Name:**
What should we call this project?
(This becomes the folder name, e.g., "v21-release" → projects/v21-release/)
Phase 2: Content Gathering
What content should this video cover? You can:
- Paste release notes or bullet points
- Provide a URL (release notes, changelog, JIRA, GitHub)
- Describe what you want to show
- Any combination of the above
**If URL provided:**
- WebFetch the content
- Parse and summarize
- Ask clarifying questions
**Always ask:**
- "What's the main message or announcement?"
- "Who's the audience?" (internal team, customers, developers)
- "Any specific features to highlight?"
- "Anything to skip or de-emphasize?"
Phase 3: Scene Planning
**Step 1: Propose scene breakdown**
Based on content, propose scenes:
Based on your input, here's a suggested scene breakdown:
1. Title (5s) - "Version 2.1 Release"
[SLIDE: Title with logo]
2. Overview (15s) - Key highlights
[SLIDE: 3 bullet points]
3. Demo: Dark Mode (20s)
[DEMO: Settings → toggle → show UI change]
"One of our most requested features..."
4. Stats (10s)
[SLIDE: 3 features, 5 fixes]
5. Credits (5s)
[SLIDE: Team credits]
EsRead more
description: Video projects - list, resume, or create new
Video
Unified command for video projects. Scans for existing projects and offers to resume or create new.
Entry Point Logic
On invocation, scan for projects and adapt:
Step 0: Check Setup (first-time only)
If `.env` does not exist or no cloud GPU provider is configured (no `MODAL_*_ENDPOINT_URL` or `RUNPOD_*_ENDPOINT_ID` values set):
Tip: Run /setup to configure AI voiceovers, image generation, and music. It takes ~5 minutes and most features are free. You can skip this and create videos with just Node.js — run /setup anytime later.
This is a one-line hint, not a blocker. Proceed to Step 1 immediately.
Step 1: Scan Projects
1. Glob projects/*/project.json 2. For each project found: - Read project.json - Check filesystem for actual assets (public/demos/*, public/audio/*) - Reconcile status vs reality - Calculate health (ready/blocked/stale/complete) 3. Sort by last updated (most recent first)
Step 2: Present Options
**No projects found:**
No video projects found. Let's create one! Which template would you like to use? 1. Sprint Review - internal demos, release videos 2. Product Demo - marketing, launches, features 3. Concept Explainer Short - vertical TikTok/Reels/Shorts explainers
→ Proceed to New Project Flow
**One project found:**
Found: **my-release-video** (sprint-review) Phase: assets Progress: 2 of 5 demos recorded Last worked: 2 days ago → Resume this project → Start a new project
**Multiple projects found:**
Found 3 video projects:
1. **my-release-video** (sprint-review)
Phase: assets - 2/5 demos recorded
Last worked: 2 days ago
2. **product-launch** (product-demo)
Phase: audio - voiceover needed
Last worked: 5 days ago
3. **tutorial-v1** (sprint-review)
✅ Complete
Rendered: 2 weeks ago
Which project? (or 'new' for a new project)---
Resume Flow
When resuming a project:
Step 1: Read State
1. Read project.json 2. Read VOICEOVER-SCRIPT.md for context 3. Glob public/demos/* and public/audio/* 4. Compare to project.json expectations
Step 2: Reconcile Filesystem
For each scene with `visual.asset`:
- If `status: "asset-needed"` but file exists → update to `"asset-present"`
- If `status: "ready"` but file missing → update to `"asset-missing"`, flag issue
For audio:
- Check if `public/audio/voiceover.mp3` exists
- Update `audio.voiceover.status` accordingly
Step 3: Present Current State
Resuming: my-release-video (sprint-review) ## Scenes | # | Scene | Type | Status | |---|-------|------|--------| | 1 | Title | title | ✅ Ready | | 2 | Overview | overview | ✅ Ready | | 3 | Dark Mode Demo | demo | ✅ Recorded | | 4 | Login Flow | demo | ⬜ Needs recording | | 5 | Stats | stats | ✅ Ready (slide) | | 6 | Credits | credits | ✅ Ready (slide) | ## Audio - Voiceover: ⬜ Not yet generated (script ready) - Music: Optional ## Next Actions 1. **Record login flow demo** (Scene 4) Run `/record-demo` or provide external video 2. **Generate voiceover** (after demos complete) Run `/generate-voiceover` Ready to record the login flow?
Step 4: Update project.json
After reconciliation:
- Update any changed statuses
- Add session entry: `{ date: "YYYY-MM-DD", summary: "Resumed project" }`
- Update `updated` timestamp
Step 5: Regenerate CLAUDE.md
Update the project's CLAUDE.md with current state (see CLAUDE.md Generation below).
---
New Project Flow
When creating a new project:
Phase 1: Setup
**Template Selection:**
Which template would you like to use? | Template | Best For | Scene Types | |----------|----------|-------------| | Sprint Review | Internal demos, release videos | title, overview, demo, split-demo, summary, credits | | Product Demo | Marketing, launches, features | title, problem, solution, demo, feature, stats, cta | | Concept Explainer Short | Vertical 9:16 TikTok/Reels/Shorts explainers | hook, concept cards (Ideogram), b-roll (LTX), recap, cta |
> **Concept Explainer Short is Python-based** (moviepy, no Remotion/npm). Its > flow differs after scene planning: author `scenes.json` → generate visuals > (ideogram4/ltx2 from toolkit root) → `gen_vo.py` → `gen_captions.py` → > `build.py`. See `templates/concept-explainer-short/README.md`. Skip the > npm-install and brand.ts steps below; preview = open `out/short.mp4`.
**Brand Selection:**
List available brands from `brands/` directory:
1. Read each brands/*/brand.json 2. Extract name and primary color 3. Present list with "Create new brand" option
Which brand? 1. default - #3B82F6 (blue) 2. digital-samba - #FF6B00 (orange) 3. Create new brand → /brand
**Project Name:**
What should we call this project? (This becomes the folder name, e.g., "v21-release" → projects/v21-release/)
Phase 2: Content Gathering
What content should this video cover? You can: - Paste release notes or bullet points - Provide a URL (release notes, changelog, JIRA, GitHub) - Describe what you want to show - Any combination of the above
**If URL provided:**
- WebFetch the content
- Parse and summarize
- Ask clarifying questions
**Always ask:**
- "What's the main message or announcement?"
- "Who's the audience?" (internal team, customers, developers)
- "Any specific features to highlight?"
- "Anything to skip or de-emphasize?"
Phase 3: Scene Planning
**Step 1: Propose scene breakdown**
Based on content, propose scenes:
Based on your input, here's a suggested scene breakdown:
1. Title (5s) - "Version 2.1 Release"
[SLIDE: Title with logo]
2. Overview (15s) - Key highlights
[SLIDE: 3 bullet points]
3. Demo: Dark Mode (20s)
[DEMO: Settings → toggle → show UI change]
"One of our most requested features..."
4. Stats (10s)
[SLIDE: 3 features, 5 fixes]
5. Credits (5s)
[SLIDE: Team credits]
EsTell Claude Code what video you want — it writes the script, generates the voiceover, music, and visuals, and renders the MP4.
Repo: digitalsamba/claude-code-video-toolkit
Other commands on claude-code-video-toolkit.
- /brand
Brand profiles - list, edit, or create new
Open command - /contribute
Share improvements - issues, PRs, skills, templates
Open command - /design
Focused design session for improving video scene visuals using the frontend-design skill.
Open command - /generate-voiceover
Generate AI voiceover from script
Open command - /publish
Publish a finished video to YouTube
Open command - /record-demo
Guided Playwright browser recording
Open command

