OpenVideoHarness GitHub

A video harness for Claude Code and Codex给 Claude Code 和 Codex 用的视频工作台

OpenVideo
Harness

Not more tools. Know-how.不缺工具,缺门道。

Ask for a film in one sentence. The agent writes the code that renders it, from the idea, storyboard, script and style to the sound and the final cut. It checks its own work, and stops three times for your sign-off.一句话提需求,agent 写代码渲染成片:立意、分镜、脚本、风格、声音,一直到成片。它自己检查自己,并在三个节点停下来,等你拍板。

  • MIT · open source开源
  • 9 video types9 类视频
  • 32 styles32 种风格
  • 5 engines5 个引擎

Every star is a film: the 32 style samples, in orbit每颗星都是一支片子:32 种风格的样片

01Get started快速开始

One line to install. One sentence to ask.一行命令安装,一句话提需求。

  1. Install (macOS or Linux)安装(macOS 或 Linux)

    $ curl -fsSL https://raw.githubusercontent.com/ZLHad/OpenVideoHarness/main/install.sh | bash
  2. Open Claude Code in it进入目录,打开 Claude Code

    $ cd ~/OpenVideoHarness && claude
  3. Ask for a film一句话提需求

    “Make a 30-second vertical science short: why does a low-orbit satellite's signal change pitch? English voiceover, English and Chinese subtitles.”
    “做一个 30 秒的竖屏科普:为什么低轨卫星的信号会‘变调’。中文配音,中英双语字幕。”

Needs macOS or Linux, Node.js 22+, Chrome, FFmpeg, Python 3 with uv, and Claude Code or Codex. About 650 MB on disk, with 37 read-only reference repos. Step by step: the wiki's Getting Started; behind a slow network, China network.需要 macOS 或 Linux、Node.js ≥ 22、Chrome、FFmpeg、Python 3 和 uv,以及 Claude Code 或 Codex。连同 37 个只读的参考仓库,约占 650 MB。一步步的说明见 wiki 的快速开始;网络慢时看国内网络。

What happens next接下来

  1. ① Directions and outline① 创意方向和大纲Two or three ideas, each with one frame. You pick one.两三个创意方向,各配一帧画面,你选一个。
  2. ② Storyboard② 分镜A keyframe for every shot.每个镜头一张关键帧。
  3. ③ First draft③ 初版With the two or three things it likes least about it.附上它自己最不满意的两三处。
  4. Final render出成片Only after you say yes.你点了头才出。
quickno stops · 10–30 min不停 · 10–30 分钟
standardthree stops · 1–2 h停三次 · 1–2 小时
studiopolished over rounds · 3 h+多轮打磨 · 3 小时以上

Times are for a 30-second film. Say "quick" and it runs straight through.时间按 30 秒的片子算。说"快速出一版",它就一口气做完。

02Why it exists为什么做它

One great film is easy. Every time is hard.做出一支好片不难,每次都好才难。

Claude Opus 5.5 writes video as code, and it has taste: in motion, in type, in pacing. The community has shared hundreds of these films; one collection alone holds 389, with their prompts.Claude Opus 5.5 能用代码写视频,而且有审美:运动、字体、节奏都在线。社区里已经有几百支这样的片子,光一个合集就收了 389 支,连同提示词。

But the same model can be brilliant once, then lose the pacing, glow everything and invent numbers the next time. Engines like HyperFrames, Manim and Blender turn code into frames. They don't choose the idea, the storyboard, the script or the style, and can't tell whether the film is any good.可同一个模型,这次惊艳,下次就节奏乱、满屏发光、数字乱编。HyperFrames、Manim、Blender 这些引擎负责把代码变成画面;立意、分镜、脚本、风格它们不管,片子好不好也判断不了。

OpenVideoHarness is the missing layer: the process and the checks, from idea to final cut, written as docs an agent follows. It stays light on purpose: a few hard floors, and defaults that a good idea can overrule.OpenVideoHarness 补的就是这一层:从立意到成片的流程和检查,写成 agent 能照着做的文档。它故意写得很轻:几条底线不让步,其余都是默认,好点子可以反着来。

