2026

Atelier: Agentic Video Editor

Atelier is a full-stack web video editor (Next.js + FastAPI) driven by an LLM agent. Natural-language commands are translated via function calling (Gemini / Claude APIs) into schema-validated editing operations, backed by a server-side FFmpeg rendering pipeline with an async job queue, real-time progress, and crash recovery.

Agentic AILLM Tool-CallingNext.jsFastAPIFFmpegDocker
10
Editing Ops
53
Automated Tests
18
Failure Modes Documented
Atelier: Agentic Video Editor screenshot 1
Atelier: Agentic Video Editor screenshot 2

Agentic Command Layer

Natural-language commands are translated via function calling (Gemini / Claude APIs) into 10 schema-validated editing operations. The agent reads the real timeline state before acting, self-corrects on error feedback, and uses all-or-nothing persistence so a failed command never leaves the timeline in a broken state.

Rendering Pipeline

A server-side FFmpeg rendering pipeline handles trim, speed, volume, text overlays, and multi-clip concat, wrapped in an async job queue with real-time progress tracking and crash recovery. Correctness is verified by 53 automated tests (pytest + vitest), including real FFmpeg render assertions and timeline-math unit tests.

Deployment & Docs

Shipped with Docker Compose and a split cloud deployment: a Vercel frontend proxying to a Render Docker API. The repo ships full documentation — ARCHITECTURE.md (system design), DECISIONS.md (tool-choice rationales like Konva vs alternatives, server vs wasm), ERRORS-AND-FIXES.md, and an API reference with live Swagger — plus a decision log and 18 documented failure modes with fixes.

Key Features

Edit videos by talking to an agent — e.g. "cut the first 10 seconds, add a title and export" — or manipulate the timeline directly.

Canvas-based timeline preview (Konva) renders clips and text overlays in real time, in the browser.

The agent inspects the real timeline state, applies validated operations, and lists every action it took.

All-or-nothing persistence: changes save only on complete success, so a failed command never corrupts the timeline.

Async background job queue renders long exports without blocking the UI, with real-time progress and crash recovery.

Model-flexible: works with Claude (opus-4-8) or Gemini (2.5-flash) via tool-use, no fine-tuning required.

Tech Stack

FrontendNext.js 15, React 19, KonvaCanvas timeline & in-browser preview
BackendFastAPI, SQLModel/SQLite, asyncioTyped API, persistence, job queue
VideoFFmpeg (system or bundled)Server-side rendering pipeline
AI AgentClaude opus-4-8 / Gemini 2.5-flashTool-use for validated edits
DeployDocker Compose, Vercel + RenderSplit frontend/backend deployment

Talk To It

  • > Add beach.mp4 to the timeline
  • > Trim the first clip to 3–8 seconds
  • > Add a caption 'Day 1' at the bottom for 3 seconds
  • > Speed the second clip up 2x and mute it
  • > Export the video

Documented Failure Modes

  • Subprocess pipe deadlocks when FFmpeg stdout/stderr buffers filled
  • FFmpeg filter-graph quoting breaking on special characters in overlay text
  • Codec version quirks producing inconsistent output across environments