How I make my shorts
with Claude Code
Claude Code runs my whole shorts pipeline: it finds a proven hook, writes the script, writes every graphic as code and runs the edit. HeyGen turns the script into my AI twin, in my own cloned voice. Here is every tool, what it does, and what it costs.
The pipeline at a glance
Six steps, always in this order. Claude Code runs every one of them, except the face and the voice: those come from HeyGen.
- 01TopicFind what's trending this week
- 02HookKeep only hooks proven at 3x
- 03ScriptWrite it, then I say "locked"
- 04AI twinHeyGen voices my twin
- 05GraphicsWritten as code, rendered by HyperFrames
- 06ChecksLength and loudness, then I watch it
Claude Code
Claude Code is the tool that runs everything else. For each short it researches the topic, measures which hooks are proven, writes the script and writes every graphic as code. It also handles the captions, the music and every cut, and at the end it checks the length and the loudness.
It works through a set of small tools I built with it, one for each step, so every short goes through the same steps and the same checks. That's what makes it repeatable instead of a one-off.
- MADE BY
- Anthropic
- COST
- Included in my Claude Max 5x plan: $100 per month, on claude.com/pricing
- OFFICIAL PAGE
- claude.com/product/claude-code
HeyGen
HeyGen makes the face and the voice. It holds my avatar and a clone of my own voice, and turns each locked script into a video of my AI twin saying it.
Claude Code sends HeyGen the locked script and downloads the finished video. It never makes the face or the voice itself. HeyGen charges for every second of video, so the script is locked before it gets there, and a second render needs my OK.
- MADE BY
- HeyGen
- COST
- Paid per second of video. What this short really cost is in section 10.
- TRY HEYGEN
- heygen.com This is my affiliate link: if you sign up through it, I may earn a commission.
HyperFrames
HyperFrames, made by HeyGen, turns web pages into video. Claude Code writes every graphic you see as a small HTML page: the title card, the lists, the ending card. HyperFrames then renders the whole short, my AI twin, the captions and the graphics, into one video.
Because the graphics are code, Claude Code can write them, change one word and render again, and they look the same in every short. Nobody drags anything around a timeline.
- MADE BY
- HeyGen
- COST
- Free and open source (Apache-2.0 licence)
- GITHUB STARS
- 59,482 (read October 9, 2026)
- OFFICIAL PAGE
- github.com/heygen-com/hyperframes
Whisper
Whisper, made by OpenAI, listens to the HeyGen video and writes down every word with the moment it starts and ends. That's what makes each caption land on the word as it's spoken, and lets a graphic start on an exact phrase.
It runs on my own computer, so it's free and the audio never leaves it. Claude Code then reads the transcript and fixes the tool names Whisper mishears ("Claude Code" sometimes comes out as "cloud code").
- MADE BY
- OpenAI
- COST
- Free and open source, runs on my own computer
- OFFICIAL PAGE
- github.com/openai/whisper
FFmpeg
FFmpeg is the audio and video workhorse under everything. It sets every short to the same loudness (−14 LUFS), fades out the last moment, and powers the checks at the end.
Those checks run on every finished short before I see it: is it the right length, and is it at the right loudness. If either fails, Claude Code fixes it and renders again.
- COST
- Free and open source
- OFFICIAL PAGE
- ffmpeg.org
yt-dlp
yt-dlp reads public information from YouTube: view counts and captions. Claude Code uses it to prove a hook works before I use it. A hook only counts when its video got at least 3 times its creator's median views. Comparing a video with its own creator's median means a big channel's normal views don't count as proof.
It also reads the first sentence as it was actually spoken, so the hook I adapt is the real one, not the title. This short's opening line is adapted from Christian Peverelli's "I Fully Automated My Video Editing Using Claude Code", which had 206,002 views against that channel's median of 11,500: 17.9 times.
- COST
- Free and open source
- OFFICIAL PAGE
- github.com/yt-dlp/yt-dlp
Music
Two kinds of music go under my shorts: songs I picked myself, and a library of eight background tracks I generated with Suno V6 through Kie.ai.
A small tool picks the track for each short and logs every play, so the tracks rotate instead of repeating. This short uses "Shadow of the Night", a song I own.
- COST
- The whole library cost 48 Kie.ai credits, once, on October 4, 2026. My own song costs nothing to use.
- OFFICIAL PAGE
- kie.ai
Two stops I never skip
Claude Code does the work, but two calls stay mine. Nothing is voiced until I've read the script and typed "locked", because once HeyGen has voiced it, changing a line means paying for a new render. And nothing posts until I've watched the finished short, with the sound on.
What this short cost
Every amount below is copied from the cost log the pipeline keeps. No estimates.
| ITEM | COST | NOTE |
|---|---|---|
| HeyGen: my AI twin | 17 HeyGen plan credits | 46.94 seconds of video, on the Creator plan; cut to 37.93 seconds in the edit |
| Music: "Shadow of the Night" | $0 | My own song |
| HyperFrames, Whisper, FFmpeg, yt-dlp | $0 | Free and open source |
| Claude Code | Included in my plan | See section 02 |
Sources
- HyperFrames stars (59,482) and licence (Apache-2.0): the GitHub API, api.github.com/repos/heygen-com/hyperframes, read October 9, 2026 at 11:47 UTC.
- The hook numbers (206,002 views, a median of 11,500, 17.9 times): view counts read from YouTube on October 9, 2026. The median is of the channel's 30 newest long videos.
- The 3x hook rule and the loudness (−14 LUFS): the settings in my own pipeline.
- The music library (eight tracks, 48 Kie.ai credits): my cost log, October 4, 2026.
- The Claude plan price: claude.com/pricing, read October 10, 2026.
- This short's costs: my cost log, written on October 10, 2026 and checked against my HeyGen credit balance before and after the render (610, then 593). The 37.93-second length: my pipeline's final check.
← BACK TO SITE