Claude Code edits a video: what 37 seconds became 19, and where it stops
A free HyperFrames skill, local Whisper and FFmpeg turned a rambling talking-head take into a titled, captioned clip. What worked, what it cost, and what it is not.
# Claude Code edits a video: what 37 seconds became 19, and where it stops
A free HyperFrames skill, local Whisper and FFmpeg turned a rambling talking-head take into a titled, captioned clip. What worked, what it cost, and what it is not.
What the video claimed
Two videos made the same claim, so one test covered both.
- Hyperframes Claude Code video editing — "an AI-edited video with motion graphics and clean cuts, put together by Claude Code using the free hyperframes skill."
- Install AI video editor skill — Claude installs Node.js, FFmpeg, Whisper and HeyGen's HyperFrames skills, and becomes a "Video Editor" for your footage.
The second one is the accurate description of the setup. The first one is where the hype goes.
What HyperFrames actually is
heygen-com/hyperframes, Apache-2.0. A video is an HTML page whose elements are timed against a GSAP timeline. A headless Chrome captures it frame by frame; FFmpeg encodes the frames. It ships 21 Claude Code skills — talking-head-recut, embedded-captions, motion-graphics, product-launch-video and the rest — that teach Claude how to write those pages. The command line is npx hyperframes, with lint, render, snapshot, preview and transcribe.
That is the whole trick, and it is a good one: the edit is a text file, so it lives in git and a change is a line rather than a timeline.
What we set up
One Docker image, bookmark-lab/t001-video-editor:0.1: Node 22, FFmpeg 5.1, Chromium, espeak-ng, faster-whisper 1.1.1 on CPU, and hyperframes 0.8.162. Telemetry off (HYPERFRAMES_NO_TELEMETRY=1, DO_NOT_TRACK=1). The skills are fetched from GitHub at a pinned commit into a git-ignored cache; nothing from upstream is committed.
Two install checks earned their keep. The hyperframes npm package has no install script of its own. Its transcribe command would clone and compile whisper.cpp on first use, so we used faster-whisper instead — the same Whisper models, pip-installed and CPU-only.
What we measured
Source: a synthetic 37-second talking head, robot voice, reading three tips with long pauses and "Um. So." / "Uh," fillers. No real media.
| Step | Result |
|---|---|
| 1. Whisper transcript with word timings | done |
| 2. Cut: gaps over 0.5 s and filler words dropped | 37.0 s → 18.9 s, 7 pieces kept, 3 fillers removed |
| 3. Re-transcribe the cut | done |
| 4. Claude reads the transcript, fixes two mis-hearings ("iTunes" → "AI tools"), plans six cards, writes the composition | lower third, kinetic title, three numbered tip cards in a split layout, end card with picture-in-picture, sentence captions |
5. hyperframes lint | 0 errors |
6. hyperframes render | 1920x1080, 30 fps, 18.9 s, 3.4 MB, about 45 s on a CPU |
The cut is our own small script, not part of HyperFrames — six unit tests. We ran the whole thing again with a natural synthetic voice later: 30.3 s in, 15.8 s out, six pieces kept, three fillers removed, 3.0 MB.
What worked
- The whole loop is free and local. No account, no API key, no upload, nothing to leak.
- The skill is good. Its instructions produced a clean, consistent design on the first render, and the linter caught a real problem: animating
leftandtopstutters in frame capture, so the motion has to be transforms. Claude had to notice and fix that by itself, which is the kind of thing a linter is for. - The edit is reproducible. The same HTML gives the same video, so a change is one line and a re-render, and the whole composition is reviewable in a diff.
What did not, or needs care
- HyperFrames does not cut. It overlays graphics on a clip. The "clean cuts" in the original video come from scripting FFmpeg, which is what we did.
- Its own transcribe step wants a compiler. We swapped in faster-whisper.
- Its own example animates the motion its own linter rejects. Claude can fix it; it is not free.
- CPU rendering is the bottleneck. 45 s for 19 s of 1080p. Long-form means a long wait.
- We only tested a synthetic voice. Real speech, background music and jump cuts in the middle of a gesture will all behave differently, and Whisper is the component that will break first.
What we would use it for
- Short explainers and promos from a screen recording or one talking-head take: dead air out, titles and numbered points in.
- As a building block: a system that takes a bookmark and produces its own demo video could render it this way.
- Faceless-channel videos, without paying an editor.
The verdict
7 / 10. Worth it, with one correction to the hype. The video makes it sound as though Claude "edits video". What happens is closer to: Claude writes the video as a web page, and HyperFrames films the page.
That is better than the phrase suggests for titles, captions, lower thirds, numbered points and branded intros, and it is repeatable, which no drag-and-drop editor is. It is not a timeline editor: choosing the best take and cutting B-roll still needs scripting, and the quality depends on Claude following the skill carefully.
For a one-minute promo or a tips video, it is genuinely useful today. The next thing we would try is one of our own screen recordings.
Cost and accounts
£0. The coding agent is the editor, and we already had a subscription for it. The skills mention optional extras we did not use: HeyGen avatars, Google Gemini (both need keys) and AI music (a large local model).