
Claude Video Create
- 6 installs
- 23 repo stars
- Updated April 6, 2026
- agricidaniel/claude-video
claude-video-create is a Claude Code skill that generates videos programmatically by writing React components rendered with Remotion.
About
claude-video-create is a Claude Code skill that produces videos programmatically with Remotion, the React-based video framework. Claude writes React components for title cards, data visualizations, motion graphics, and branded intros, and Remotion renders them headlessly to video. A developer uses it to generate data-driven or templated videos from code and JSON.
- Programmatic video via Remotion (React components)
- Generates title cards, data visualizations, and motion graphics
- Renders headlessly to MP4, WebM, or stills
Claude Video Create by the numbers
- 6 all-time installs (skills.sh)
- Ranked #1,096 of 1,335 Generative Media skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
claude-video-create capabilities & compatibility
Free; uses open-source Remotion and Node.js with no API keys.
- Capabilities
- programmatic video · motion graphics · data visualization · title cards
- Use cases
- video generation
- Pricing
- Free
What claude-video-create says it does
Programmatic video creation using Remotion (React-based). Generates title cards, data visualizations, motion graphics
Check Node.js: `node --version` (requires 18+)
npx skills add https://github.com/agricidaniel/claude-video --skill claude-video-createAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 6 |
|---|---|
| repo stars | ★ 23 |
| Last updated | April 6, 2026 |
| Repository | agricidaniel/claude-video ↗ |
What it does
Generate title cards, motion graphics, or data-driven videos programmatically by writing React components rendered with Remotion.
Who is it for?
Data-driven videos, title cards, and motion graphics generated from React components
Skip if: Simple transcoding, trimming, or audio processing, which route to FFmpeg sub-skills
When should I use this skill?
You want to create title cards, animated text, motion graphics, or data-visualization videos from code
What you get
Produces rendered MP4, WebM, or still frames from parameterized React components.
- Rendered MP4 videos
- Transparent WebM overlays
- Still-frame thumbnails
By the numbers
- Requires Node.js 18+
- Documents 7 render flags (codec, crf, image-format, scale, every-nth-frame, concurrency, props)
Files
claude-video-create — Programmatic Video via Remotion
Pre-Flight
1. Check Node.js: node --version (requires 18+) 2. Check if Remotion is available: npx remotion --version 2>/dev/null 3. If no Remotion project exists, scaffold one first
When to Use Remotion vs FFmpeg
Use Remotion for:
- Complex text animations (spring physics, staggered reveals, typewriter effects)
- Data-driven videos (charts, graphs, dashboards from JSON/CSV)
- React component-based templates (reusable, parameterized)
- Branded intros/outros with motion graphics
- Content that updates from data (weekly reports, scorecards)
Use FFmpeg for (route to other sub-skills):
- Transcoding, trimming, concatenation
- Simple text overlay (drawtext is sufficient)
- Audio processing
- Anything that doesn't need programmatic rendering
Scaffold a New Project
# Create new Remotion project
npx create-video@latest --template blank my-video-project
cd my-video-project
npm installThis creates a standard Remotion project with:
src/Root.tsx— Composition registrysrc/— Component directoryremotion.config.ts— Rendering configurationpackage.json— Dependencies
Core Concepts
Composition: A video definition with width, height, fps, and duration. Component: A React component that receives useCurrentFrame() and renders for that frame. Sequence: A timed sub-section within a composition. Spring: Physics-based animation for natural motion.
Example: Title Card
Claude should generate this component:
// src/TitleCard.tsx
import { AbsoluteFill, useCurrentFrame, useVideoConfig, spring, interpolate } from 'remotion';
export const TitleCard: React.FC<{ title: string; subtitle?: string }> = ({ title, subtitle }) => {
const frame = useCurrentFrame();
const { fps } = useVideoConfig();
const titleScale = spring({ frame, fps, config: { damping: 12 } });
const subtitleOpacity = interpolate(frame, [20, 40], [0, 1], { extrapolateRight: 'clamp' });
return (
<AbsoluteFill style={{ backgroundColor: '#0a0a0a', justifyContent: 'center', alignItems: 'center' }}>
<h1 style={{
color: 'white',
fontSize: 80,
fontFamily: 'Inter, sans-serif',
transform: `scale(${titleScale})`,
}}>
{title}
</h1>
{subtitle && (
<p style={{
color: '#888',
fontSize: 32,
opacity: subtitleOpacity,
marginTop: 20,
}}>
{subtitle}
</p>
)}
</AbsoluteFill>
);
};Register in Root.tsx:
import { Composition } from 'remotion';
import { TitleCard } from './TitleCard';
export const RemotionRoot: React.FC = () => (
<Composition
id="TitleCard"
component={TitleCard}
durationInFrames={90}
fps={30}
width={1920}
height={1080}
defaultProps={{ title: "My Video", subtitle: "A subtitle" }}
/>
);Render to Video
# Render a specific composition
npx remotion render src/index.ts TitleCard output.mp4 \
--props='{"title":"Hello World","subtitle":"Made with claude-video"}' \
--codec h264 --crf 18
# Render as transparent (for overlays)
npx remotion render src/index.ts TitleCard output.webm \
--props='{"title":"Overlay Text"}' \
--codec vp8 --image-format png
# Render specific frames (for thumbnails)
npx remotion still src/index.ts TitleCard thumbnail.png \
--props='{"title":"Thumbnail"}' --frame 45Common Patterns
Data-Driven Video (JSON input)
// Claude generates this based on user's data
const data = [
{ label: "Q1", value: 100 },
{ label: "Q2", value: 200 },
{ label: "Q3", value: 150 },
{ label: "Q4", value: 300 },
];
// Render with:
npx remotion render src/index.ts BarChart output.mp4 \
--props='{"data":[{"label":"Q1","value":100},{"label":"Q2","value":200}]}'Animated Text Sequence
import { Sequence } from 'remotion';
// Show text lines one by one
const lines = ["First line", "Second line", "Third line"];
return (
<AbsoluteFill>
{lines.map((line, i) => (
<Sequence from={i * 30} durationInFrames={60} key={i}>
<AnimatedLine text={line} />
</Sequence>
))}
</AbsoluteFill>
);Branded Intro/Outro Template
Claude generates a reusable template with:
- Logo animation (scale + fade in)
- Title text with spring animation
- Subtitle with delayed fade
- Background gradient or solid color
- Configurable via props (logo URL, colors, text)
Rendering Options
| Flag | Purpose | Example |
|---|---|---|
--codec | Output codec | h264, h265, vp8, vp9 |
--crf | Quality (lower = better) | 18 |
--image-format | Frame format | jpeg, png (png for transparency) |
--scale | Resolution multiplier | 0.5 (half), 2 (double) |
--every-nth-frame | Skip frames (preview) | 2 |
--concurrency | Parallel rendering threads | 4 |
--props | JSON props to composition | '{"title":"Hello"}' |
Workflow Integration
After Remotion renders a video, pipe it into other claude-video sub-skills: 1. Create title card with Remotion → concat with main video (edit sub-skill) 2. Create data viz with Remotion → add captions (caption sub-skill) 3. Create intro + outro → sandwich around edited content → export for platform
Limitations
- Requires Node.js 18+ and Chrome Headless Shell
- Rendering is slower than FFmpeg (screenshot per frame)
- First render downloads Chrome Headless (~200MB)
- Remotion licensing: free for individuals, paid for companies with 4+ employees
- Not suitable for simple operations (use FFmpeg directly for those)
Reference
Load references/remotion.md for Remotion API patterns, component architecture, and rendering configuration.
Related skills
FAQ
When should I use Remotion instead of FFmpeg here?
Use Remotion for complex text animations, data-driven videos, and React component templates; use FFmpeg for transcoding, trimming, and simple overlays.
What does it output?
It renders compositions headlessly to MP4, transparent WebM, or still PNG frames.