herk-edit-kit 教程:用 Claude Code 或 Codex 剪口播、Reels 和 Shorts(2026)
阅读说明
仓库信息查阅日期:2026-10-23;星数、更新时间会变,以仓库页面为准;本文不写价格。
一句话结论
nateherkai/herk-edit-kit 是 Nate Herk 给 Codex 和 Claude Code 的剪辑套件,基于 HyperFrames。README 写明前身是 HyperFrames Student Kit。你带上自己的口播,用仓库里的技能去掉气口、审口误、排故事,再用 HyperFrames 和 GSAP 做运动图形。
适合已经在用 Claude Code 或 Codex、要剪 Reels、YouTube Shorts 或更长的口播,并且接受先看草稿、再自己决定是否发布的人。
仓库信息
截至 2026-10-23,星数、最近推送和创建时间取自仓库元数据,日期为北京时间。
| 仓库 | 星数 | 最近推送(北京时间) | 许可 | 创建时间 |
|---|---|---|---|---|
| nateherkai/herk-edit-kit | 2,060 | 2026-10-14 | 见仓库 LICENSE | 2026-04-19 |
仓库描述是 “Herk Edit Kit by Nate Herk: edit videos, reels, and YouTube Shorts with Codex or Claude Code. 15 skills, transcript-driven cuts, storytelling, 406 motion-graphics cards, and HyperFrames templates.”
GitHub 的许可字段是 NOASSERTION。仓库根目录 LICENSE 开头是 MIT License,Copyright (c) 2026 Nate Herk:在保留版权声明和许可声明的前提下,允许使用、复制、修改、合并、发布、分发、再许可以及销售软件副本。同一文件在 MIT 正文后有一段 Note on brand assets:作为示例放入的 logo、品牌规范图、品牌 token CSS,以及若干示例项目的内容,仍归原权利人,不授权用于你自己的项目,使用时要换成自己的品牌素材。
THIRD_PARTY_NOTICES.md 写明,第三方部分各自有许可,不存在把它们一并再授权的说法。HyperFrames 为 Apache-2.0,文件在 licenses/HYPERFRAMES-LICENSE。GSAP 从 npm 安装,适用它自己的许可,声明指向 GSAP Standard License。部分样式引用 Google Fonts,字体许可仍归字体发布方。并入的流水线材料保留 licenses/PIPELINE-USE-PERMISSION.txt 里的授权:可以用于制作个人或商业视频,再分发套件或其中实质部分时保留该声明;第三方软件、字体、素材、商标、肖像和被排除的媒体不在这项授权里。
它能做什么样的视频
README 的定位是:带上自己的素材,剪掉气口,审错误,排故事,并用 HyperFrames 和 GSAP 做运动图形。成片构图是 HTML。预览在 Studio 里看,渲染输出 MP4。
README 列出四支成品。前三支有文字说明,第四支只给了标题。
| 成片 | README 写明的内容 |
|---|---|
| YouTube motion showreel | 用 motion-showreel 做成。15 秒,1920×1080,60 fps,卡在 129 BPM 的网格上。红色进度点穿过 7 个工艺章节,最后落成标志里的播放按钮 |
| AI edits everything: the reveal | Nate 的一条口播,由运行本套件剪辑技能的代理剪成 51 秒 reel。涵盖剪切、字幕、B-roll、运动图形、音乐和音效 |
| AI edits everything: raw vs edited | 先是未动过的原片,再硬切到成片,并走过代理做了什么 |
| AIS Live ad | README 只列出这个标题,没有写时长或画幅 |
仓库还包含这些材料:
- 15 个技能,Claude Code 与 Codex 各有一份,并带辅助脚本和参考。
- 406 张运动图形卡片草稿,分两种风格,带清单、CSS token 和可编辑槽位。查阅日
style-library/下的两个风格目录是01-vox-explainer和02-kallaway。 - 两个整场模板:
dark-graph-paper-template(动画背景,不需要素材)和left-glass-popout(镜头重框加玻璃面板,要自备带音轨的assets/source.mp4)。 - 转写、去气口、口误检测、审过再渲染、转写重定时、EDL 审阅、节拍校验和 preflight。
- 短视频:Reels、YouTube Shorts、hook 与 payoff、精确字幕、运动 B-roll、音频审阅。
- 原套件留下的 12 个教学项目,在
video-projects/。 - 一份合成 starter,以及不需要素材、也不需要 API key 的剪辑夹具。
AGENTS.md 的路由表如下。查阅日 .claude/skills/ 下的目录名与这张表一致。
| 技能 | 文档写明的用途 |
|---|---|
short-form-edit | 新的 Reels、Shorts 和短广告。默认 1080×1920 |
motion-showreel | 按音乐节拍切的运动设计 showreel 和品牌 reel |
short-form-video | 维护原有的 May Shorts 示例。新片用 short-form-edit |
make-a-video | 从 brief 做新的运动图形 |
website-to-hyperframes | 从网站得到的构图 |
edit-video | 完整的口播剪辑 |
cut-silences | 去掉气口 |
cut-mistakes | 重录、起错、口吃 |
video-storytelling | 叙事弧线、持续的视觉世界、视觉回调 |
hyperframes-video-beats | 叠层节拍、纸面接管、玻璃卡片 |
style-library | 选择或扩展风格和模板 |
hyperframes | HTML 构图和媒体时间 |
hyperframes-cli | 预览、lint、渲染 |
gsap | 时间线动画 |
hyperframes-registry | 安装 HyperFrames 目录里的块 |
短视频文档写明:starter 是横屏构图,做 reel 时要先把 composition 的尺寸、版式和元数据改成 1080×1920。另外要 1920×1080 时,文档要求单独做一套构图,并写明 center crop 不能充当这第二套构图。
docs/EDITING-PLAYBOOK.md 把 house reel 风格写成一组测量值,来源是 Nate 的 27 支 Instagram Reels(2026 年 3 月到 9 月),并写明拿它们当自己风格的起点。画幅 1080×1920,切换都是硬切。语音在 0.1 秒内开始,最后一个词说完文件就结束。镜头平均 1.1 到 1.4 秒。版式比例大致是:上下分屏 30% 到 42%,全幅 B-roll 50% 到 55%,说话人推进镜头 5% 到 15%。同一页还写了三种别的形态:只有剪切、没有 B-roll 和音乐的 raw reel;从长视频拆出的 YouTube Short(上面是屏幕录像,下面是脸,字幕在接缝上);以及用 AI 旁白、整条时间线锁在节拍网格上的讲解片。
需要准备什么
README 和它指向的 docs/SETUP.md、docs/TOOLS-AND-API-KEYS.md 写的是这些。
本地剪辑、预览和渲染:
- Codex 或 Claude Code。本地剪辑不需要单独的 MCP。
- Node.js 22 或更新。
package.json的engines是node >=22。文档写明这是锁定的 HyperFrames CLI 所要求的。 - Git、npm。依赖用
npm ci安装。 - FFmpeg,并且包含 ffprobe。终端里要能直接调用
node、ffmpeg和ffprobe。 - Chrome 或 Chromium。Chromium 不可用时,按
npx hyperframes browser --help处理。 - 壳可以是 PowerShell、macOS Terminal 或 Linux shell。Windows 安装 FFmpeg 后要重新打开终端,让 PATH 生效。
docs/SETUP.md 写明仓库锁定 HyperFrames 0.7.109 和 GSAP 3.14.2。package.json 的 devDependencies 与此一致,并有 playwright ^1.59.1。工具指南写 Playwright 用于相关的浏览器流程,浏览器二进制文件可能要另外安装。部分可选脚本需要 Python。npm ci 不会安装本地 Whisper。
API key 按你选用的服务填写。npm run setup 只在还没有 .env 时,从 .env.example 创建它。用不到的项留空。
| 变量 | 文档写明的用途 |
|---|---|
ELEVENLABS_API_KEY | Nate 默认的转写:ElevenLabs Scribe。key 需要 speech_to_text 权限。motion-showreel 的音效脚本 scripts/sfx.mjs 也读这个变量,并需要音效权限 |
OPENAI_API_KEY | 可选的 Whisper API 转写,或旧示例里实际调用 OpenAI 时 |
KIE_API_KEY | 可选。Nate 用来生成视频和图像。只写入 key 不会自动接上接口 |
GEMINI_API_KEY | 可选。网站转视频流程里更细的图像描述。基础截取不需要 |
GROQ_API_KEY | 可选。框架参考里提到的 Groq 转写 |
CLICKUP_API_KEY | 只有旧示例真的调用 ClickUp 时才需要 |
要用 ElevenLabs Scribe 或 Kie.ai,需自备对应服务的 API key。也可以让代理改用 OpenAI Whisper 或本地 Whisper,或自己提供已有的词级转写。自带的 scripts/transcribe-elevenlabs.mjs 只会调用 ElevenLabs。更换 ELEVENLABS_API_KEY 不会把这个脚本改成别的服务。
OpenAI 这条路径,工具指南写的参数是 whisper-1、response_format="verbose_json"、timestamp_granularities=["word"]。本地路径是 OpenAI Whisper 或 whisper.cpp,都要单独安装。
剪辑工具要的转写格式是词级时间,单位为秒,并且落在这条原片的时间线上:
{
"text": "Hello world.",
"audio_duration_secs": 2.0,
"words": [
{ "text": "Hello", "start": 0.2, "end": 0.6 },
{ "text": "world.", "start": 0.7, "end": 1.2 }
]
}
段落、SRT 和只有片段时间的转写不够。短视频计划另外记录 sourceStart 和 sourceEnd。
Kie.ai 不是每条片子都要。短视频技能描述了它的流程,仓库没有附带一个通用的 Kie 生成脚本。motion-showreel 里的 scripts/kie.mjs 只覆盖三类素材:Suno 器乐、用标志参考生成的 Seedream 静帧,以及 Kling 镜头运动。已有素材可以代替生成素材。旁白是另一条可选路径,工具指南提到本地 Kokoro TTS,也提到 ElevenLabs 和 HeyGen TTS,各自要运行环境或 API。
docs/SETUP.md 写明:npm test、starter 预览和 starter 渲染不需要 key。
安装与第一次运行
安装上一节的 Node.js、Git、FFmpeg(含 ffprobe)和 Chrome 或 Chromium,并确认
node、ffmpeg、ffprobe在终端里可用。在 PowerShell、macOS Terminal 或 Linux shell 里执行 README 的安装命令:
git clone https://github.com/nateherkai/herk-edit-kit.git
cd herk-edit-kit
npm ci
npm run setup
npm test
npm run setup 检查工具,并且只在 .env 不存在时创建它。只填写你选用的服务。
- 渲染 README 里的第一个示例:
npm run demo
cd video-projects/demo
npx hyperframes lint
npx hyperframes preview
在 Studio 里拖动这支 8 秒动画。看完后用 Ctrl+C 停掉预览,再渲染:
npx hyperframes render --quality draft --output renders/demo.mp4
README 写明:这个 demo 用本地 GSAP,没有旁白。HyperFrames 可能在第一次渲染时下载并缓存字体替换。另一份 examples/editing/source.json 是虚构测试数据,用来试剪切工具。demo 的标题动画另有画面。
docs/VERIFICATION.md 记录的 starter 草稿渲染是 1920×1080、30 fps、240 帧 H.264。那段检查写的环境是 Windows、2026-09-08、Node 24.15.0、FFmpeg 8.1.1、HyperFrames 0.7.109。安装要求仍是上一节的 Node.js 22 或更新。
- 要剪自己的素材,在仓库根目录按 docs/WORKFLOW.md 新建项目。已有的项目名会被拒绝,避免覆盖。
npm run new-video -- my-video
把原片放在 video-projects/my-video/assets/raw.mp4,并保留这份原始文件。接着是文档里的转写命令。它会把音频送到 ElevenLabs,因此需要你自己的 ELEVENLABS_API_KEY:
node scripts/transcribe-elevenlabs.mjs video-projects/my-video/assets/raw.mp4
- 去气口。文档写明不要删掉有意义的停顿:
node .agents/skills/cut-silences/scripts/cut-silences.mjs video-projects/my-video/assets/raw.json --video video-projects/my-video/assets/raw.mp4 --out-dir video-projects/my-video/assets --output video-projects/my-video/assets/silenced.mp4 --apply
重定时后的转写是 raw.silence-transcript.json。
- 列出口误提案,对照语音逐条看,再把决定写进
approved-cuts.json。时间在已经去掉气口的时间线上。空的剪切列表是合法的。
node .agents/skills/cut-mistakes/scripts/find-cut-candidates.mjs video-projects/my-video/assets/raw.silence-transcript.json --out-dir video-projects/my-video/assets
{ "cuts": [{ "start": 1.2, "end": 1.5, "reason": "stutter" }] }
node .agents/skills/cut-mistakes/scripts/apply-cuts.mjs video-projects/my-video/assets/raw.silence-transcript.json --cuts video-projects/my-video/assets/approved-cuts.json --video video-projects/my-video/assets/silenced.mp4 --out-dir video-projects/my-video/assets --output video-projects/my-video/assets/clean.mp4 --apply
之后使用 raw.mistakes-transcript.json 和 clean.mp4。做节拍校验时,把这份转写复制为项目里的 assets/transcript.json。不要拿原片时间去对已经剪过的视频。Claude Code 可以把上面路径里的 .agents 换成 .claude。
- 检查、预览,再渲染草稿。节拍校验只用于带锚点的外部子构图;一个都没有时这条命令会失败。内联构图要自己对时间。
node scripts/preflight.mjs video-projects/my-video
node scripts/validate-beat-sync.mjs video-projects/my-video
cd video-projects/my-video
npx hyperframes lint
npx hyperframes preview
短视频在仓库根目录还可以跑:
npm run validate:short-form -- video-projects/my-reel
npm run validate:footage -- video-projects/my-reel
node scripts/preflight.mjs video-projects/my-reel
没有素材、也不想调用 API 时,用合成夹具:
npm run validate:short-form -- examples/short-form
npm run validate:footage -- examples/short-form
npm test
没有语音的源要先另备一条音轨。剪切渲染器期望一条视频流和一条音频流。发布是单独的一步,需要明确指示。
在 Claude Code 里用 Opus 5.5 驱动它
在 Claude Code 里用 /model 选 Opus 5.5,详见 Claude Opus 5.5。
仓库没有指定型号。AGENTS.md 写明模型和权限由使用者决定。Claude Code 读 CLAUDE.md 和 .claude/skills/。Codex 读 AGENTS.md 和生成的 .agents/skills/。在 Codex 里若要加载项目设置,需要信任该项目;技能没出现就重启。改技能时编辑 .claude/skills/<name>/,再运行 npm run sync:skills,然后 npm run check:skills。
在 Codex 或 Claude Code 里打开本仓库目录。README 的三条提示词如下。Codex 用 $ 前缀,Claude Code 用 / 前缀。
完整剪辑。Codex:$edit-video。Claude Code:/edit-video。单步可以用 cut-silences、cut-mistakes、video-storytelling 或 style-library。
Use edit-video to edit my recording at [local path]. Keep my examples and core
lessons. Tighten dead air, show me the proposed mistake cuts, and use the dark
graph-paper style with occasional glass cards. Produce a reviewed draft.
竖屏短视频。Codex:$short-form-edit。Claude Code:/short-form-edit。
Use short-form-edit to turn my recording at [local path] into a 9:16 reel.
Build a truthful hook and payoff, preserve my meaning, tighten mistakes, and
add precise captions, purposeful moving footage, and sound design. Prepare
a draft for review. Use my existing footage before proposing generated assets.
运动设计 showreel。Codex:$motion-showreel。Claude Code:/motion-showreel。
Use motion-showreel to make a 15-second showreel for [brand]. Study my reference
reel at [local path] if I give one. Pick one motif that transforms through every
chapter, cut on the music's beat grid, and end on the logo. Show me the storyboard
and beat sheet before building, and confirm before any paid music or asset generation.
docs/PROMPTS.md 里还有分步配方,原文如下。
Use edit-video on [path]. Preserve the examples and core
lessons. Tighten pauses, propose mistake cuts, plan the visual arc, and build a
HyperFrames draft in video-projects/[slug].
Use cut-mistakes with [edited transcript] and its matching
[edited video]. Explain each proposed removal and preserve intentional emphasis.
Use video-storytelling to plan a persistent visual world for
[script]. Mark the hook, open loops, camera framing, callbacks, and payoff.
Use style-library and hyperframes-video-beats to select
three useful overlays for this transcript. Give each a verbatim anchor and keep
the speaker readable. Follow the project's DESIGN.md.
Use short-form-edit to create a 9:16 reel from [local recording]. Explore three
opening directions, then build the strongest truthful promise and payoff. Keep
captions word-exact and choose moving footage for specific story beats. Show me
the rough edit before polishing. Save the project and review evidence together.
转写若不用 ElevenLabs,工具指南给了两段可复制提示:
Use OpenAI Whisper instead of ElevenLabs for this recording. Use my locally
configured API key, request word timestamps, and normalize the result for this
kit before cutting. Preserve the source and verify timing against its audio.
Use local Whisper for transcription. Check its installation and model downloads
first, then normalize the word timestamps for this kit. Keep transcription local
and use my supplied footage and assets without paid generation.
示例提示词(按 README 写明的用法改写,不是仓库原文)
用 /edit-video 剪 video-projects/my-video/assets/raw.mp4。保留我的例子和核心内容。收紧气口,把建议删掉的口误列出来给我看,使用 dark graph-paper 风格,偶尔加 glass cards。先给出可审阅的草稿。
用 /short-form-edit 把 video-projects/my-reel/assets/raw.mp4 做成 9:16 的 reel。做真实的 hook 和 payoff,保留原意,收紧口误,加上精确字幕、有目的的运动画面和声音设计。优先用我已有的素材。先准备一份供审阅的草稿。
限制与已知问题
docs/VERIFICATION.md把它写成一套能用的工具,并写明全自动的剪辑判断不在承诺里。406 张卡片仍是草稿,那次发布没有逐张渲染并目视通过。选定的卡片要用你自己的文字和画面再测。库模板可能从公共 CDN 加载 GSAP 和 Google Fonts;做成最终项目时要把这些依赖换成本地文件。style-templates/README.md写模板目前引用公共 GSAP CDN,自包含项目应把node_modules/gsap/dist/gsap.min.js复制进素材目录,并把脚本改成assets/gsap.min.js,starter 就是这样做的。- 同一份验证记录写 consolidated 版本时,14 个 canonical skills 通过了 frontmatter 校验。README 写的是 15 个技能,查阅日
.claude/skills/下也是 15 个目录。验证记录还写:有两张卡片在 JavaScript 里组装部分槽位,检查的是源码声明,不是执行后的 DOM。原有video-projects/没有全部按锁定的 HyperFrames 0.7.109 重新渲染,历史输出不是当前兼容性的保证。 - 卡片里的名字、账号、统计和来源标注是占位,发布前要换成核对过的文案。第三方声明写明 Vox、Kallaway 和 Infinite 是审美参考名称,不是这些创作者或机构的官方素材,也没有他们的背书。三支 showcase 成片的既有权利仍在;放进仓库不等于把第三方品牌或嵌入媒体的权利给你。
short-form-edit是代理引导的流程。校验器检查结构和声明的时间,不证明 hook 成立、事实成立、素材有权使用、裁切正确或听得出口型同步。技能要求看真实画面、听真实声音,再发布。- 剪切渲染器要一条视频流和一条音频流。玻璃弹出模板要你自己的、带音轨的
assets/source.mp4。没有语音的源要先另配音轨。节拍校验在没有锚点子构图时会失败。 - 根目录的
npm run check检查的是发行包,不会去 lintvideo-projects/里的个人项目。video-projects/和raw-media/下新建的文件夹会被 Git 忽略;已经被跟踪的教学文件仍然被跟踪。自己的素材放到新建项目里。 - Scribe 报错:401 通常是认证无效,403 可能是没有
speech_to_text权限。检查 key 的权限时不要把它打印出来。HyperFrames 可能在第一次渲染时下载字体替换。 - 编辑手册里写过的做法包括:不要编造数字、结果或一次成功的测试来装饰说法;静止的 AI 图当作 B-roll 会被当成构建错误,静帧只作为 AI 视频的第一帧;分段编码再拼接会让口型在大约一半的接点上漂大约一帧,应在一次编码里按精确帧号选取;响度要量最终编码文件。手册写的母带附近是 -14 LUFS,true peak 在 -1.5 dBTP 或更低。
- 仓库 issue #16(open):标题是 “
kie.mjsuploads any local file path it is given, not just images inside the project”。大意是kie.mjs会上传交给它的任意本地路径,不限于项目里的图片。 - 仓库 issue #2(open):标题是 “Amazing”。标题没有描述技术缺陷。
常见问题
能不能用 Codex 或 Cursor?
README 写明这套技能给 Codex 和 Claude Code。Codex 用 $edit-video、$short-form-edit、$motion-showreel,技能在 .agents/skills/。Claude Code 用对应的 / 命令,技能在 .claude/skills/。两边做本地剪辑都不需要单独的 MCP。README 未写明 Cursor。
成品是 HTML 还是 MP4?怎么导出?
构图是 HyperFrames 的 HTML。npx hyperframes preview 在 Studio 里预览。README 的草稿命令把 demo 写成 renders/demo.mp4。短视频文档的顺序是校验、预览、渲染草稿、看帧、听完整条,处理完时间和声音问题后再导出成片。docs/VERIFICATION.md 还写到剪辑阶段会生成 EDL review HTML。AGENTS.md 写 MP4 拖动预览可以用支持 Range 的服务器,例如 npx serve。
能不能商用?许可怎么看?
GitHub 字段是 NOASSERTION,要以仓库里的文件为准。LICENSE 正文是 MIT,Copyright (c) 2026 Nate Herk,允许在保留版权声明和许可声明的前提下使用和再分发软件,其中包含销售软件副本。品牌示例素材不在这项授权里,要换成自己的。licenses/PIPELINE-USE-PERMISSION.txt 写明可以用这套材料制作个人或商业视频,再分发时保留该声明。HyperFrames、GSAP、字体和其他第三方素材各自适用自己的许可。你的成片里用到的音乐、肖像和素材,还要看那些素材本身的授权。卡片上的占位文案发布前要换掉。
要不要 API key?有没有中文字幕或中文配音?
本地 starter、npm test、starter 预览和 starter 渲染不需要 API key。转写若走 ElevenLabs Scribe,或生成画面若走 Kie.ai,需自备对应服务的 API key。OpenAI Whisper API 用 OPENAI_API_KEY。本地 Whisper 不使用云端转写钥匙,但要单独安装运行环境和模型。也可以提供已有的词级 JSON。
README 未写明中文字幕或中文配音。剪辑要求的是词级 text、start、end。编辑手册里的字幕规格按英文词块来写:每块 1 到 3 个词、全大写、Montserrat ExtraBold,大约 62 到 64 px,其中约 5% 到 20% 的块用 Abril Fatface。旁白在手册里是单独一种形态;工具指南把 Kokoro、ElevenLabs 和 HeyGen TTS 列为可选,没有写中文语音。
相关阅读
- 热门项目合集
- 用 Opus 5.5 做视频
- 从提示词到成片
- 场景模板
- 报错与省用量
- 开源 Skill 与工具
- Claude Opus 5.5
- 环境搭建
- 开源 AI 视频 Skill 目录
- Claude Motion(官方功能)
- motion-graphics-skills 教程
- product-launch-motion 教程
- claude-motion 教程
- claude-motion-design 教程
- mg-styles-15 教程
- animate 教程
参考来源
- nateherkai/herk-edit-kit(查阅日期:2026-10-23)
- 仓库 README.md(查阅日期:2026-10-23)
- LICENSE(查阅日期:2026-10-23)
- THIRD_PARTY_NOTICES.md(查阅日期:2026-10-23)
- licenses/PIPELINE-USE-PERMISSION.txt(查阅日期:2026-10-23)
- docs/TOOLS-AND-API-KEYS.md(查阅日期:2026-10-23)
- docs/SETUP.md(查阅日期:2026-10-23)
- docs/WORKFLOW.md(查阅日期:2026-10-23)
- docs/PROMPTS.md(查阅日期:2026-10-23)
- docs/SHORT-FORM.md(查阅日期:2026-10-23)
- docs/VERIFICATION.md(查阅日期:2026-10-23)
- docs/MIGRATION.md(查阅日期:2026-10-23)
- docs/EDITING-PLAYBOOK.md(查阅日期:2026-10-23)
- AGENTS.md(查阅日期:2026-10-23)
- style-library/GUIDE.md 的前半,以及
style-library/目录名(查阅日期:2026-10-23) - style-templates/README.md(查阅日期:2026-10-23)
.env.example与 package.json(查阅日期:2026-10-23).claude/skills/目录下 15 个技能文件夹的名称(查阅日期:2026-10-23)- 仓库 issue #16、#2 (查阅日期:2026-10-23)