You你one sentence · three sign-offs一句话 · 拍板三次
Claude Codeor Codex · writes the code, with taste或 Codex · 写代码,有审美
OpenVideoHarnessthe know-how门道
  1. Idea立意
  2. Storyboard分镜
  3. Script脚本
  4. Style风格
  5. Sound声音
  6. Checks自查
  7. Final cut成片

drives驱动 ↓

Engines引擎turn code into frames把代码变成画面
HyperFramescanvas + Three.jsp5.brushManimBlender

03What it adds它补上了什么

An engine renders. This decides.引擎只管渲染,这里拿主意。

01

Idea first先想立意

Two or three concept cards, each with one frame and a hook, before a line of code. It names what every other video on the topic looks like, and steers away.写代码之前,先出两三张立意卡,每张配一帧画面和一个钩子。它会先说出同题视频都长什么样,然后避开。

playbook/12-ideation.md
02

Nine workflows九类工作流

Science shorts, 3Blue1Brown-style explainers, launch films, music videos, data stories, paper talks, hand-drawn shorts, meme edits, and edits of your own footage.科普短视频、3Blue1Brown 风格讲解、产品发布片、MV、数据故事、论文讲解、手绘短片、梗图快剪,还有剪你自己录的素材。

video-types/
03

You decide, three times三次由你拍板

Direction, storyboard, first draft. Name anything else you want to own: the hook, the style, the voice, the cover. Or say "quick" and it runs straight through.创意方向、分镜、初版。还想亲自定别的,点名就行:钩子、风格、配音、封面。说"快速出一版",它就一口气做完。

CLAUDE.md · director mode
04

It checks its own work自己检查自己

Claude can't watch video. So it reads contact sheets against a 20-point checklist, measures the audio, and a second Claude with a fresh context scores the draft on 8 points.Claude 看不了视频,所以它看联系表、对照 20 条清单改,用数据查声音;再由一个全新上下文的 Claude 按 8 项给初版打分。

templates/TASTE_CHECKLIST.md
05

Sound, as code声音也是代码

Chinese and English voiceover, two-language subtitles, a score and 21 sound effects written as code, every cue on its frame, mixed to −14 LUFS.中英配音、双语字幕,配乐和 21 个音效都用代码写,每个卡点落在它那一帧,混音到 −14 LUFS。

bin/vh tts · music · sfx · mix · qa
06

Every frame is f(t)每一帧都是 f(t)

No randomness, no clock, no state carried between frames. Same t, same pixels, so any frame renders alone, in parallel, in any order, and can be checked. Drag the slider, then render the frame again.不用随机数、不读时钟、帧与帧之间不留状态。同一个 t 永远是同一帧,所以任何一帧都能单独渲染、并行渲染、乱序渲染,也能抽查。拖动滑块,再把这一帧重渲一遍试试。

CLAUDE.md · hard rule 1
t = 0.00 s · frame 01 sine wave
07

32 styles, 3D and Blender32 种风格,还有 3D

A style library to borrow from, each with a rendered sample. 3D models go in a Three.js layer under the 2D; when a shot needs real glass or a million stars, Claude drives Blender from Python.风格库可以借来用,每种都带实际渲染的样片。3D 模型放进 2D 下面的 Three.js 层;要真玻璃、上百万颗星时,Claude 写 Python 驱动 Blender。

styles/ · engines/blender.md

04How it works工作原理

A router, a library of know-how, one CLI.一个路由,一套门道,一个命令行。

You你one sentence, in English or Chinese一句话,中文英文都行
Claude Codeor Codex或 Codex
CLAUDE.mdthe router: picks the video type, sets the hard rules, the effort level and who decides what路由:判断视频类型,定下硬规则、档位,以及哪些事由谁拍板

Reads读 know-how, written as markdown写成 markdown 的门道

video-types/9 workflows9 类工作流
playbook/13 know-how docs13 篇通用知识
styles/32 styles32 种风格
recipes/71 recipes, 24 shot cards71 张配方、24 张镜头卡
templates/11 project files11 个项目模板
cases/ showcase/14 case studies, 5 films14 个案例、5 支样片

