Repository navigation
v0.37.0 — the score, and the second take
clip.mp4
proofcut is an AI video editor that proves its cuts. It is an MCP server
over ffmpeg, whisper, MLT and OpenTimelineIO. An agent, the proofcut
command line, or the browser window takes your recordings and returns a
finished, mastered film: cut by transcript, with b-roll hung off the words,
cards, captions, and a score under the voice. It renders on your own machine,
then transcribes the render and checks that it says what the edit says.
It is source-available under PolyForm Shield 1.0.0: any use is allowed except
building a product that competes with it.
Since v0.36.0, the film has a score and a second take. v0.36.0 gave the
film the grammar a launch clip uses; this release is about what you hear, and
about joining two recordings into one film.
- A second recording follows the first, through a dissolve.
followjoins
two takes end to end, anddissolvecrossfades the join out of the incoming
clip's own pre-roll — the seconds of it before its in-point — so the film is
no length longer for the transition and every declared length stays the
edit's. - The score takes a level of its own. A bed can level to a loudness target
where there is no voice for it to sit under, play on under the end card, and
fade across the film's last frames rather than after them. A bed can also be
passages rather than one cue, rotated and crossfaded, and addressed by a
named event in the footage instead of a timestamp. - The duck hears every lane. The bed now dips for audible insets and for
one-shot sounds marked to duck, each gated against its own loudness — not
only for the voice — so a screen recording with sound still pushes the music
down. A sound can be trimmed to a slice of its file, and trimming it
re-rolls no other hit. - An inset can be levelled to a measured speech level, recorded once as
its gain rather than guessed at per render. - A lower third's footnote is its own layer, entering after the headline
and rising less than it does. - A head or tail on a project with no cues goes on the edit's own track, so
a cold open or an end card no longer needs a picture cue to hang from. - A/B review rounds.
proofcut reviewstates the question, says what each
clip is, and takes one answer, over a page that needs no JavaScript and
carries its own token — made for deciding between two cuts on a phone. - The install says what it costs before it does anything.
proofcut setup --planprints every piece it would fetch, its size, and
whichdoctorrow asked for it, then stops without touching your machine.
§ What it puts on your machine
is the whole footprint — where each piece goes and the command that removes
it. The two-minute demo no longer needsespeak-nginstalled either: it
synthesises its voice from the same library as a wheeluvfetches, so
building the demo asks for no package manager.
Fixed. The review page's inline stylesheet was blocked by its own
Content-Security-Policy, so it drew unstyled on a phone with every test green.
A caption burn onto its own render is refused by name instead of destroying
the file. cut_by_time names a span past a retimed render rather than
returning an empty interval.
Where it runs. Linux is where proofcut was built and measured: from a
bare Ubuntu 24.04 and a bare Fedora 44, following only the docs, the demo
reached a verified render. Intel Mac: one person ran the test kit on
their own Mac, and it reached a checked render: all 34 words heard back, 289
of 289 frames, the master at −16.1 LUFS
(issue #6). Windows:
the author's laptop and GitHub's runner both take the demo to a checked
render, and nobody else has tried it yet
(issue #2). Apple
silicon: nobody has run it by hand
(issue #1). One script
runs the whole test and removes what it installed.
Start with docs/DEMO.md.
It takes two minutes and runs on media the repo generates itself, so there is
nothing to download and no licence question. If proofcut doctor shows a ✗
on your machine, that output is the most useful thing you can send.