Editor API、插件、MCP server、无头渲染:五条承诺目前都还是承诺
先把状态摆在最前面,因为这一篇里最容易被误读的就是状态。
本文描述的是 OpenCut 重写版仓库当前的代码结构与官方 README 声明的路线图。该版本尚未发布,Editor API、插件体系、MCP server、无头模式等均为官方声明的计划,我们没有见到可用实现。
另:本文在提到旧版行为时,描述的是 OpenCut 旧版(classic)。该代码库已归档、不再维护,
opencut.app线上目前仍运行该版本;重写版正在开发中,功能与操作可能变化。
这不是免责套话。OpenCut 现在有两个仓库,状态截然不同:重写版主仓是 OpenCut-app/OpenCut,旧版是 OpenCut-app/opencut-classic,后者在 GitHub 上的 archived 字段是 true。你在搜索结果里看到的绝大部分「OpenCut 能做什么」的说法,混的就是这两个仓库。
README 到底承诺了什么
重写版主仓 README 的 Status 段落第一句写得很直白:OpenCut is being rewritten from the ground up(OpenCut 正在被从头重写)。紧接着列出「即将到来」的一组东西,常被概括成五条:
- 一个 Editor API
- 一等公民的第三方插件(由插件优先的架构实现)
- 桌面、移动、浏览器共用一套代码库(Rust 核心)
- 一个 MCP server(面向 AI agent)
- 无头模式(自动化、批量渲染)
清单后面其实还跟着第六项:编辑器里直接内置的脚本标签页。
这五六条放在一起,勾勒的是一个「可编程的剪辑器」:有 API 可调,有插件可扩,有 MCP 让 agent 接进来,有无头模式跑批。对做自动化视频流水线的人来说,这个组合确实有吸引力——但它们目前一条都没有可用实现。README 自己也把话说全了:旧版本仍在 opencut-app/opencut-classic,那才是今天该用的那个;opencut.app 跑的仍然是 classic 版本;重写版会先住在 new.opencut.app,直到它准备好接管。
「直到它准备好」——README 没有给任何时间表,我们也不做预测。
怎么自己核实,而不是听别人转述
这一节才是重点。路线图这种东西,转述一次走样一次,你需要一套自己能重复的核查动作。以下都是我们在核对日 2026-08-09 实读重写版主仓得到的结论,你按同样的位置去看即可复现。
第一处:Cargo.toml 的 workspace 成员。 根 Cargo.toml 里,members 只有 apps/desktop 一个真正生效的成员,crates/* 那一行是被注释掉的。README 承诺的「Rust 核心」,在这个仓库里还没有对应的 crate。同一个文件里 [workspace.package] 的 version 是 0.1.0、edition 是 2024、license 是 MIT,[workspace.dependencies] 里 GUI 框架是 gpui = "0.2.2"(Zed 编辑器所用的 Rust GUI 框架,这里只陈述依赖事实)。
判断依据:第 3 条「跨三端共用一套代码库(Rust 核心)」要落地,前提是那个核心 crate 存在且被 workspace 纳入。注释还挂在那儿,说明这一层目前不在构建范围内。
第二处:apps/desktop/src/ 的实际内容。 桌面端目录里是 main.rs、shell.rs、theme.rs,一个 components/ 目录(badge.rs、button.rs、context_menu.rs、label.rs、mod.rs、resizable.rs、separator.rs)和一个 panels/ 目录(browser.rs、inspector.rs、preview.rs、timeline.rs、mod.rs)。四个 panel 文件名勾勒出一个典型编辑器的四区布局——但这是从文件名做的推断,我们没有见过界面,也没有编译运行过。
第三处:apps/web/src/ 的规模构成。 整个 web app 目录共 98 个文件,其中 apps/web/src/components/ui/ 下是 40 多个 shadcn 风格的基础 UI 组件(accordion、button、dialog、command 等)——这是通用组件库,不是编辑器功能。其余是 routes/、hooks/、lib/。数文件数不是为了评价工作量,而是为了让你有个尺度感:不要看到「40+ 组件」就以为剪辑功能已经堆起来了。
第四处:apps/api/。 这里只有四个文件:src/index.ts、wrangler.jsonc、moon.yml、package.json,是一个 Cloudflare Worker。我们没有读 index.ts 的实现,因此不描述它提供什么接口——但可以确定的是,第 4 条承诺的 MCP server 不能靠「这里有个 api 目录」来推定成立。
第五处:moon 任务清单。 apps/web/moon.yml 里定义的任务是 dev、build、test、deploy(deploy 用 deps: ['~:build'] 声明依赖);仓库根 moon.yml 里另有一个 upload-logos 任务,读 .env.local、要求 R2_BUCKET 变量、把 brand/marks/*.svg 用 wrangler r2 object put 传到 R2。没有任何一个任务对应「无头渲染」或「批量导出」。 第 5 条承诺同样只在 README 里。
想自己把重写版仓库跑起来看看
重写版主仓 README 给的步骤是 proto + moon。先装 proto:
# Linux, macOS, WSL
bash <(curl -fsSL https://moonrepo.dev/install/proto.sh)
# Windows PowerShell
irm https://moonrepo.dev/install/proto.ps1 | iex
Windows 上如果 shim 跑不起来,README 给的处置是 Set-ExecutionPolicy -Scope CurrentUser RemoteSigned(为当前用户允许本地脚本)。然后在重写版主仓的仓库根目录:
proto use # 安装 .prototools 里钉住的工具
moon run web:dev # localhost:5173
moon run api:dev # localhost:8787
moon run desktop:dev # 见 apps/desktop/README.md
.prototools 把工具版本钉死在 moon = "2.3.3"、bun = "1.3.11"、rust = "1.97.0",文件注释写明意图是让每个开发者和 CI 机器自动拿到完全相同的版本。注意端口:重写版 web 是 5173、api 是 8787,classic 用的是 3000,别把两边的地址记混。
以上命令原样抄自重写版主仓 README,我们没有安装 proto/moon,也没有跑过任何 moon 任务或构建过桌面端,请以仓库最新内容与官方 README 为准。另外提醒一句:把仓库跑起来,看到的是当前代码的样子,不会因此多出五条承诺里的任何一条。
changelog 那三个版本怎么算
重写主仓的 changelog/ 目录里有三份文件:0.1.0(2026-02-23,Editor foundation,14 条)、0.2.0(2026-03-01,Motion & effects,19 条)、0.3.0(2026-04-15,Masks, animation & more,52 条)。内容是属性面板重建、关键帧动画、特效系统、蒙版、曲线图形编辑器、音量与速度控制这类编辑器功能。
这些条目容易被拿来当作「重写版已经很能打了」的证据,但归属需要谨慎:我们能陈述的只是「重写主仓的 changelog/ 目录里记录了这三个版本及其条目」。README 没有明说这份发布历史属于哪一个代码库,我们不做推断。同样地,条目里「播放性能大幅改善」这类描述是官方 changelog 的自述,不是我们的测评结论——我们没有编译或运行过任何版本的 OpenCut。
那现在该怎么办
- 你现在就要剪片子:用 classic,或者直接用
opencut.app(README 说线上跑的仍是 classic)。同时要知道 classic 已归档、不再接受提交与 issue;代码是 MIT,你仍然可以 fork 自行维护。归档本身不等于「不安全」或「有漏洞」——我们没有任何安全信息,也不会替它下这个判断。 - 你是冲着 API / 插件 / MCP / 无头渲染来的:现在没有可用实现,把它放进观察列表,回头看
Cargo.toml里crates/*那行注释有没有被打开、moon 任务里有没有出现渲染相关的条目,这两处比读通告更直接。 - 你想提 PR 参与:先别写代码。主仓 README 原文是 We’re not set up to take outside contributions yet while the architecture is being designed.(架构还在设计中,还没准备好接受外部贡献。)想跟进可以加 Discord(
discord.gg/zmR9N35cjK)或开 issue。
顺带说两个容易被过度解读的数字。核对日 2026-08-09 的 GitHub API 快照里,重写版主仓 star 是 81917、fork 8102、open issues 366,classic 是 star 213、open issues 0。star 数反映的是注意力,不能由它推导出任何关于质量、稳定性或适用性的结论——尤其在主仓这种「代码还在重写、README 明说不收贡献」的状态下。另外,classic README 感谢了 Vercel 与 fal.ai 对开源软件的支持,重写版主仓 README 的 Sponsors 段列出了 fal.ai,如实提及,不做褒贬。
回到标题:五条承诺目前都还是承诺。这句话本身不含褒贬——重写版主仓 README 的 Status 段第一句就写着「正在被从头重写」,那六条也明写在「即将到来」的清单里,口径是项目方自己给的。真正会出问题的,是转述链条上有人把「计划」写成了「功能」,然后你按功能去选型。核查动作就在上面那五处文件里,花不了十分钟。
延伸阅读
- 从 0.1.0 到 0.3.0:官方 changelog 记了些什么
- 重写版的栈:TanStack Start、Vite、Cloudflare 与 Rust gpui
- inputs、outputs、deps:任务缓存的粒度是自己声明出来的
本文依据 OpenCut 官方仓库(github.com/OpenCut-app/OpenCut 与已归档的 github.com/OpenCut-app/opencut-classic)的 README、.prototools、moon.yml、package.json、Cargo.toml 与 changelog/ 整理,核对日 2026-08-09。本文内容为仓库源码与文档口径,我们没有编译或运行过任何版本的 OpenCut。
本文描述的是 OpenCut 重写版仓库当前的代码结构与官方 README 声明的路线图。该版本尚未发布,Editor API、插件体系、MCP server、无头模式等均为官方声明的计划,我们没有见到可用实现。
本文描述的是 OpenCut 旧版(classic)的行为。该代码库已归档、不再维护,
opencut.app线上目前仍运行该版本;重写版正在开发中,功能与操作可能变化。
许可条款请以官方 LICENSE 原文为准,本文不构成法律意见。