Runs跑 one CLI, 65 commands, 5 engines一个命令行,65 条命令,5 个引擎

bin/vhnew · edit · render · check · gate · desk · footage · image · tts · music
HyperFramescanvas + Three.jsp5.brushManimBlender
Each film is a project folder:每支片子是一个项目目录: projects/<date>-<slug>/you decide你拍板Claude checks itselfClaude 自查a request, moving through一条需求走过的路
  1. Idea立意2–3 concept cards2–3 张立意卡
  2. ① You① 你pick one选一张
  3. Storyboard分镜what to read, when看懂什么、何时
  4. ② You② 你keyframes关键帧
  5. Sound first声音先行sets the timing定下时长
  6. Code → frames代码 → 画面f(t)
  7. Self-check ↺自查 ↺sheets · audio · reviewer联系表 · 声音 · 评审
  8. ③ You③ 你first draft初版
  9. Final cut成片
  10. LESSONS.md ↩back into the docs写回文档

05Capability map能力地图

From idea to delivery, a tool at every step.从立意到交付,每一步都有工具。

One CLI, bin/vh, with 65 commands. Each name below is one; any command takes -h, and bin/vh commands lists them by stage.一个命令行 bin/vh,65 条命令。下面每个名字都是其中一条;每条加 -h 看用法,bin/vh commands 按阶段列出全部。

01Think想

  • knowwhat the repo already knows about a few words: a recipe, a component, a style, a case仓库里关于几个词已经有什么:配方、组件、风格、案例
  • scouta topic on the platforms before you pick it, and your film's numbers after; public interfaces, no login选题前看题目在各平台的样子,发出去后看片子的数据;只用公开接口,不登录
  • ref · breakdownreferences on record; a reference film taken apart, its cuts against its beats参考记进台账;拆一支参考片,看切点落在节拍的哪里
  • conceptseeded extras for the concept cards at gate ①关卡 ① 立意卡的可选配件

02Gather料

  • footagereal footage from Internet Archive, Wikimedia Commons and NASA: only the seconds you need, its licence on record从 Internet Archive、Wikimedia Commons、NASA 取真实影像:只取要用的几秒,许可记下来
  • image genpictures from Nano Banana or Codex: an estimate first, each paid call held against the budget用 Nano Banana 或 Codex 生成图:先估价,每次付费调用先按预算占住
  • sfx · bgm · sounda sound library: your packs and Openverse, licences and credits on record声音库:你自己的音效包和 Openverse,许可和署名都记下
  • castcharacters, props and sets as settled reference pictures, sent along when they are drawn again角色、道具、场景的定稿参考图,再画它们时一起带上
  • model3d · hdria 3D model read before it goes in; CC0 light and sky from Poly Haven3D 模型放进来前先读一遍;从 Poly Haven 取 CC0 的光照和天空
  • assetsone ledger for every file: where it came from, its licence, its cost; checked before delivery每个文件记在一本台账里:从哪来、什么许可、花多少钱;交付前检查

03Make做

  • editan edit list: pages, images, footage, other films and sound in a row; gate ②'s animatic as grey slates剪辑表:页面、图片、实拍素材、别的片子和声音排成一列;关卡 ② 的 animatic 先是灰卡
  • components5 motion components: a spring scene, a page turn, paper seams, a chapter bar, a build-up5 个动效组件:弹簧场景、翻页、纸面转场、章节进度条、逐渐建成
  • recipes71 shot recipes, 10 whole-film skeletons, 24 shot-grammar cards71 张镜头配方、10 条全片骨架、24 张镜头语法卡
  • --threecanvas-film's Three.js layer: GLB models under the 2D, their clips on the narration's wordscanvas-film 的 Three.js 层:GLB 模型画在 2D 下面,动作挂在旁白的字上
  • Blenderpath-traced shots, or only the asset, tidied and checked for the Three.js layer路径追踪的镜头;或者只做资产,整理、检查好交给 Three.js 层
  • tts · music · mixvoiceover, a score written as code, the mix配音、用代码写的配乐、混音

