Install
openclaw skills install remotion-animatorA video skill for agents. Build animated videos programmatically using Remotion. Use when the user wants to (1) make any kind of animated video — intros, exp...
openclaw skills install remotion-animatorYour agent builds animated videos with components. No After Effects needed — write code, preview in browser, render to MP4.
Your agent scaffolds, builds, and renders videos on demand. Templates for intros, explainers, data visualizations, and dialogue videos. A library of animation components your agent composes and customizes for each task.
python /path/to/skill/scripts/new-project.py my-video
cd my-video && npm install
npm run dev
# Open http://localhost:3000
npm run render
# Or use the render helper:
python /path/to/skill/scripts/render.py --output out/video.mp4 --quality high
Scaffold with a pre-built template instead of the starter:
python scripts/new-project.py my-intro --template intro
python scripts/new-project.py my-stats --template data-kinetic
python scripts/new-project.py my-tutorial --template explainer
python scripts/new-project.py my-podcast --template conversation
| Template | Use Case | Duration |
|---|---|---|
| starter | Blank canvas with animation primitives | 6s |
| intro | Logo + title + tagline reveal | 5s |
| data-kinetic | Animated metrics, count-ups, progress bars | 8s |
| explainer | Step-by-step feature walkthrough | 10s |
| conversation | Multi-speaker dialogue with colored bubbles | Variable |
Set dimensions for vertical video:
python scripts/new-project.py my-reel --template intro --width 1080 --height 1920
Import from ./components in any project scaffolded from this skill:
import { FadeIn, SlideIn, ScaleIn, Typewriter, CountUp, ProgressBar } from "./components";
| Component | Effect |
|---|---|
<FadeIn> | Opacity tween |
<SlideIn> | Directional slide with opacity |
<ScaleIn> | Scale up with easing overshoot |
<Typewriter> | Character-by-character text reveal |
<CountUp> | Number counter animation |
<ProgressBar> | Animated progress bar |
<DriftingGrid> | Drifting CSS grid background |
<FloatingOrb> | Ambient floating orb |
<PulseRing> | Expanding attention ring |
<StaggerChildren> | Staggered child animations |
Usage example:
export const MyVideo: React.FC = () => {
return (
<div style={{ width: "100%", height: "100%", background: "#0a0a0f" }}>
<FadeIn start={0} duration={20}>
<h1 style={{ fontSize: 72, color: "#fff" }}>Hello World</h1>
</FadeIn>
<SlideIn start={25} direction="up">
<p style={{ fontSize: 28, color: "#a0a0b0" }}>Animated with code</p>
</SlideIn>
</div>
);
};
Edit gradient backgrounds or component color props:
background: "linear-gradient(135deg, #0a0a0f 0%, #1a1a2e 100%)"
All animations are frame-based. At 30fps:
Place audio in public/audio.mp3, then:
import { Audio, staticFile } from "remotion";
<Audio src={staticFile("audio.mp3")} />
const data = require("../data/content.json");
# High quality, smaller file
python scripts/render.py --quality high --codec h264
# ProRes for editing
python scripts/render.py --codec prores --quality ultra
# Vertical video
python scripts/render.py --output out/reel.mp4
# (Set composition width/height in Root.tsx)
This skill enables one-time proactive video creation. The agent may offer once when content clearly matches a specific template type. The agent must obtain explicit verbal confirmation before scaffolding any project.
User-facing warning when recurring is mentioned: Cron-based jobs are persistent automation that continue running on schedule until explicitly removed. They consume compute resources and generate output files repeatedly. Always explain this before the user consents.
The agent may suggest a video one time when these specific content patterns are unambiguous:
| Signal | Template to suggest | Pitch |
|---|---|---|
| User shares a transcript or interview | conversation | "Want me to turn this into a conversation video?" |
| User shares stats, metrics, or KPIs | data-kinetic | "These numbers would hit harder as an animated clip." |
| User announces a product/feature | intro + custom | "Want a quick intro video for the announcement?" |
| User writes a step-by-step guide | explainer | "I can animate this into a shareable explainer." |
| User asks for a social media clip | intro (vertical) | "Want this as a short-form video?" |
@remotion/cli (included in boilerplate package.json)