**An AI video editor that proves its cuts.** Your recordings in, a finished,
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
mastered film out: cut by transcript, with b-roll, cards, music and captions,
and every step an agent can call. proofcut renders on your own machine, then
transcribes the render and checks that it says what the edit says.
https://github.com/user-attachments/assets/4153d180-3d7c-4c70-af5f-54d63d0a8bd5
An agent cutting a demo video, unattended, from a goal and no steps.
The two runs it was cut from, uncut
Silent, because the recorder took frames only; the voice is in the film the
agent cut. The workspace
(2:26) and Claude Code with the proofcut plugin
(3:09).
Runs on Linux, where it is developed. macOS and Windows pass the test suite
on CI; how far each has gone by hand is
§ Help wanted.
Quickstart
With uv installed:
Then make the two-minute demo, or give an agent the
tools with the Claude Code plugin. § Try it
walks all of it.
Why it exists
Most of the work in a narrated video, whether an essay, a tutorial, a
screencast or a talk, is bookkeeping. Find the retakes and cut them clean. Put the right
footage under each line. Level the music under the voice, caption it, end on
a card, render it, master it. An agent can do that bookkeeping now, given an
editor it can drive.
What an agent cannot do on its own is know that the file it rendered is the
film it meant. ffmpeg, melt and auto-editor all exit 0 on some failures, so a
render can drop a line, keep a retake, add a frame of black or carry no
captions and still report success. Every check that reads the project
rather than the file agrees with it. The usual way to find out is to watch
the whole thing.
proofcut is an editor built around that gap. You, or an agent, edit a
timeline addressed by the words in it. proofcut renders it on your machine,
then transcribes the render, counts its frames, and says where the file and
the edit disagree.
Here it is on the demo project. The retake is cut from the edit, and
verify is pointed at a render made before the cut:
The file still says the thirteen words the edit took out, and verify names
them. A render of the edit as it stands hears all 34
(DEMO.md
step 7).
Run, not staged
TRIAL.md
scores three unattended runs, each handed a goal and no steps, and each
passed every one of its checks:
- **The demo cut**, the one above.
- **Real footage.** 96 seconds of narration with its fluffed takes left in,
plus four clips of film footage. The agent cut it to 45 seconds, chose
footage by what each line was about, burned captions, and checked its own
render: all 123 expected words heard back.
- **A whole film.** The demo material plus a score, briefed as a finished
film ready to upload. In 192 seconds and $2.27 the agent cut it, laid the
music under the voice, ended on a card, mastered it to −16 LUFS, and
checked it. The score, the level and the end card were each measured in
the delivered file, not taken from the project.
How it compares
COMPETITORS.md
reads every entry from its source, most recently on 2026-09-28. In short:
- **Transcript editors** (the Descript model, and its open-source
re-implementations) cut by deleting words, for a person's hands. None of
the open ones has an agent surface, and none checks its render.
- **Agent editors over MCP** let an agent drive the edit. The nearest render
checks among them compare the duration within a tolerance, or transcribe
short windows around suspect seams. None diffs the whole render's words
against the cut.
- **NLEs** (Kdenlive, Resolve, Premiere) are where a person finishes by hand,
and DaVinci Resolve 21.1 now ships an MCP server of its own. proofcut
exports to them rather than replacing them, and, with the trim brought back
by import-edit, verify checks what they deliver.
- **auto-editor** removes silences headlessly. proofcut uses it as a render
backend.
What proofcut lacks that others have: a check for frozen or silent spans in
a render.
What it can do
Every stage from the first import to the delivered file is a proofcut
command. No NLE finishes the film, and nothing else touches the render. Each
row links the manual
section that walks it.
| Stage | Command |
|---|---|
| Bring in the voiceover and footage, and transcribe | import, transcribe |
| Cut retakes and asides by naming their words | cut vo 111:114 |
| Hang b-roll and cards off the lines they belong to | cue add, card new |
| Open cold on a scene, end on a card | head, tail |
| Play the footage's own lines in a gap, or under the narration | hold add, hold under |
| Score it: placed passages, crossfaded, levelled under the voice | music |