04Check & deliver查与交

  • gate · deska stop for your sign-off in one command; the review desk一条命令停下来等你拍板;审阅台
  • check · determinismthe film against its brief; each frame really a function of t对着 Brief 查成片;查每一帧是不是只由 t 决定
  • renderparallel, resumable chunks; --motion-blur N for sub-frame blur, --alpha for a transparent film; an edit list redraws only what changed分块并行、能续渲;--motion-blur N 加子帧运动模糊,--alpha 出透明底;剪辑表只重画改过的部分
  • patch · versionsa few seconds redrawn in a finished film; compare renders, or go back只重画成片里的几秒;对比各版,或者退回
  • deliver · cleanthe copy to upload; a finished project's intermediates cleared出上传用的版本;清掉做完的项目里的中间文件

bin/vh doctor says which of the 39 outside programs, packages, models and services this machine can use.bin/vh doctor 告诉你这台机器能用上 39 个外接模块里的哪些。

06The intro film · 103 s · with sound介绍片 · 103 秒 · 有声

Its own intro film, made with the harness.这支介绍片,也是用它做的。

The opening is path-traced in Blender, driven by Python: 1.18 million stars, 475 frames. HyperFrames and Three.js take over from 15 s. The score and its 124 sound events are code too. It streams from the repo's GitHub release (297 MB) once you press play.开场由 Python 驱动 Blender 路径追踪:118 万颗星,475 帧。15 秒起交给 HyperFrames 和 Three.js。配乐和 124 处音效也是代码写的。按下播放才从仓库的 GitHub Release 载入(297 MB)。

07Showcase · hover to preview, click for sound作品 · 悬停预览,点击带声音播放

Each from one sentence.每一支,都从一句话开始。

Contact sheet of the science short contact sheet联系表
Vertical science short竖屏科普Why does a low-orbit satellite's signal change pitch?为什么低轨卫星的信号会"变调"?HyperFrames · 24.8 s · 1080×1920 · Chinese voice, two-language subtitlesHyperFrames · 24.8 秒 · 1080×1920 · 中文配音,双语字幕
Contact sheet of the math explainer contact sheet联系表
Math explainer, 3Blue1Brown style数学讲解,3Blue1Brown 风格Building a square wave from sine waves用正弦波搭出方波Manim · 25 s · English narrationManim · 25 秒 · 英文旁白
Contact sheet of the hand-drawn short contact sheet联系表
Hand-drawn short手绘短片Clawd tries to film a falling autumn leafClawd 想拍下一片飘落的秋叶p5.brush · 12 s · no words, score and foleyp5.brush · 12 秒 · 无台词,配乐和拟音
Contact sheet of the launch short contact sheet联系表
Launch short发布短片A short launch film for OpenVideoHarness itself给 OpenVideoHarness 自己做的发布短片HyperFrames · 20 s · a sound for every moveHyperFrames · 20 秒 · 每个动作都有声音
Every film ships with its paper trail每支片子都附带完整的制作记录
  • README · the request, word for word原始需求,一字不改
  • BRIEF.md · STORYBOARD.md
  • NOTES.md · LESSONS.md
  • all the source, to start a similar film全部源码,可以照着做一支
showcase/ ↗

08Style library · click one to hear it风格库 · 点开能听声音

32 styles. Not one default look.32 种风格,不再千篇一律。

Left alone, AI video drifts to one look: dark background, glow, glass cards. Each style here is a real 5-second render of the same content.放任不管,AI 视频会趋向同一张脸:暗底、发光、玻璃卡片。这里每种风格都是同一段内容的 5 秒实渲样片。

Recipes and components, as the agent sees them配方和组件,agent 看到的样子

71 shot recipes, 10 whole-film skeletons, 24 shot-grammar cards and 5 motion components, each move with a contact sheet like these. Click one to enlarge it.71 张镜头配方、10 条全片骨架、24 张镜头语法卡、5 个动效组件,每个动作都配这样一张联系表。点开放大。

