HeadlinesBriefing favicon HeadlinesBriefing.com

FableCut: Browser Video Editor Driven by AI Agents

Hacker News •
×

FableCut is a zero-dependency, browser-based non-linear video editor that exposes its entire timeline as a single JSON timeline document. Built on a lone `server.js` (Node 18+) and a Chromium frontend, it runs without npm packages — ffmpeg is optional but enables fast, frame-accurate CRF-18 MP4 export. The editor ships with four video and three audio tracks, drag-trim-split-snap editing, multi-select marquee, beat markers with edge snapping, real decoded audio waveforms, and 12 one-click filter presets. Adjustment layers, full Lumetri-style grade controls, blend modes, chroma key with spill suppression, and in-browser MediaPipe background removal round out the compositing stack. Keyframe animation drives ~25 properties with easing; speed ramps remap both video and the export audio mix. Seventeen transitions, kinetic caption styles (typewriter, word-pop, karaoke), Google Font auto-loading, and CSS-@keyframes-animated SVG overlays complete the toolset.

A reference analyzer (`node analyze.js` or `fablecut_analyze_reference` MCP tool) extracts shot boundaries, beats, BPM, energy curves, and the music track from any reel, letting agents rebuild the structure with new footage. Three equivalent control surfaces — MCP (stdio server for Claude Code/Desktop), direct `project.json` file writes, and REST + SSE — let humans and agents edit concurrently. A revision counter prevents silent overwrites: conflicting writes return 409 or a toast instead of clobbering changes.

The architecture is deliberately minimal: the browser *is* the compositor, so export renders frames on the canvas and mixes audio offline before handing off to ffmpeg. Agents operate via token-efficient patches (`fablecut_patch_project`) and compact clip summaries, not full document round-trips. This makes FableCut a rare example of an AI-native creative tool where the project file *is* the API — no hidden cloud backend, no vendor lock-in, just a JSON schema any script can target.