# FableCut

Zero-dependency browser video editor whose project.json is the interface, with MCP and REST on top.

A Premiere-style editor served by one Node file. The whole timeline is a JSON document; an agent patches it over a stdio MCP server or REST and the open browser UI hot-reloads. Filters, keyframes, kinetic captions, animated SVG overlays, and a reference-video analyzer are built in.

Alternative to: CapCut, Descript

- Capabilities: adaptable, operable
- Vertical: video-streaming
- Shape: product
- Form factor: web-app
- Execution model: deterministic
- Provenance: unknown (recorded, never ranked)
- Repo: https://github.com/ronak-create/FableCut (MIT), 651 stars, last commit 2026-09-01
- Last activity: 2026-09-01
- Page: apps/ronak-create--fablecut.html
- JSON: apps/ronak-create--fablecut.json

## Use it when

- I want an agent to assemble reels from my clips to the beat while I watch the timeline and fix things by hand
- I need a self-hosted editor with no build step that my agent can drive from a JSON file

## Gotchas

- Export is a browser action; the agent cannot finish the job without a human click or a separate ffmpeg render
- Chromium-based browser required; ffmpeg optional but needed for fast export
- Concurrent edits are guarded by a revision counter; agents get 409s if you edit at the same time

## Editions

- Free: Free, open source
  - source: https://github.com/ronak-create/FableCut
  - installable: git clone https://github.com/ronak-create/FableCut.git && cd FableCut && node server.js
  - installable: /plugin install fablecut@fablecut

## Adaptable: make it yours

Effort: config-only (10 things to edit)

Set FABLECUT_DATA_DIR to keep project.json, media, exports, and library outside the checkout. Edit encoding-profiles.json (hot-reloaded) for export presets and pin one with encodeProfile in project.json. Drop fonts, overlay art, SFX, and SVGs into library/. HOST and FABLECUT_ALLOWED_HOSTS open it to a LAN. The agent manual is CLAUDE.md, which you can extend with house recipes.

- Env vars: FABLECUT_DATA_DIR, HOST, FABLECUT_ALLOWED_HOSTS
- Config files: encoding-profiles.json, project.json, library/fonts/, library/elements/, library/svg/, library/sfx/
- Prompt files: CLAUDE.md
- Accounts you'll need: none

## Operable: what an agent can drive

Operability: official. Interface: mcp at https://github.com/ronak-create/FableCut#driving-it-with-an-ai-agent (published by the builder, local).

### Reach (partial coverage)

- Cut, trim, and arrange clips on 3 video and 4 audio tracks: reachable. MCP tools fablecut_patch_project, fablecut_set_project, fablecut_get_project
- Import media: reachable. MCP tool fablecut_import_media; REST POST /api/upload
- Color grades, filters, adjustment layers, chroma key: reachable. README: effects are properties in project.json; CLAUDE.md schema served by fablecut_docs
- Keyframe animation, speed ramps, transitions: reachable. README: keyframes and transitions are project.json fields
- Titles and kinetic captions: reachable. README: text clips with title styles and caption animations in the schema
- Author animated SVG overlays: reachable. README: agents can author .svg files; svg clip kind
- Analyze a reference reel for beats and structure: reachable. MCP tool fablecut_analyze_reference; POST /api/analyze
- Export the finished video: not reachable. README Notes: export runs in the browser; agents ask you to click Export or render with ffmpeg from media/
- AI background removal: not reachable. README: in-browser MediaPipe from the UI
- Browse the asset library: reachable. REST GET /api/library

## Code stack

- Languages: JavaScript
- Frameworks: Node (no npm dependencies), ffmpeg, MediaPipe
- Package manager: none
- Database: none
- Hosting target: localhost

## Skills

bundled: A Claude Code plugin that drives FableCut to edit a video or remake a reel.
- Paths: skills/edit-video/SKILL.md, skills/remake-reel/SKILL.md
- Install: /plugin marketplace add ronak-create/FableCut

## Evidence and confidence

- formFactor: README: runs entirely in the browser at localhost:7777 behind node server.js (confidence 0.95)
- executionModel: no model at runtime; MediaPipe cut-out is a bounded in-browser model (confidence 0.85)
- operability: README: three equivalent control surfaces for agents (MCP, REST, file writes) alongside a complete GUI; mcp-server.js present in the first commit 2026-07-06; README Notes: export runs in the browser (confidence 0.8)
- effort: README Quick start names FABLECUT_DATA_DIR, HOST, FABLECUT_ALLOWED_HOSTS, encoding-profiles.json, library/ (confidence 0.9)
- editions: README license: MIT; no paid edition (confidence 0.99)
- active: GitHub pushedAt 2026-09-01
- reach:  (confidence 0.85)

## Open questions

- Provenance: a single-author zero-dependency editor with an agent manual reads as agent-assisted; no Builder statement found

## Sources

- https://github.com/ronak-create/FableCut (sourcing:video-streaming:curated)
- https://ronak-create.github.io/FableCut/ (sourcing:video-streaming:curated)
