
今天拆的是 OpenChatCut:一个本地优先、Agent 原生的视频剪辑器,编码 Agent 通过 MCP 改的是可继续编辑、可一步步撤销的真时间线工程;文章给全它在链条上的层级、三条上手入口、九处已知阻塞,以及那份 AGPL-3.0 落到四种真实用法上分别意味着什么。

cli、desktop、remotion、server、skills/openchatcut、src 六行并排,说明这个仓库不是只做界面:命令行、Electron 桌面壳、渲染管线、服务端和技能包各占一块。右侧 About 栏写着它是「开源、本地优先的对话式 AI 视频剪辑器」,许可徽标是 AGPL-3.0,Releases 26 个。1EditorCore 命令,不存在两套会漂移的工程格式,草稿准备期间活动的时间线不会被改动 4。
assets/readme-pic/openchatcut-runtime.en.svg,2026 年 9 月 30 日转成位图。这张图把这一层说清楚了:左边是 Codex、Claude Code 这类外部 Agent,进来先到「External MCP Broker」(Streamable HTTP,默认只监听本机),和右侧的「Built-in Agent」一起汇到同一个「Agent Skills & Tools」;再往下是「EditorCore」,标注是 Commands、Immutable timeline、Single edit entry point;EditorCore 往右接 Live Preview 与 Render & Export,往下接本地存储(~/.openchatcut)与 Server Plugins;所有出去的外部请求都从 Server Plugins 走虚线到 External Services,也就是你自己配的模型、ASR、生成与 R2。整张图里没有一条线是从 Agent 直接画到预览或磁盘的。7openchatcut_status、list_projects、target_project,再 begin_edit_session 拿一个 editSessionId,这一串 editSessionId 会被传给此后每一个读写工具;所有改动只落进一份隔离的草稿;草稿写完调 review_edit_session 提交审阅。审阅有两种模式,默认是 manual——你在打开着的 OpenChatCut 里预览、勾选、批准或拒绝;auto 才会在 review_edit_session 时直接落盘 48。get_edit_session 返回 applied 之后才该报告成功,返回 rejected 或 discarded 就照实报 8。npx skills add 0xsline/OpenChatCut,然后对 Agent 说一句「Set up OpenChatCut」。这条路由技能会自己注册本地 MCP 连接,编辑器那 26 个专用技能则在真正用到时通过 load_skill 按需展开,这样 Agent 的技能列表不会一上来就被塞满 49。你自己的技能放在 ~/.openchatcut/skills/<slug>/SKILL.md,和 ~/.codex/skills、~/.claude/skills 同一套写法,手写一个丢进去就能用,也可以让 Agent 用 manage_skill create 生成 4。occ:不开应用也能干活。occ:列出、查看、新建工程,移动、裁剪、分割、删除、复制片段,调用 Agent 的无头工具,渲染已保存的工程(occ render --out cut.mp4,480p 到 4K,H.264、VP8、ProRes 或纯音频),以及导出剪映草稿。写操作要加 --apply,走和应用同一套版本校验提交,并且留下一个可以在应用历史里恢复的版本。同一版里,应用没开时的离线 MCP 会话也能做更多事了 10。~/.openchatcut,IndexedDB 只是浏览器侧缓存;素材放在你自己指定的本地目录;API key 只存在于服务端配置,浏览器拿不到;MCP 默认只绑本机,对公网暴露要自己配 Bearer token;运动图形与着色器代码跑在受限沙箱里 4。官方文档在这一条上给了一句限定:当前的桥是为「一台机器上的一个用户」设计的,不是多租户服务 4。| 你手上要有 | 它交回 |
|---|---|
| 一台 macOS、Windows 或 Linux x64 的机器,或者愿意自己装 Node 24 | 一个本地工程库:~/.openchatcut 下的工程、聊天与版本记录,加一个你可以自己备份或迁移的素材目录 4 |
| 一个够用的模型账号:API key(Anthropic、OpenAI、Gemini、Kimi、Qwen、GLM、DeepSeek、MiniMax、Grok、OpenRouter 等),或者一份 ChatGPT 订阅 | 一份可继续编辑的多轨工程,而不是一条不可改的 mp4;导出可以是 MP4、纯音频、字幕、FCPXML,也可以整份工程 4 |
| 一个能连 MCP 的编码 Agent(Codex、Claude Code、Qoder、千问办公或任何 Streamable HTTP 客户端) | 同一套剪辑工具的外部入口:外部 Agent 调的就是编辑器内部那套命令,不存在第二份工程格式 4 |
| 转写要么给一个托管 ASR 的 key,要么接受本地下模型与 whisper.cpp | 词级转写稿驱动的剪辑:按文字下刀、压缩停顿、说话人区分、字幕跟着转写走 4 |
| 想接商业生态的话:一份剪映 / CapCut 的本地环境 | 剪映草稿导出,导出器里钉死的是 capcut-cli 0.26.0,可用 CAPCUT_CLI 换成别的版本 10 |
skills add 只是把「怎么指挥这个编辑器」的知识放进 Agent,它不会给你装上 OpenChatCut 本身;安装包从 Releases 拿,源码方式则要 Node 24,两条路都不含任何模型额度 4。素材生成仍然在别处。 它自己不做模型,图像、视频、语音、音乐、音效都发给你配好的那家服务,.env.example 里按 LLM、图像、视频、语音、音乐、素材搜索、网页抓取、对象存储分了十几组凭证,就是一个用户实际要面对的选择面 11。
assets/readme-pic/01-editor-overview.png,项目自己拿来当产品导览的第一张图。左边是对话栏,Agent 正在说明「把素材池里的『验收生成图』添加到视频 2 轨道末尾」,下面跟着它依次调用的 edit_item、read_timeline、read_project;中间是素材池;下面是四轨时间线,V2 上压着字幕条、V1 上排着三段实拍与特效、A1 是波形。这一屏就是「它交回什么」的答案:一次对话的结果落在真实轨道上,而不是一个播放器里的成片。12package.json 把范围锁死在 >=24 <25,大版本不对会被直接挡回来 13。四条命令:克隆、npm install、cp .env.example .env.local、npm run dev,然后开 http://localhost:5199。两个容易踩的点写在 README 里:一是编辑器需要浏览器的安全上下文,必须用 localhost / 127.0.0.1 或 HTTPS 打开,用局域网 IP 走普通 HTTP 的话 Web Crypto、WebCodecs 和剪贴板都被浏览器关掉,工程列表还能出来、编辑器打不开;二是 Linux x64 上 npm install 会顺带下载 ONNX Runtime 的 CUDA provider(几百 MB),纯 CPU 的机器改用 ONNXRUNTIME_NODE_INSTALL=skip npm install 4。npx skills add 0xsline/OpenChatCut。MCP 端点是 http://localhost:5199/api/external-mcp/mcp,Streamable HTTP,必须带 Bearer token;这个 token 默认只生成在服务端内存里、只在编辑器的 Settings → MCP 页面显示,服务一重启就换一个,所以每次重启都要拿新的配置去更新客户端 14。注册命令按客户端不同:Codex 用 codex mcp add openchatcut --url ... --bearer-token-env-var OPENCHATCUT_MCP_TOKEN;Claude Code 用 claude mcp add --transport http -H "Authorization: Bearer <token>" openchatcut <端点>;Qoder 有一键写入自己设置文件的按钮;千问办公因为把 MCP 服务存在自己的连接器里,只能手动粘贴那段 JSON 4。连上之后的验收信号也很明确:openchatcut_status 与 list_projects 各调一次,编辑器和工程都列出来才算通 14。
Server tool claim is permanently unavailable: HTTP 404,而不是一条说明额度与如何续跑的提示;持久化的那一轮里正好 100 条请求记录(84 允许、16 拒绝)。触发条件:一轮内置 Codex 编辑里工具调用超过 100 次。现状:#186 由 windzu 在 2026 年 9 月 29 日提交,open;报告给出了复现版本 v0.2.14 的提交号与两个常量(MAX_SERVER_TOOL_REQUESTS = MAX_APPROVALS = 100),环境是 Ubuntu 24.04 / Node 24.11.0 / Codex CLI 0.155.0 19。你能怎么办:把一轮编辑拆成几段小的,别指望一次对话走完一条片子。Stored project ... changed ownership or revision during the offline edit. Start a new MCP session.,只能重开会话。触发条件:Agent 改工程的同时你也在改。现状:#151 由 23233 在 2026 年 9 月 14 日提交,open;报告人把这条描述成「非常有心智负担」,说他很怕鼠标点到素材上 17。你能怎么办:把「Agent 在改」和「我在改」分成两段时间;需要并行就先结束会话,别指望它和你的手同时持有一份工程。transcribe_track: transcription failed,提示去「设置 → 转写 → 本地模型」检查模型是否已下载,但模型装过也不一定被认。触发条件:用本地 Whisper 转写,尤其是非英语素材与第三方模型目录。现状:#120 由 vthpeke-dotcom 在 2026 年 8 月 27 日提交,13 条回复,open,报的是 v0.2.9 的 Windows 20;#127 另有一份更具体的:用 voicebox 装的 medium 模型被告知格式不同,large 又超出应用支持范围(应用最多到 medium)21。0.2.15 的更新日志里有一串相关修复——内存评估改成按 GGML 文件大小算,8 GB 的机器不再退回浏览器引擎再内存溢出,浏览器引擎报错时改用界面语言说明——但两条 issue 都还是 open 10。你能怎么办:先升到 0.2.15 再试,转写这一环先用小模型跑通再决定要不要换托管 ASR。src/agent/skills/ 下实际有 30 个 SKILL.md,多出来的 4 个是 known-errors、openchatcut-plugin-basics、product-help、skill-creator 这类管家条目;同一项目里 README 给的 Discord 邀请是 discord.gg/bSGUAeWYkh,官网文档页给的是 discord.gg/JActyWMjms。触发条件:照着文档数功能或找入口。现状:以上都是 2026 年 9 月 30 日采集时两份官方材料的原样。你能怎么办:技能清单以运行中 load_skill 返回的为准——官方文档自己把「活的工具描述」写成唯一权威 9。package.json 的 engines 字段(>=24 <25)413。你能怎么办:先用安装包装一遍看能不能跑,再决定要不要为它单独准备一个 Node 24 的环境。orphaned: true 的会话按 recoveryActions 选 resume 或 discard,终态 stale / cancelled / failed 的会话不能续只能重开 23。你能怎么办:把这份恢复清单当手册,出问题时按症状对号入座,别在客户端里反复重试同一个断掉的端点。LICENSE,全文就是 GNU Affero General Public License v3.0,README 把它写成「v3.0 or later」 34。落到四种真实用法上:ChatCut-Inc/agent-plugin 项目,而上游插件声明的许可是 GPL-3.0-only;这份说明只覆盖 src/agent/skills/ 及其配套文件,仓库其他部分与第三方依赖各按自己的条款 2526。要动技能那 30 个文件的人,得先看清自己动的是哪一套。
read_project,最后回报「已把素材池中的『验收生成图』放到 V2 末尾:从第 390 帧起,时长 90 帧(3 秒)」。这一屏同时说清了两件事:它是中英文双语项目,以及 Agent 的每个动作都落在真实轨道上。27.env.example 是这个选择面最直接的证据,它按 LLM、图像、视频、语音、音乐、素材搜索、网页抓取、对象存储分了十几组凭证,其中素材搜索单独给了 Pexels、Pixabay、Unsplash、Freesound 四家(任意一家即可启用)11;官方把「免费的安装包不含模型额度」这句话写在了文档最显眼的位置 16。二是你自己的机器与时钟——本地渲染、本地转写都在你的 CPU 上发生,前面那条「1 分钟项目渲 10 分钟」的报告就是这两处的合计代价,适用范围见上 17。| 方案 | 你给它什么 | 它给你什么 | 它在这一层 | 许可与公开体量 |
|---|---|---|---|---|
| OpenChatCut(本期) | 一个能连 MCP 的编码 Agent、一个模型账号、一份本地工程 | 一份可以先过目、再作为一步撤销提交进真时间线的多轨工程 | 剪辑环境,Agent 与你在同一个工程上用同一套命令 | AGPL-3.0,2,050 star、309 fork、26 个 release 1 |
| Remotion | React 组件 | 用 React 工程渲染出的视频 | 它这一层的渲染与预览底座,也是本期预览与服务器端渲染的底 | 源码可见的 Remotion 许可,61,111 star 28 |
| HyperFrames(第 14 期) | 一句需求加网址 / 剧本 / PR / 音乐,或一份现成的网页工程 | 可继续编辑的网页工程,加一支 mp4 | 渲染底座 | Apache-2.0,54,242 star 29 |
| hypit(第 15 期) | 一个编码 Agent、一条参考视频或一句需求、一个模型服务账号 | 一份可读可改的 SVML 作品源码与一支成片 | 工作流描述语言,自带编译器与包生态 | 带附加条件的 Apache-2.0,17,505 star 30 |
| Diffusion Studio(第 13 期) | 一个项目文件夹与能连 MCP 的 Agent | 可继续改的 JSX 时间线工程 | 合成文档与剪辑环境 | MPL-2.0,3,144 star 31 |
| video-use(第 3 期) | 一个素材文件夹 | Claude Code 或 Codex 读着转写稿剪出的 final.mp4 | 装进 Agent 的剪辑技能 | MIT,27,618 star 32 |
| OpenStoryline(第 6 期) | 素材与剪辑意图 | 18 个工具节点串出的剪辑产线 | 剪辑编排产线 | Apache-2.0,3,455 star 33 |
| capcut-cli(第 10 期) | 本机剪映草稿库 | 还能继续编辑的剪映工程 | 草稿文件读写 CLI | MIT,808 star 34 |
| Comfy MCP(第 9 期) | 提示词与工作流模板 | 生成的素材 | 生成底座 | AGPL-3.0 或商用许可,241 star 35 |
capcut-cli 0.26.0,而 capcut-cli 的作者反过来在它的仓库里提了一个请求,希望把 OpenChatCut 写进自己的「Built with」一节 1036;另一条是它和第 13 期分岔的地方——同样是「Agent 和你轮流改一份工程」,一个把工程写成源码,一个把工程留在本地库里、只让 Agent 交动作。github.com
github.com
github.com
github.com
remotion.dev
modelcontextprotocol.io
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
openchatcut.com
openchatcut.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
openchatcut.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.