I don't edit my videos anymore. Claude does, with HyperFrames, HeyGen's free, open-source tool that renders a video from a web page. Claude writes the captions, cards and camera moves as code, HyperFrames turns it into an MP4.
The part the other videos skip: a first cut from AI looks fine on a laptop and wrong on a phone. Tiny text. A caption parked on your chin. A frame that's half empty. So the second half of this guide is a critic: Claude pulls frames from the cut, checks them against a list, and sends the edit back until it passes. You still watch the final. You just watch fewer bad ones.
The easy way: let Claude set it up with you
mkdir -p ~/video-edits
cd ~/video-edits
claudeHi Claude. Please be my patient setup helper. I don't code: one step at a time, tell me exactly what to type, and wait for me.
Goal: you edit my videos with HyperFrames, then check your own cut with a critic pass before I watch it. Follow this guide; its manual-way sections are the source of truth for every command and file:
https://receiptsgroup.com/guides/claude-edits-videos
1. Check I have Node.js 22+, FFmpeg and Chrome (npx hyperframes doctor). Help me install what's missing.
2. Add the HyperFrames plugin to Claude Code (I'll run the plugin commands myself; show me them).
3. Save prompts/critic.md exactly from the guide.
4. First edit: I'll put a clip in clips/. Start a HyperFrames project from it, design the edit I describe, check it, render it to out/.
5. Run the critic on the render. If it fails, fix only what it lists, render again, and repeat until PASS or three rounds, then show me the report.
Rules: keep my clip and its audio exactly as they are. Never upload or post anything. Ask before installing anything system-wide.How it works
This is the manual way: every command and file. Claude follows it too.
- 1Your clipYou: a talking video, an avatar clip, a screen recording→ clips/<name>.mp4
- 2The projectnpx hyperframes init: your clip placed, speech transcribed→ edit/<name>/
- 3The editClaude Code + the HyperFrames skills: captions, cards, camera moves→ edit/<name>/index.html
- 4The renderHyperFrames, on your machine→ out/<name>.mp4
- 5The criticffmpeg pulls frames; Claude checks each one against prompts/critic.md→ out/<name>.critic.txt: PASS or FAIL
- 6Your watchYou, with sound, on your phone→ the yes
Words you'll see
- HyperFrames: writes a video as a web page (HTML, CSS, JavaScript) and renders it to MP4. Free and open source, from HeyGen.
- Plugin / skills: instructions that teach Claude Code how to build a valid HyperFrames project.
- Render: turning the project into an actual MP4 file.
- 9:16: vertical video, 1080 wide by 1920 tall. Reels, TikTok, Shorts.
Setup, step by step
Install Node.js, FFmpeg and Claude Code
HyperFrames needs Node.js 22 or newer and FFmpeg, and renders through Chrome. Check what you already have first.
node --version # want v22 or higher ffmpeg -version # prints a version banner claude --version # if missing: curl -fsSL https://claude.ai/install.sh | bashAdd the HyperFrames plugin to Claude Code
The plugin adds HeyGen's HyperFrames skills to Claude Code. The first
npxrun downloads the HyperFrames tool, so give it a minute.claude plugin marketplace add heygen-com/hyperframes claude plugin install hyperframes@hyperframes claude plugin details hyperframes # lists the skills it added npx hyperframes doctor # checks Node.js, FFmpeg and ChromePermissionsA plugin adds instructions to Claude Code from HeyGen's GitHub marketplace. It doesn't touch your accounts. Third-party marketplaces don't auto-update by default; you can turn that on under /plugin.Make the folders
mkdir -p ~/video-edits/{clips,edit,out,prompts} cd ~/video-edits
The edit
Start a project from your clip
This makes a 1080×1920 project with your clip placed and its speech transcribed on your machine. The first run sets up the transcriber and can take a while. Nothing is designed yet.
cp ~/Downloads/my-clip.mp4 clips/first.mp4 npx hyperframes init edit/first --video clips/first.mp4 --resolution portrait --non-interactiveAsk for the edit in plain English
Start
claudein~/video-editsand describe what you want. Be specific about what goes where; “make it pop” gets you confetti.Using /hyperframes:hyperframes, design the edit for edit/first (my clip is placed; keep it and its audio exactly as they are). - Captions: big, 3-5 words at a time, timed to my words, low in the frame but clear of my mouth and chin. - A title card for the first 2 seconds: <your 3-6 word hook>. - One graphic where I say <a phrase from your clip>: <what it should show>. - Small label "AI-edited" in a corner the whole time. Run npx hyperframes check edit/first until it's clean, then render to out/first.mp4.Look at it yourself once
Before the critic, watch the first render on your phone. You're calibrating: the critic below catches what you'd catch, but only if its list matches what you care about.
The critic: send bad cuts back
Mine measures every scene with code and fails the cut for text too small to read on a phone, a head too tiny in the frame, big empty areas, or graphics running into the captions. This starter version does the same job with Claude's eyes: pull a frame every two seconds, check each against a list, answer PASS or FAIL. It's surprisingly good at spotting the caption on your chin before your audience does.
You are a video critic with one job: find what's wrong with a cut, frame by frame. You never fix anything.
You're given a folder of frames (one every 2 seconds, named by time) from a 9:16 video meant for phones.
Look at every frame and check:
1. Text size: any word smaller than about 1/40 of the frame height (roughly 48 px on a 1920-tall frame) fails.
2. Captions on the face: a caption touching the mouth, chin or eyes fails.
3. Empty frame: more than about a third of the frame with nothing in it fails.
4. Walls of text: more than 9 words on screen at once fails (captions included).
5. Off-screen: text cut off at an edge, or sitting in the top or bottom 10% where apps put their buttons, fails.
6. Label: if the video uses an AI avatar or AI edit label, it's visible.
7. Match: a graphic that doesn't match what's being said at that moment fails (use the transcript if there is one).
Answer in exactly this format:
PASS
or
FAIL
- <time>: <check number> <what's wrong, quoted if it's text> -> <the fix, one line>
If you're not sure, it passes. Never suggest new ideas, only problems.mkdir -p out/first-frames
ffmpeg -v error -i out/first.mp4 -vf fps=1/2 out/first-frames/t%03d.png
claude -p "Follow prompts/critic.md. Frames: out/first-frames/ (frame N is at about (N-1)*2 seconds). Transcript: edit/first/transcript.json if it exists." --permission-mode dontAsk --allowedTools "Read,Glob" > out/first.critic.txt
cat out/first.critic.txtGood: PASS, or a FAIL list with times you can check yourself. Then let Claude fix exactly that list:
Read out/first.critic.txt. Using /hyperframes:hyperframes, fix only what it lists in edit/first, change nothing else, run npx hyperframes check edit/first, and render to out/first.mp4 again. Then pull the frames and run the critic again (same commands as before). Stop at PASS or after three rounds, and show me the last report.Real use: prompts for real jobs
Using /hyperframes:hyperframes, in edit/first put clips/screen.mp4 in the top half and me in the bottom half from "<a phrase>" to "<a later phrase>", full frame me before and after. Captions on the seam. Check, render, then run the critic.In edit/first, punch in (about 1.3x, a quick ease) on these phrases: "<phrase 1>", "<phrase 2>". Hard cuts back out. Nothing else changes. Check, render, critic.In edit/first: the first spoken word should start within 0.3 seconds (trim any silence at the start, in sync), the title card should be on the very first frame, and something should change on screen within the first second. Check, render, critic.Here's what I didn't like in the last video: <your notes>. Turn each one into a checkable line and add it to prompts/critic.md under the existing list. Show me the change before you save it.What it costs
HyperFrames is free and renders on your own machine. Claude Code needs a paid Claude plan: Pro is $20 a month at list price (checked 2026-10-04 on Claude's pricing page). Every edit and critic run counts toward your plan's usage limits; checking frames reads images, which is heavier than text, so a long video with frames every second uses more. Every two seconds is plenty for a short.
When it breaks
npx hyperframes doctor says Node.js is too old
hyperframes check fails on the bare project
Claude changed your clip or your audio
The critic passes something you can see is wrong
prompts/critic.md that describes it in a way you could check with a ruler.The critic fails the same thing every round
Captions out of sync
That's the edit and the critic
Claude cuts it, the critic sends it back, and you only watch the versions that already passed the boring checks. Grow the critic every time a video annoys you.
Want the whole chain? One idea to a finished, scheduled video puts this edit between your AI avatar and five apps.
Checked on Oct 6, 2026 against
Every claim about a third-party tool in this guide (plans, prices, menu paths, commands, limits) was checked against these official pages on Oct 6, 2026. These screens change often: if something looks different, trust the page over this guide.
- HyperFrames on GitHubOpen source from HeyGen; writes video as HTML and renders it.
- HyperFrames: QuickstartRequirements (Node.js 22+, FFmpeg) and the first project.
- HyperFrames: Install the plugin
claude plugin marketplace add heygen-com/hyperframesandclaude plugin install. - HyperFrames: CLI reference
init,check,doctor, render. - FFmpeg: DownloadBuilds for macOS, Windows and Linux.
- Claude Code: Run Claude Code programmatically
claude -pwith--allowedToolsfor the critic run. - Claude: Plans and pricingPro at $20 a month billed monthly (checked 2026-10-04).
