Claude edited this
How a short face-cam video went from four raw takes to a finished, captioned, animated vertical video, with every scene written as code by Claude Code. What Remotion is, what its Agent Skills add, the full pipeline, and how to set it up yourself.
- TL;DR and key numbers
- Remotion, from zero
- The problem with editing by hand
- The insight: video as code
- What the Agent Skills are
- How this video was made
- Timeline editor vs code
- Try it yourself
- So, did Claude really edit it?
- When it's a good fit
- Caveats and limits
- FAQ
- Glossary and sources
TL;DR
- Remotion is a framework for making videos with React. Each frame is a React component rendered at a given time, so a video is just code.
- Because the video is code, an AI coding agent like Claude Code can write and change it: scenes, animation timing, captions, sound cues.
- Remotion publishes official Agent Skills that teach an agent how to use Remotion well. You add them with one command:
npx skills add remotion-dev/skills. - The video this post is about was built that way: four raw takes in, a 27-second vertical video out, with every scene, caption and sound cue written by Claude Code and checked in Remotion Studio.
- You still direct it. You record, you give feedback, you approve. Claude does the editing work.
Remotion, from zero
Remotion lets you write a video the way you write a web page. A composition has a size, a frame rate and a length. Inside it, ordinary React components draw each frame. A hook called useCurrentFrame() tells a component which frame is being drawn, so anything that should move is just a function of the frame number.
React for the frames, TypeScript for the code, Node.js to run it, and an MP4 at the end.
A tiny scene
A title that fades in over the first second looks like this (simplified example):
import { interpolate, useCurrentFrame } from "remotion"; export const Title = () => { const frame = useCurrentFrame(); // frames 0–30 (one second at 30 fps): opacity 0 → 1 const opacity = interpolate(frame, [0, 30], [0, 1], { extrapolateRight: "clamp" }); return <h1 style={{ opacity }}>Hello</h1>; };
Two tools you use every day
A preview app in your browser (npx remotion studio). It plays your video, lets you scrub the timeline and shows each scene. This is where you review the edit.
npx remotion render draws every frame and encodes them, with the audio, into an MP4.
The problem with editing by hand
A good short-form explainer has a lot of small, precise work in it, and most of it is repetitive:
- Captions word by word. Each word has to light up when it's spoken. That means a timestamp per word, for every line.
- Graphics on the right word. A logo should appear when its name is said, not half a second later.
- Cuts and pauses. Dead air gets trimmed, and every graphic after a cut has to move with it.
- Re-timing. Speed the video up and every keyframe, caption and sound effect has to shift.
On a timeline editor each of those is manual. In code, it's one number: in this project, changing the speed meant changing timeScale from 1 / 1.2 to 1 / 1.1 and re-running a script for the caption and sound timings.
The insight: video as code
An AI coding agent can't drag clips around a timeline, but it can read and write files. Once a video is React code, every change you'd make by hand becomes an edit to a file.
A general coding model doesn't automatically know Remotion's best practices. Remotion's Agent Skills give it that knowledge on demand: how to structure compositions, animate, time things, add captions and render.
So you describe the edit in plain words, Claude writes the code, and you review the result in Remotion Studio. When you don't like something, you say so, and it changes the code.
What the Agent Skills are
A skill is a packaged set of instructions an agent loads when a task needs it. Remotion's skills are installed into your project's .agents/skills folder, and Claude Code reads them through .claude/skills, which is linked to that folder.
You can call one directly with a slash command. If you're not sure which one you need, Remotion recommends /remotion-best-practices, which covers all the others.
| Skill | What it covers |
|---|---|
| remotion-best-practices | The umbrella skill: covers all the others |
| remotion-create | Creating a new project or composition |
| remotion-markup | Compositions, animation, layout, typography, media, effects, audio, fonts, timing |
| remotion-captions | Captions and subtitles |
| remotion-studio | Launching the Studio preview |
| remotion-render | Rendering to a video or a still image |
| Others | Maps, interactivity (editable in Studio), SaaS architecture, docs search, upgrades, browser media (Mediabunny) |
How this video was made
Here's the real pipeline behind the video. The Remotion skills cover the scenes, captions, preview and render. The steps before that (cleaning the takes, finding word timings) were done by Claude running scripts in the same project.
Four raw takes
Recorded on camera, landscape, 1620×1080. One take restarted a line, so that part was dropped.
Clean take
Takes trimmed and joined with FFmpeg, pauses tightened, the voice denoised and warmed up, the whole thing sped up 1.1×.
Face-tracked vertical crop
A 608-pixel-wide crop of the landscape frame follows the face (Apple Vision face detection, smoothed), so the speaker never drifts out of a 9:16 frame.
Word timings
Whisper transcribed the voice in short windows (long takes drift), giving a start time for every word.
Scenes as code
Seven scenes written in TypeScript and React, each timed to the second its first word is spoken.
Captions + sound
Word-by-word captions generated from the timings; sound cues placed on visual moments.
Review in Studio
Every round of feedback ("I'm out of frame", "speed it to 1.1×", "show the same moment on both phones") became a code change, checked in Remotion Studio.
Render
27.4 seconds, 1080×1920, 30 fps, with voice and sound effects.
What a scene looks like
Each scene reads the current time and decides what is on screen. A shortened version of the opening card, where "Me" gets struck out and flips to Claude on the spoken word:
export const Hook = () => { const t = useT(0); // seconds into the take return ( <AbsoluteFill> {/* struck out on "edit nahi kiya", flips to Claude on "Claude" */} <EditedBy t={t} strikeAt={2.0} flipAt={2.68} /> </AbsoluteFill> ); };
Captions are data
Each caption line is a small piece of JSON with a time per word, so the words sharpen exactly as they're spoken (times in seconds, from the real file):
{ "text": "jiska naam hai Remotion",
"words": [
{ "w": "jiska", "start": 12.9 }, { "w": "naam", "start": 13.14 },
{ "w": "hai", "start": 13.33 }, { "w": "Remotion", "start": 13.44 }
] }The captions file holds a few more fields (end times, which words are coloured); this shows the idea.
Timeline editor vs code
| Approach | How you edit | Trade-off |
|---|---|---|
| Timeline editor | Drag clips, keyframes and text by hand | Full control, but every change and every re-time is manual |
| One-click AI editors | Upload a clip, pick a style | Fast, but you get the tool's templates and little control over the details |
| Claude Code + Remotion | Describe the edit; the agent writes React code; you review in Studio | Precise and repeatable, any design you can describe; needs a dev setup and review rounds |
Try it yourself
You need Node.js and Claude Code. Pick one of the two ways to give Claude the Remotion skills.
Option A · Add the Agent Skills to a project
- Create a Remotion project (or open an existing one):
npx create-video@latest
- Inside the project, add the skills:
npx skills add remotion-dev/skills
Same thing with the GitHub CLI: gh skill install remotion-dev/skills. If you start with bun create video, it offers to add the skills during setup.
Option B · Install the Claude Code plugin
The plugin bundles the same Agent Skills for Claude Code:
claude plugin marketplace add remotion-dev/claude-code-plugin claude plugin install remotion@remotion
Then restart Claude Code. In the Claude desktop app: Customize → Plugins → Discover, search "remotion" and add the plugin from remotion-dev/claude-code-plugin.
Make your first video
- Start Claude Code in your video folder and describe what you want. With the plugin, for example:
/remotion:remotion-create Make a promo video for a record store. With the skills, just ask, or start with/remotion-best-practices. - Open the preview and watch it:
npx remotion studio. - Give feedback in plain words ("make the title bigger", "the logo should appear when I say its name") and check again.
- Render the final MP4:
npx remotion render.
For face-cam videos: the parts that take longest are getting clean audio and exact word timings. Ask Claude to transcribe your voice with word timestamps first, then build the captions and scenes on those times.
Claude did
- Cut and joined the takes, cleaned the voice
- Wrote all seven scenes, the captions and the sound cues
- Made every change I asked for, then rendered
I did
- Recorded the takes
- Gave feedback after watching each version in Studio
- Decided when it was done
When it's a good fit
Great fit
- Explainers with graphics, captions and data on screen
- A series in one consistent style (reusable components)
- Videos you'll re-time or update later
- You're comfortable running commands in a terminal
Less needed
- A quick vlog with a few cuts and no graphics
- Pure footage edits where you choose shots by feel
- One-off clips where a phone editor is faster
Caveats and limits
- Licence. Remotion is free for individuals, for-profit companies with up to 3 employees, non-profits, and for evaluation. Larger for-profit companies need a Company License.
- You still review. The agent gets timings slightly wrong sometimes (a caption early, a graphic late). Watch every version in Studio before you render.
- Not just the skill. In this project, the face tracking, voice cleanup and transcription were custom scripts Claude ran. The Remotion skills cover the video code, not your camera work.
- Tools change. Install commands have changed over time. Check Remotion's docs for the current ones before you start.
FAQ
Do I need to know React?
It helps for reading what the agent writes, but you don't have to write it yourself. You describe the edit, and Claude writes the code.
Can it edit my existing footage?
Yes. Your clips go into the project as video files, and the scenes place, crop and layer them. The cuts themselves can be done with FFmpeg, which the agent can also run.
Skills or plugin, which should I use?
Both give Claude the same Agent Skills. The plugin is the Claude Code way to install them; npx skills add puts them in one project and works with other agents too.
Where do I see the video while it's being made?
In Remotion Studio (npx remotion studio), which runs in your browser and updates when the code changes.
How do the captions stay in sync?
They're built from word timestamps. Transcribe the voice with word-level times, and each caption word appears at its own time.
Glossary
- Remotion
- A framework for making videos with React: each frame is a component rendered at a point in time.
- Composition
- One video in a Remotion project, with its size, frame rate and length.
- Remotion Studio
- The browser preview where you play, scrub and review a composition.
- Agent Skill
- A packaged set of instructions an AI agent loads when a task needs it.
- Claude Code
- Anthropic's coding agent that works in your terminal and files.
- Word timestamps
- A start time for every spoken word, used to sync captions and graphics.
- Render
- Drawing every frame and encoding them, with audio, into a video file.
- Agent Skills. Remotion docs: install commands and the list of skills.
- npx remotion skills. Remotion docs: where skills are installed and how Claude Code reads them.
- Claude Code plugin. Remotion docs: plugin install and usage.
- Remotion license. Free and Company License terms.
- remotion.dev. Remotion's site and documentation.