Video edit, a free agent skill
Raw takes in, a finished short out.
Your agent edits talking-head footage on your own machine with free, open-source tools. It cuts the dead air and the bad takes, adds captions and b-roll, then watches its own render and cuts again until it passes.
Drop your raw clips in a folder, run one command, and get a captioned short you can post.
From 4 raw takes to the finished cut
32 seconds of raw footage over 4 takes became an 18.1 second edit.
What it does
- Cuts pauses, filler words like "um", and restarted sentences.
- Keeps the best take of each line when you shot it more than once.
- Punches in on the word a line leans on.
- Burns in word-by-word captions, with the spoken word lit up.
- Opens on your promise as a text line on the first frame, when you give it one.
- Lays b-roll on the line that names it: a clip called phone-on-tripod lands on the line that says "phone".
- Puts a music bed under the voice and lowers it while you talk.
- Exports 9:16 for Reels, Shorts and TikTok, and 16:9 for YouTube.
- Writes the whole cut to a plan file you can edit before it renders: kept and dropped lines, cut spans, zooms and b-roll.
- Reviews its own render in a timecoded table and cuts again when the score is under 8 of 10 or a filler or long pause is still heard.
- Makes text-over-b-roll list clips from any folder of footage: each clip has its own cut and rhythm, timed sound effects from free-licence libraries, a contact sheet and a manifest.
It checks its own cut
Automatic edits often look random. This one shows its work: it writes the cut plan first, then transcribes its own render again and scores it in a timecoded table. Under 8 of 10, or with a filler or long pause still heard, it cuts again.
On the demo, round 1 still had one "um" that the first transcript had hidden inside the word before it, and a 0.55 second pause after "cut it". Round 2 found the "um" in the source, cut it and cut pauses tighter.
| Review | Length | Score | Note |
|---|---|---|---|
| Round 1 | 19.5 s | 8 of 10 | 1 filler and 1 pause of 0.55 s still heard |
| Round 2 | 18.1 s | 10 of 10 | no deductions |
| Timecode | Spoken line | Source and edit | Feedback |
|---|---|---|---|
| 0:09.4-0:12.7 | A window beats a new phone every time. | take-03 3.96-7.49 s; punch-in on "window"; b-roll at 0:09.7 | clean |
| cut | Okay, so the first thing is, the first, um, no, wait, sorry, let me start that again. | take-02 | restart: the speaker abandons this take |
How to run it
The skill is free: no course, no signup and no "comment to get it". The tools it calls are free too and run on your machine; the one thing you pay for is your coding agent, such as Claude Code. Install the two open-source tools, put your takes in one folder in the order you shot them, and run one command. Name each b-roll clip after what it shows. If a tool or the speech model is missing, the run stops and prints what to install.
brew install ffmpeg-full whisper-cpp
mkdir -p video-edit/fonts && cd video-edit
curl -O https://tools.openkrill.app/video-edit/video-edit.mjs
curl -O https://tools.openkrill.app/video-edit/SKILL.md
curl -o fonts/Inter-Black.ttf https://tools.openkrill.app/video-edit/fonts/Inter-Black.ttf
curl -o fonts/BeVietnamPro-ExtraBold.ttf https://tools.openkrill.app/video-edit/fonts/BeVietnamPro-ExtraBold.ttf
curl -o fonts/BeVietnamPro-Bold.ttf https://tools.openkrill.app/video-edit/fonts/BeVietnamPro-Bold.ttf
curl --create-dirs -o "kit/#1/#2.#3" "https://tools.openkrill.app/video-edit/kit/{boom,snare,pop,paper}/[1-2].{wav,json}"
node video-edit.mjs ../my-video --lang en --hook "1 video a day for a month: 3 lessons"Give SKILL.md to your agent: it lists the speech model to download, every flag and how to fix a cut by hand. Everything lands in an edit folder inside your video folder: the two videos, a table of every shot, the review table with a screenshot, a timecode and a note for each problem it found, and plan.json with every decision.
The person in the demo is not real. Every clip is AI-generated test footage made with Veo, so we could show bad takes and restarts without filming anyone.
Frequently asked questions
Does my footage leave my machine?
No. Speech is transcribed by whisper.cpp and the video is cut by ffmpeg, both running locally. Nothing is uploaded and there is no account.
What does it cost?
The skill and the tools it calls (whisper.cpp and ffmpeg) cost nothing and run on your own machine. The one cost is the coding agent that runs it, such as Claude Code, which has its own plan.
How long does a render take?
About 4 minutes for 32 seconds of raw takes on an M-series Mac, with two review rounds. Renders use the hardware video encoder and run at low priority, so the machine stays usable.
Can I change a cut by hand?
Yes. Every decision is written to edit/plan.json in your video folder: the kept and dropped lines, the cut spans, the zooms and the b-roll. Set a dropped line's keep to true or change its zoom, then run node video-edit.mjs render my-video/edit/plan.json. The raw takes are not transcribed again; the new cut is rendered and reviewed.
OpenKrill builds live-data tools for AI agents, with a human check on the result. This one is early: your agent can cut a video today that it could not cut yesterday.