build-uppieces appear by a rule until the whole stands逐渐建成:零件按规则一块块出现,直到整体立起来
page-turna book page turns over; the turn is the cut翻页:书页翻过去,翻页本身就是剪辑点
decode-typea recipe: type that decodes into place, then stays long enough to read一张配方:字解码到位,再停够读完的时间
chart-morpha recipe: one chart becomes another without a cut一张配方:一种图表不切镜地变成另一种

09In practice真实使用

Used for real, on the news cycle.真的在用,还赶得上热点。

The author publishes films made with OpenVideoHarness on Douyin (TikTok in China) and Bilibili.作者把用 OpenVideoHarness 做的片子发在抖音和 B 站。

Every film on this page was made the way you would make yours: an agent, this repo's docs and one request. Each folder keeps the record: the request word for word, the storyboard, every review round, and how long it took.这一页上的每支片子,做法都和你做自己的片子一样:一个 agent、本仓库的文档、一句需求。每个目录都留着记录:需求原话、分镜、每一轮审阅、花了多久。

cover-preview covers at Bilibili, Douyin, YouTube and Xiaohongshu feed sizes按 B 站、抖音、YouTube、小红书的信息流尺寸看封面 deliver the copy to upload, sized to a platform's limit上传用的版本,按平台的大小上限出
Nobel Prize in Physics announced诺贝尔物理学奖公布explainer out科普片发出
≈3hours小时

From the announcement of the 2026 Nobel Prize in Physics to a published science explainer, made with the harness.从 2026 年诺贝尔物理学奖公布,到一支用这套工作台做的科普片发出来。

reading CLAUDE.md读 CLAUDE.mddelivered film交付成片
≈40min分钟

The hand-drawn short (showcase 01): about 40 minutes of the agent's active work, with three review rounds and about 20 fixes logged, not counting a pause for an API rate limit.手绘短片(样片 01):agent 实际工作约 40 分钟,三轮自查,记下并修好约 20 处问题,不算中途因 API 限流停下的时间。

10FAQ常见问题

Good questions, straight answers.常见问题,一次说清。

