AI Guides › Step-by-step guides
By Nigel Guy · 8 min read
Most people who try this open Claude Code, paste in one enormous prompt asking for captions, B-roll, music, sound effects and colour in a single pass, and get back something that half-works and is impossible to fix. It fails because when ten things change at once you can't tell which one broke, and the model has no standing rules about what it must never touch, such as your actual words.
The rule: write the editor's rules down once as a skill, then build the video in small passes you can watch between each one.
The mechanism is simple. Remotion is a framework that builds videos from React code. Claude Code writes and edits that code from your plain-English instructions. You watch the result in Remotion Studio, ask for changes, and render when it looks right.
| You need | Notes | Cost at time of writing |
|---|---|---|
| A paid Claude plan | Claude Code needs Pro, Max, Team, Enterprise or a Console (API) account. The free plan does not include it. | Pro is listed at about £18 a month in the UK; check claude.ai/upgrade for the current figure |
| Claude Code | Install from the official setup page (below) | Included in the plan |
| Node.js | Remotion projects are created with npx, which comes with Node.js |
Free |
| Remotion | Free for individuals and companies of up to three people. Four or more people need a Company Licence. | Free, or a paid licence billed in US dollars (from $25 per seat per month for the Creators tier, roughly £19) |
| FFmpeg (optional) | Only if you want the audio and colour clean-up pass in Step 3 | Free |
| A vertical talking-head clip | An .mp4 you recorded yourself |
— |
Install Claude Code with the native installer. On macOS, Linux or WSL:
curl -fsSL https://claude.ai/install.sh | bash
On Windows PowerShell use irm https://claude.ai/install.ps1 | iex. Open a new terminal and run claude --version to confirm it printed a version number.
Next, scaffold a fresh Remotion project, pull in the Remotion agent skills, and launch Claude Code from within the project folder:
npx create-video@latest
cd my-video
npx skills add remotion-dev/skills
claude
The scaffolding prompt asks for a project name; type my-video, or edit the cd line to whatever you chose. Remotion's documentation also offers npx remotion skills add for the skills step, and either works. On its first launch, claude sends you to a browser window to sign in.
To pick the model, type /model inside Claude Code. The opus alias currently points to Opus 5.5 on Anthropic's own plans; the picker shows what your plan offers.
Claude Code reads project skills from .claude/skills/<name>/SKILL.md. The description line in the file's header is what Claude uses to decide when to load it, so make it specific. Ask Claude Code to draft the file, then read it before accepting.
Paste this, replacing the placeholders with your own details:
You are setting up a reusable editing skill for this Remotion project. I make short vertical talking-head videos and I want consistent edits without repeating my rules every session.
Goal: create .claude/skills/video-editor/SKILL.md with YAML frontmatter (name: video-editor, and a description saying it applies whenever I ask for a talking-head edit in this project), followed by the rules below written as clear numbered instructions.
Rules to encode:
1. Before any cut, extract a frame every [SECONDS_BETWEEN_FRAMES] seconds into a contact sheet and review it.
2. Transcribe locally with word- or token-level timestamps (use Remotion's recommended Whisper route). Seed the transcription with these spellings: [BRAND_AND_TOOL_NAMES].
3. Remove only silences longer than [MIN_SILENCE_SECONDS] seconds and obvious false starts. Never delete, reorder or reword anything I actually said. Where I repeat a line, keep my final complete take.
4. Optional clean-up pass with FFmpeg: modest brightness and sharpening, noise reduction, loudness normalised to [TARGET_LUFS] LUFS. Save it as a separate base file.
5. Captions: one word at a time, placed just below my mouth. Music bed at least [MUSIC_DB_BELOW_VOICE] dB under my voice. Sound effects only where I am silent.
6. Safe zones on a 1080x1920 frame: no text in the top [TOP_PX]px, bottom [BOTTOM_PX]px or right [RIGHT_PX]px.
7. Full-screen B-roll for no more than [MAX_BROLL_PERCENT]% of the runtime; when it covers me, keep me visible in a small corner circle.
8. Render stills of key moments and check them before any full render.
9. After each full render, transcribe the output and compare it word for word with the original transcript. Report any mismatch and fix it before calling the edit done.
10. Every render gets a new versioned filename. Never overwrite an earlier output.
If any placeholder is still in square brackets, ask me for the value instead of inventing one. Before saving, re-read the file and confirm each of the ten rules is present and unambiguous. Then show me the full file.
Fill in: your spelling list, silence threshold, loudness target, safe-zone pixels and B-roll limit. Measure safe zones against a screenshot of the app you post to.
Put your clip in the project's public folder (Remotion serves static files from there) as public/talking-head.mp4. Then paste:
Using my video-editor skill and the Remotion skills installed in this project, build a first-pass edit of public/talking-head.mp4.
Context: this is a vertical short for [PLATFORM]. Keep this pass deliberately small so I can check it.
Do, in order:
1. Create a composition sized 1080x1920 at 30fps, with its duration matched to the clip.
2. Play my clip full-frame.
3. Add word-by-word captions synced to my speech, positioned just below my mouth and inside the safe zones.
4. Show this hook as large on-screen text for the first 3 seconds: "[YOUR_HOOK]".
5. End with a card reading "Comment [KEYWORD]".
Do not add B-roll, music or sound effects yet. If the clip is missing, the wrong shape, or a value above is still in square brackets, stop and ask me. When finished, list the files you created or changed, tell me the composition ID, and check one rendered still from each section before telling me it is ready.
Fill in: platform, hook text and the comment keyword.
Start the preview in a second terminal:
npx remotion studio
(npm run dev in a fresh project does the same.)
Ask for changes in short, separate requests and look after each one. For example:
Increase the caption size by about [PERCENT]% and colour only the emphasised words in [HEX_COLOUR]. Keep every caption inside the safe zones. Tell me which file you changed.
Raise the hook text so it sits clear of my face in every frame of the first 3 seconds. Render a still at frame [FRAME_NUMBER] so I can check it.
Add a short whoosh sound as each new card enters, only where I am not speaking. If you don't have a licensed sound file in public/, ask me for one rather than downloading anything.
Fill in: the size change, your brand colour, a frame to check and a sound file you have the rights to use.
To check a single frame yourself, npx remotion still renders one frame to the out folder; add --frame=<number> to choose which.
npx remotion render
With no arguments, Remotion asks which composition to render and writes the file to the out folder. To skip the questions, pass the entry point, composition ID and output path, for example npx remotion render src/index.ts MyComp out/edit-v2.mp4, using the names Claude Code told you at the end of Step 3.
out with their own filenames.@remotion/install-whisper-cpp) with token-level timestamps, and a caption helper in @remotion/captions. Start there.public yourself.