Skip to content
All work
Work 04 - CLI

ReelCut

A CLI AI video editor for short-form content. Article → script → screenshots → transcribe → cut → render.

StatusActive
InterfaceCLI
StackPython · ffmpeg
LicenseMIT
1:51phone take
1:01auto-cut
×6shipped reels

One recording of claude-text-watermark: three hook variants read back to back, then the body once. ReelCut cuts it once and splices each hook onto the shared cut body. Nothing below is illustrative - every span is that run's EDL.

h1h2h3shared body, recorded once
Take111.0 s · 211 words · solid = speech kept
49.3 s removed
Cut61.7 s · same words · silence ×9, breath ×3, noise ×7, retake ×9
030 s60 s90 s111.0 s

Both bars are drawn to the same scale - 1 px = 0.12 s - so the cut really is 55% as long. ticks under it = the 7 image overlays, cued by a script word (dashed = concept image); they live in the shared body, so all six Reels inherit them. Every span and count is read from that run'scaptions.json, debug.6.summary.txt, images.json andoutput/.published.

A 111-second phone recording containing three hook variants and a shared body, auto-cut to 61.7 seconds - 49.3 seconds of silence, breath, noise and retakes removed - then split into six finished Reels that all share the cut body.

Why

Short-form editing is a pipeline, not a canvas. Most of the work - pulling the script out of a source, grabbing the screenshots, transcribing, cutting to the transcript, rendering - is mechanical, and a timeline UI makes you do it by hand. ReelCut runs the pipeline and leaves you the parts that need judgement.

What it does

  • Script from a source article - point it at a URL and it writes the spoken script, three hook variants ahead of one shared body, and screenshots the article as it goes.
  • Auto-cut to the transcript - faster-whisper transcribes, WhisperX aligns to ±30ms, and every silence, breath, noise gap and false start comes out. Cuts snap to sentence boundaries rather than mid-clause.
  • Retake detection - a repeated phrase is scored across the whole candidate rather than its opening, so three hooks that share an opener survive while a real second attempt is cut.
  • Word-level captions - burned in frame by frame, word-highlight or full-line.
  • Image overlays - article screenshots cued on an exact script word, plus auto-detected brand logos and Wikipedia headshots for names.
  • Phone in, phone out - the script and an upload link go to your phone over Tailscale; you record against the script, upload, and the finished Reel comes back as a streamable link.

One take, six Reels

The script holds three hook variants ahead of one shared body, and you record the lot in a single phone take. ReelCut cuts that take once, then splices each hook onto the shared cut body - and gives each one a re-titled sibling. Six posts from one recording, and the bodies are identical because they are the same file.

Running it

Three commands, each re-runnable on its own, so a bad take costs you one stage rather than the whole video.

  1. /produce-script - article → script and screenshots.
  2. /prepare-video - transcribe the footage, review and fix the edit.
  3. /produce-video - assign image timings, render, publish.