« All posts

FableCut: an open source video editor AI agents can drive

FableCut uses a single JSON project file as its interface, letting humans and AI agents share one video timeline via a simple revision counter.

FableCut is a browser-based video editor built to be operated directly by AI agents. The core design choice is that a single JSON file, project.json, is the interface itself: all media, clips, tracks, keyframes and transitions live there, while the editor UI and export pipeline simply read that file. As a result, any tool that can write JSON, Claude Code via MCP, a Python script, jq, or a plain text editor, can edit the video without a dedicated API layer.

Change notifications go through SSE, but the channel carries no payload; the server watches the file with fs.watch, debounces for 150ms, and just tells the browser something changed so it can refetch and re-render. Concurrency is handled by a single revision counter: every write must bump it, and a write with a stale revision gets rejected with a 409. This lets a human drag a clip in the UI while an agent edits in parallel, with conflicting writes simply retried and reapplied, no operational transforms or CRDTs required.

Another notable detail is how CSS @keyframes-animated SVG overlays (lower thirds, confetti, etc.) are rendered deterministically frame by frame at export time by pausing the animation and offsetting it with a negative animation-delay. The author stresses this isn't a replacement for ffmpeg, but rather an editable state-and-preview layer sitting between the agent and ffmpeg, keeping every edit as a JSON diff that previews within seconds instead of baking straight into a filter graph. Known limitations include needing an open browser for export (no headless export yet) and Chromium-first support; human oversight still matters, since the agent does the labor but the human still judges the cut.