FableCut은 프리미어 프로 스타일의 브라우저 기반 비선형 비디오 편집기로, 전체 타임라인을 하나의 JSON 문서로 노출하여 AI 에이전트(Claude Code, MCP/REST 지원 도구 등)가 직접 편집할 수 있게 해줍니다. 사용자가 UI로 수동 편집하는 동안 AI가 같은 타임라인에서 실시간으로 영상을 편집할 수 있으며, npm 의존성 없이 단 하나의 Node.js 서버 파일로만 구동됩니다. 이를 통해 영상 편집 작업의 자동화 및 인간-AI 협업이 가능해진다는 점에서 실무적으로 큰 의미가 있습니다.
번역된 본문
FableCut: AI 에이전트가 제어하는 브라우저 비디오 편집기
FableCut은 AI 에이전트가 직접 제어할 수 있는 브라우저 기반 비디오 편집기입니다. FableCut은 브라우저에서 완전히 실행되는 프리미어(Preimere) 스타일의 비선형 비디오 편집기이며, 전체 타임라인을 하나의 JSON 문서로 노출합니다. UI를 통해 직접 편집하거나, AI 에이전트(Claude Code, Claude Desktop 또는 MCP/REST를 지원하는 모든 도구)가 타임라인이 실시간으로 업데이트되는 것을 지켜보는 동안 영상을 대신 편집하게 할 수 있습니다. npm 의존성이 전혀 없고 단 하나의 node server.js 파일만 있으면 됩니다. 이게 전부입니다.
왜 흥미로운가?
대부분의 "AI 비디오" 도구들은 편집 과정을 API 뒤에 숨깁니다. FableCut은 이를 뒤집어, 프로젝트 파일 자체가 인터페이스가 됩니다. project.json은 미디어, 클립, 트랙, 효과, 키프레임 및 전환 효과를 설명하며, JSON을 쓸 수 있는 모든 프로세스는 비디오를 편집할 수 있습니다. 열려 있는 브라우저 UI는 서버 전송 이벤트(Server-Sent Events)를 통해 약 150ms 이내에 핫 리로드됩니다. 사람과 에이전트가 동시에 동일한 타임라인에서 작업할 수 있습니다.
기능
편집
4개의 비디오 트랙 + 3개의 오디오 트랙, 드래그/트리밍/분할/스냅, 실행 취소/다시 실행
타임라인 다중 선택: 고무줄 올가가니(빈 트랙 영역 드래그), Ctrl/Cmd/Shift+클릭으로 클립 추가/제거, Ctrl+A로 전체 선택, Esc로 선택 해제
선택된 클립을 드래그하여 전체 그룹 이동; Delete 키로 모든 선택 항목 삭제; S 키로 재생 헤드 위치의 모든 선택 항목 분할
인스펙터에 "N개 클립 선택됨" 배너 표시
비트 및 큐 마커(재생 중 비트에 맞춰 M 탭) 및 엣지 스냅 지원
클립에 실제 디코딩된 오디오 파형 표시
캔버스 화면비 프리셋(16:9, 9:16 릴스, 4:5, 1:1) + 안전 영역 가이드
룩(Look)
12개의 원클릭 필터 프리셋(시네마틱, 틸-오렌지, 누아르, 빈티지, 사이버펑크 등)
조정 레이어 — 프리미어 스타일로 한 클립이 아래의 모든 클립에 보정 적용
전체 그레이딩 컨트롤: 밝기/대비/채도/색조, 색온도 및 색조, 블러, 그레이스케일/세피아/반전, 비네팅, 애니메이션 필름 그레인
FableCut A browser video editor that AI agents can drive. FableCut is a Premiere-style non-linear video editor that runs entirely in your browser — and exposes its whole timeline as one JSON document. Edit it by hand, from the UI, or let an AI agent (Claude Code, Claude Desktop, or anything that speaks MCP/REST) cut your video for you while you watch the timeline update live. Zero npm dependencies. One node server.js . That's it. Why it's interesting Most "AI video" tools hide the edit behind an API. FableCut flips that: the project file is the interface . project.json describes media, clips, tracks, effects, keyframes and transitions — any process that can write JSON can edit video, and the open browser UI hot-reloads within ~150 ms via server-sent events. A human and an agent can work on the same timeline at the same time. Features Editing 4 video tracks + 3 audio tracks, drag/trim/split/snap, undo/redo Timeline multi-select — rubber-band marquee (drag on empty track area), Ctrl/Cmd/Shift+click to add/remove clips, Ctrl+A to select all, Esc to deselect. Drag any selected clip to move the whole group; Delete removes all selected; S splits all selected at the playhead. Inspector shows an "N clips selected" banner. Beat & cue markers (tap M on the beat during playback) with edge snapping Real decoded audio waveforms on clips Canvas aspect presets (16:9, 9:16 reels, 4:5, 1:1) + safe-area guides Look 12 one-click filter presets (cinematic, teal-orange, noir, vintage, cyberpunk…) Adjustment layers — one clip grades everything below it, Premiere-style Full grade controls: brightness/contrast/saturation/hue, temperature & tint , blur, grayscale/sepia/invert, vignette , animated film grain Blend modes (screen, multiply, overlay…), fit modes (contain/cover/stretch), per-edge cropping, corner radius, flip H/V Chroma key (green screen) with tolerance/softness + spill suppression AI background removal (person cut-out, in-browser via MediaPipe) Motion Keyframe animation on ~25 properties with easing Speed ramps — keyframe speed and the engine time-remaps video and the export audio mix (the fast-into-slow-mo reel move) Camera shake and RGB-split/chromatic aberration , both animatable 17 transitions: fades, slides, wipes (4 directions), zoom, iris, spin, blur, whip-pan, glitch , pop Text Kinetic captions: typewriter, word-pop, word-slide, karaoke, letter-pop , wave , bounce , shake Neon glow for that TikTok caption look Font editor: system fonts, drop-in custom fonts ( library/fonts/ ), and any Google Font by name — loaded automatically Gradient fills, outline, background pills, letter-spacing, line-height, weights, italic, uppercase, alignment, soft shadows Animated SVG clips A first-class svg clip kind: CSS- @keyframes -animated SVGs render frame-accurately in preview and export (the compositor freezes the animation at any time). Agents can author their own vector overlays — lower-thirds, confetti, sparkles — as plain .svg files. Starters included. Remake a reference video Give it a reference edit (a reel you like) and get back an edit blueprint : shot boundaries, music beats + BPM, a loudness curve, per-shot energy, the drop — plus the reference's music track extracted into your media, ready to rebuild the same idea with your own footage. Zero extra dependencies (ffmpeg does the decoding; onset/tempo detection is plain Node). node analyze.js ref.mp4 , POST /api/analyze , or the fablecut_analyze_reference MCP tool. Asset library library/ folders surface as tabs in the UI: Elements (overlay art), Sound FX , SVG — drop files in, the open editor refreshes live Export Fast export: browser renders every frame + an offline audio mix, ffmpeg encodes a frame-accurate CRF-18 MP4 (keeps rendering if you switch tabs) Realtime MediaRecorder fallback when ffmpeg isn't available Quick start git clone https://github.com/ronak-create/FableCut.git cd FableCut node server.js # → http://localhost:7777 Requirements: Node 18+ and a Chromium-based browser. ffmpeg on PATH is optional but recommended (fast export + upload remuxing). AI background removal fetches its model from a CDN on first use. Drop media into the window (or ./media/ ), drag clips onto the timeline, edit, export. Driving it with an AI agent Everything an agent needs is in CLAUDE.md — the complete schema, semantics and recipes. Point any capable model at that file and it can operate the editor end to end. Three equivalent control surfaces: MCP (best for Claude Code / Claude Desktop) — register the bundled zero-dependency MCP server once: claude mcp add -s user fablecut -- node " <path-to>/fablecut/mcp-server.js " Tools: fablecut_status (auto-starts the editor), fablecut_docs , fablecut_get_project , fablecut_set_project , fablecut_patch_project , fablecut_import_media , fablecut_analyze_reference . The surface is token-efficient by design : agents patch the timeline with small ops ( fablecut_patch_project ) instead of round-tripping the whole document, read a compact one-line-per-clip summary ( fablecut_get_project {compact:true} ), and fetch only the manual sections they need ( fablecut_docs {section:"props"} ). The file — read project.json , modify, bump revision , write. The UI live-reloads. REST — GET/PUT /api/project , POST /api/upload , GET /api/library , SSE at /api/events . See CLAUDE.md for the full list. Example: ask Claude Code "cut these six clips to the beat markers, add a teal-orange grade, put a word-pop caption on top and a whoosh on every cut" — and watch the timeline rebuild itself. Or hand it a reference: "here's a reel I like — analyze it and remake it with my clips, same music" . The agent calls fablecut_analyze_reference , gets the blueprint (cuts, beats, BPM, energy, drop, extracted music), and rebuilds the structure shot-for-shot with your footage. Conflict-safe concurrent editing : the UI, the MCP tools, and direct project.json writes all agree on a revision counter. If you edit a clip in the UI while an agent is mid-task, the agent's next write is rejected (409 from the REST API / a conflict error from fablecut_set_project ) instead of silently overwriting your change. The UI similarly detects when an agent write supersedes a not-yet-saved local tweak and tells you with a toast instead of dropping it silently. Project layout server.js zero-dependency HTTP server: static hosting, REST API, SSE, ffmpeg export pipeline app.js the editor: timeline UI, compositor, keyframes, text engine, SVG rasterizer, chroma key, exporters index.html single-page UI style.css dark editor theme mcp-server.js stdio MCP server exposing the editor to AI agents analyze.js reference-video analyzer: shots, beats/BPM, energy, drop, music extraction (module + CLI) CLAUDE.md the agent manual (schema + recipes) — also served by fablecut_docs project.json your timeline (created on first run; gitignored) media/ project footage (gitignored) analysis/ cached edit blueprints from /api/analyze (gitignored) library/ default assets: elements/ sfx/ svg/ fonts/ exports/ finished renders (gitignored) Authoring animated SVG overlays SVGs animate with plain CSS @keyframes . One convention: never hardcode animation-delay — set --d: 0.4s instead, and the compositor drives time by pausing all animations and rebasing their delays. Full rules + a skeleton in CLAUDE.md ; working examples in library/svg/ . Notes The repo ships with 20 Google Fonts ( library/fonts/ , OFL — see LICENSES.md there) and a set of self-authored SVG overlays and animated elements ( library/elements/ , library/svg/ , MIT like the rest of the repo). library/sfx/ is yours to fill (gitignored): sound-effect sites typically don't allow redistributing their files in a public repo, so FableCut doesn't — library/sfx/README.md lists good free sources. Export runs in the browser because the compositor is the browser; agents ask you to click Export (or render directly with ffmpeg from media/ ). License MIT