More in the wiki更多见 Wiki ↗
How is this different from just asking an agent?和直接让 AI 做有什么不同?
An agent alone has taste but no process: nothing tells it to settle the idea before code, to check its frames, or to stop for you. We ran one small blind comparison: the workflow's films had the fresher ideas, while the floors-only films were judged better made, and what the reviewer flagged went into the checks. The process aims to save rework; that saving hasn't been measured yet. The comparison ↗单靠 agent,有审美,但没有流程:没人让它先定立意再写代码、检查自己的帧、停下来等你。我们做过一次小的盲评:按流程做的点子更新,只守底线做的被评为做工更好;评审指出的问题后来都补进了检查。流程想省的是返工,这一点还没有量过。实验记录 ↗
What does it cost?要花多少钱?
Rendering, music and sound effects run locally and cost nothing. What costs money is the agent itself (a Claude Code or Codex subscription, or API usage), plus any cloud voice, generated picture, generated music or generated video you choose, billed by that provider. A paid call needs a budget and is held against it before it is made; keys are always read from environment variables.渲染、配乐、音效都在本地跑,不花钱。要花的是 agent 本身(Claude Code 或 Codex 的订阅或 API 用量);接云端配音、生成图、生成音乐或生成式视频时,按各家收费。付费调用要有预算,调用前先按预算占住;key 一律从环境变量读。
How long does a film take?做一支要多久?
For a 30-second film: about 10–30 minutes at quick, 1–2 hours at standard, 3 hours or more at studio. Most of the time goes into checking and fixing. All three levels deliver a full-quality film; the level sets how often it stops and how many review rounds it runs.30 秒的片子:快出档 10–30 分钟,标准档 1–2 小时,精品档 3 小时以上,大部分时间花在自查和返工上。三档出的都是正式画质的成片,档位管的是中途停几次、审几轮。
What do I need?需要什么环境?
macOS or Linux, Node.js 22+, Google Chrome, FFmpeg, Python 3 with uv, and Claude Code or Codex. The local voice needs Apple Silicon (a cloud voice doesn't), formulas need LaTeX, and only path-traced shots and preparing 3D models need Blender 5.2. Windows is untested.macOS 或 Linux、Node.js ≥ 22、Google Chrome、FFmpeg、Python 3 和 uv,以及 Claude Code 或 Codex。本地配音要 Apple Silicon(换云端配音就不用),公式要 LaTeX,只有路径追踪的镜头和整理 3D 模型才要 Blender 5.2。Windows 没有测过。
Does it work with Codex?能用 Codex 吗?
Yes. AGENTS.md carries the same instructions as CLAUDE.md, and the installer registers the open-video-harness skill for both Claude Code and Codex, so asking for a video from any folder finds the workbench.能。AGENTS.md 和 CLAUDE.md 内容相同;安装时 open-video-harness skill 会同时注册给 Claude Code 和 Codex,之后在任何目录说"做个视频",都能找到这里。
Which languages does it speak?支持哪些语言?
Chinese and English. Voiceover runs on the local, open-source Qwen3-TTS by default, with cloud voices as options, and subtitles come in either language or both. Ask in either language; the review pages follow yours.中文和英文。配音默认用本地开源的 Qwen3-TTS,也能接云端配音;字幕可以出中文、英文或双语。需求用哪种语言都行,审阅页跟着你的语言走。
Can it use real footage, or real people?能用实拍素材、拍真人吗?
Archive and public-domain footage, yes: bin/vh footage takes the seconds you need from Internet Archive, Wikimedia Commons and NASA with their licences on record, and an edit list cuts them in. Realistic people and a live-action look need generated video, with code drawn on top. Editing footage you shot yourself (talking heads, interviews, vlogs) is type 09, still experimental.档案和公有领域的影像可以:bin/vh footage 从 Internet Archive、Wikimedia Commons、NASA 只取要用的几秒,许可记在台账里,再用剪辑表剪进片子。写实人物、实拍感要靠生成式视频,再用代码叠加。剪你自己录的素材(口播、访谈、Vlog)是第 09 类,还在试验。
What can't it do yet?现在还做不到什么?
The agent can't watch or listen. It reads rendered frames and audio measurements, so the last look and listen are yours. The full workflow has only been run on macOS (Apple Silicon), and type 09 hasn't been tried on real footage yet.agent 看不了视频、听不了声音,只能看渲染出的帧、读声音的数据,所以最后一关还是要你看、你听。目前只在 macOS(Apple Silicon)上完整跑过,第 09 类剪辑还没用真实素材试过。
Does this page open from mainland China?在国内能打开这一页吗?
It loads nothing from other sites: its two display fonts and every picture are in this repo. Only the films come from GitHub's release, and only once you press play, so they can be slow there; each film's folder and file are linked. For installing behind a slow network, see the wiki's China network ↗.能。这一页不从别的网站加载任何东西:两种标题字体和所有图片都在本仓库里。只有片子来自 GitHub 的 Release,而且按下播放才载入,在国内可能比较慢;每支片子的目录和文件都有链接。网络慢时怎么安装,见 wiki 的国内网络 ↗。
Is it an Anthropic project?是 Anthropic 官方项目吗?
No. It's an independent open-source project under the MIT license, not affiliated with Anthropic, HeyGen or Remotion.不是。这是独立的开源项目,MIT 许可,和 Anthropic、HeyGen、Remotion 都没有隶属关系。
How can I contribute?怎么参与?
Pull requests are welcome: new video types, styles with their samples, recipes, components, case studies, lessons from your projects, and films you made with it, with everything that went into them. CONTRIBUTING.md ↗欢迎提 PR:新的视频类型、带样片的风格、配方、组件、案例拆解、项目里踩过的坑,以及你用它做的片子和全部制作过程。CONTRIBUTING.md ↗

11Contact联系

Questions or ideas? Get in touch.有问题或想法?来聊聊。

Star the repo, or send a film you made with it.给仓库点个 Star,或者把你用它做的片子发过来。