FableCut docs
The manual for FableCut, built from CLAUDE.md in the repo: the same text your agent reads through the fablecut_docs tool, so what you read here is what it knows.
MCP toolsConnect an agent, and the calls it uses to read and change your timeline without burning tokens.project.jsonThe whole edit in one file: canvas, markers, tracks, media and clips.Clip propsEvery property a clip can carry and its default. A key a clip leaves out falls back to these.Editing rulesHow tracks, links, locks, targeting and the trim tools behave, for people and agents alike.Asset librarySound effects, overlays, fonts and animated SVGs that ship with the editor, and how to make your own.RecipesShort answers for common edits: grades, captions, speed ramps, transitions and more, each one a few props away.Remake a referenceTurn a video you like into a blueprint of shots, beats and energy, then rebuild it with your own footage.REST APIThe HTTP endpoints behind the editor, for scripts and tools that don't speak MCP.ExportThe three export engines, which range gets exported, and the ffmpeg encoding profiles.
Run#
node server.js # → http://localhost:7777Files: index.html + style.css + app.js (editor UI), server.js (API + hosting), project.json (the timeline - THE file to edit), media/ (project footage), library/ (default asset library, see below).
How Claude Code edits a video#
- Ensure the server is running (background:
node server.js, orfablecut_status). - Put source files in
./media/(copy them in, import via the UI / + URL, orfablecut_import_mediawith a local path or HTTPS URL). - Read
project.json, modifymedia/clips, incrementrevision, write it back. - The browser UI (if open) reloads instantly. The user previews/exports from the UI.
Rules:
- Prefer
fablecut_set_projectover direct file writes - it detects conflicts automatically (see the MCP section above). If you do writeproject.jsondirectly, read it immediately before writing (never write from a stale read: if the user tweaked something in the UI between your read and write, that write destroys their changes). The UI detects external changes by revision comparison, so a write that does not bumprevisionis invisible to it. - Make each edit a single atomic write (read → modify → write once), and bump
revision(integer). Partial multi-step edits can be picked up half-finished. - New media entries may omit
duration- the browser probes it and writes it back. If you need the duration yourself, re-readproject.jsonafter a second or two, or probe with ffprobe. - Don't edit
project.jsonwhile the UI may be mid-drag - the UI defers external reloads during gestures, then picks up the next change.