Make a video with Claude Code and HyperFrames: one real run, step by step

Updated on

This guide shows how a Claude Code video gets made, using one real run. On 2026-10-23 we asked Claude Code, running Claude Opus 5.5, to make a 30-second narrated explainer with HyperFrames. Below is every step, the errors it hit and how long each one took.

The video we made

Why a Grok Bot routine can run and do nothing · 30.6 s, 1920×1080, made in the run below. The app screens are illustrations, not the real Grok Bot app.

The topic is one fact from xAI's docs: when a routine started without you needs your approval, the request expires after about 10 minutes and that step does not run (approvals and privacy). We picked it because it is small, true and easy to check, and it ties to our Grok Bot routines guide.

What we ran it on

Test environment, 2026-10-23
MachineMac mini, Apple M6, 16 GB, macOS 27.0.1
AgentClaude Code 2.1.295, model claude-opus-5-5, effort high
RendererHyperFrames CLI 0.8.188, Node.js 22.23.3, FFmpeg 9.0.2
Voiceedge-tts, en-US-AndrewNeural at -5% speed
Music"Deep Urban" from Mixkit, free license

Claude Code's opus alias and its default model on Pro, Max, Team, Enterprise and the API both point to Opus 5.5, which needs Claude Code 2.1.280 or later (model configuration). Run claude update if yours is older.

Step by step

Install the HyperFrames skills

Give Claude Code the HyperFrames skills, either as the official plugin or with the HyperFrames CLI. You need Node.js 22 or later and FFmpeg. The skills are what teach it the HyperFrames rules. The official README gives the plugin route:

claude plugin marketplace add heygen-com/hyperframes
claude plugin install hyperframes@hyperframes

We refreshed ours with the CLI instead, which took 38 seconds:

npx hyperframes@0.8.188 skills update

One thing to know: in 0.8.188 the separate skills (core, animation, creative, audio, keyframes, studio, general-video) were folded into one hyperframes skill, and the update removed the old ones. If you have your own workflow that calls those old skill names, back them up first. We restored ours from a copy.

Scaffold a project

Run the init command below to create a blank 1920 by 1080 project with the rules file for the agent.

HYPERFRAMES_SKIP_SKILLS=1 npx hyperframes@0.8.188 init my-video \
  --example blank --resolution landscape --non-interactive

This took 2 seconds. init also syncs skills from GitHub; the environment variable turns that off so it does not undo the step above.

Write the brief and the script

Tell the agent the one thing the video must say, the source it comes from, the length and the format. We gave Claude Code one sentence of intent, the source URL, about 30 seconds, 16:9, and "no questions". Following the skill, it wrote:

Add voice and music

HyperFrames does not need a voice. We used edge-tts through our own small script, which also saved each word's start and end time. The four clips took 11 seconds and came to 5.6, 5.8, 5.6 and 8.3 seconds. The word times drive both the captions and the moment each thing appears on screen.

The music bed is a 30-second cut of a Mixkit track at a low level under the voice.

Build the scenes

Claude wrote one HTML file per scene, plus one for the captions:

Each scene builds one paused GSAP timeline, and HyperFrames seeks it frame by frame, so every render comes out the same.

Run check until it passes

Run the checker and fix what it reports until it passes.

npx hyperframes check --json

The first run failed. What it found, and what we changed:

  1. Overlapping audio. The four voice clips had no data-duration, so each was assumed to run to the end of the video. We added each clip's length.
  2. Text hidden under another element. The bedside clock's digits sat under the phone. We made the clock smaller and moved the phone beside it.
  3. Two text blocks overlapping. The EXPIRED stamp covers the card on purpose, so we marked it with data-layout-allow-overlap.
  4. Closing lines too short to read. The last line and the source line were not on screen long enough for their word count. We held the end card about a second longer.

It passed after three rounds.

Look at the frames

npx hyperframes snapshot --review

This writes contact sheets of every scene, every cut and a phone-width view. They showed one problem check had not flagged: the captions covered the phone's Allow once button. We shortened the phone and moved the captions down.

Frame at 15.2 seconds: an approval card on an illustrated phone with a red EXPIRED stamp, the time 4:17 on the left
15.2 s: the request has expired. The caption now sits below the phone.

Render

npx hyperframes render --output out/approval-explainer.mp4

918 frames rendered in 38 seconds. The file is 30.6 seconds, 1920×1080 at 30 fps, H.264 with AAC audio, 3.0 MB. Its integrated loudness measured -17.1 LUFS with FFmpeg's ebur128 filter.

How long it took

From the run log, Taipei time, 2026-10-23
StepFinishedTook
Install skills23:45:4138 s
Scaffold23:47:022 s
Brief, storylines, script23:47:16—
Voice23:47:3211 s
Music23:47:434 s
Scenes written, first check23:50:1816 s for the check
Check passes23:51:313 rounds
Render23:52:5441 s including setup

Before the first command, Claude also read the skill's reference files on story, spec, sound, review and format. That reading is not in the table.

What we would watch out for

Limits of this test

FAQ

Does Claude Opus 5.5 generate the video itself?

No. Claude writes HTML, CSS and animation code, and HyperFrames renders that code to an MP4 frame by frame. The pictures are whatever the code draws, so it suits motion graphics, diagrams, captions and UI-style scenes, not filmed footage.

How long did the whole run take?

Our run log puts the project scaffold at 23:47:02 and the finished render at 23:52:54, Taipei time, so about six minutes. Installing the skills took another 38 seconds before that. This was one run of one short video.

Do I need a voice or music service?

No. A video can be silent or music only. We used edge-tts for the voice and a free Mixkit track for music. edge-tts is an unofficial client for Microsoft's online voices, so check the terms before you use it commercially.

Is HyperFrames free to use commercially?

Its repository is Apache 2.0 and says there are no per-render fees or commercial-use thresholds. Remotion, the other common choice, is free for individuals and companies of up to three employees and needs a company license above that.

Related on bests.one

Sources: HyperFrames on GitHub, Claude Code model configuration, Grok Bot approvals and privacy (the video's source), Mixkit Stock Music Free License. Checked on 2026-10-23.