The WZRD Video Editor is the full-featured, agent-drivable timeline at the heart of WZRD Studio. It is powered by QCut — a vendored, deeply integrated editor that provides multi-track video and audio editing, a rich media panel, multiple export engines, and a typed command surface so AI agents, voice commands, and MCP tool calls can drive every editing action. Every mutation the agent makes is pushed through QCut’s command history, meaning you can undo agent edits one keystroke at a time just like manual ones.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/gratitude5dee/wzrd-studio-desktopfinal/llms.txt
Use this file to discover all available pages before exploring further.
Routes
| URL pattern | Notes |
|---|---|
/projects/:projectId/editor | Canonical route — mounts QCut |
/editor/:projectId | Legacy redirect alias |
/video-editor/:projectId | Legacy redirect alias |
?legacy=1 to any of the above loads the original VideoEditor component instead of QCut, providing a fallback path while the new editor is being validated.
QCut Integration
QCut replaces the legacyVideoEditor component at the /editor route while every other page in WZRD Studio remains untouched. All QCut code lives in the quarantined src/qcut/ directory and only EditorPage and QCutEditor may import from it.
Multi-Track Timeline
Import media, layer video and image clips on independent tracks, add audio tracks, trim/split/snap with frame-level precision, and animate with keyframes.
Platform Adapter
QCut’s platform calls are bridged to WZRD’s
window.wzrdDesktop IPC, Supabase, and fal/credits plumbing via a dedicated createWzrdAdapter().Native FFmpeg Export
On macOS desktop, a generic FFmpeg runner (
wzrd:qcut:ffmpeg-run) is wired through the existing media-ffmpeg-runtime.js binary resolution and streams real-time progress back to the UI.Undo-Safe Agent Edits
Every agent command flows through QCut’s command history stack. The user can undo any agent-made edit with standard
⌘Z.Timeline Composition Model
The editor state is backed byvideoEditorStore (Zustand). Key types from src/store/videoEditorStore.ts:
- Clip
- AudioTrack
- CompositionSettings
fade, dissolve, wipe, slide, zoom, blur, none.
Supported effects: blur, brightness, contrast, saturation, exposure, sharpen, grayscale, sepia, invert, vignette, grain, noise.
Supported masks: rectangle, ellipse, custom.
Export Engines
The editor selects an export engine at runtime based on platform capability viaexport-engine-factory.ts:
Canvas Renderer
Canvas Renderer
Browser-based canvas compositing for lightweight in-browser export. Available in all environments.
MediaRecorder
MediaRecorder
Records the live preview canvas stream using the Web MediaRecorder API. Available in all environments.
Native FFmpeg CLI (Desktop Only)
Native FFmpeg CLI (Desktop Only)
Uses the bundled FFmpeg binary (
wzrd:qcut:ffmpeg-run IPC channel) for full-fidelity, hardware-accelerated rendering. Selected automatically when WZRD Studio Desktop is running on macOS. Supports quality presets (low → CRF 28, medium → CRF 23, high → CRF 18, 4k → CRF 16), keyframe-animated transforms, opacity, scale, rotation, per-track effects, and masking.Remotion Engine
Remotion Engine
Renders the timeline as a Remotion composition using
@remotion/player for preview and remotion render for headless export. Used by the EditorComposition component.Media Panel Tabs
The QCut media panel exposes the full set of editor tabs:Media
Import and manage project assets
Text
Add and style text overlays
Stickers
Animated sticker overlays
Effects
Video and image effects
Transitions
Clip-to-clip transitions
Filters
Color and style filters
Text-to-Image
AI image generation panel
Terminal (PTY)
Claude CLI session scoped to the project folder (Desktop only)
AI Chat
In-editor AI chat via pi-agent (Desktop only)
Terminal (PTY) and AI chat tabs require WZRD Studio Desktop. In web/browser mode these tabs display a graceful unsupported state.
Agent Command API
When the editor is mounted,window.wzrd.editor exposes a typed command façade over the vendored QCut stores. Every command is schema-validated and rejects when no editor is open.
MCP Tool: edit_timeline
The editor is also reachable as an MCP tool from any Claude session (including the in-editor terminal):
Start the local MCP server
The desktop app hosts a JSON-RPC 2.0 server at
http://127.0.0.1:32145. If that port is taken the server binds a random port — query window.wzrdQcut.mcp.getInfo() in DevTools for the live address.Example agent workflow
Voice Integration
The editor registers voice actions with WZRD’sVoiceAgentProvider. When on the /editor route, voice commands like “split the clip at the playhead” or “export 1080p” are routed through the same typed command façade as MCP calls.
FFmpeg Timeline Render
The native FFmpeg render path (buildRenderTimelineArgs) compiles the full QCut timeline into a single ffmpeg command with a filter_complex graph. Key capabilities:
- Visual track ordering by
layerthenstartMs - Keyframe-animated position, scale, rotation, and opacity using linear interpolation expressions
- Per-track effects: blur (
boxblur), brightness/contrast/saturation (eq), sharpen (unsharp), grayscale/sepia/invert, vignette, grain/noise - Masks: rectangle and ellipse via
geqalpha expressions - Audio mixing:
amixwith per-track volume keyframes,atempofor speed changes, fade in/out, andadelayfor timeline positioning - Text overlays:
drawtextwith dynamicx/yposition expressions; falls back to intermediate canvas layers for rotated or opacity-animated text - Graphic elements:
drawboxfor rectangles,geqfor ellipses and lines, with full keyframe support
Keyboard Shortcuts
| Key | Action |
|---|---|
Space | Play / Pause |
⌘Z | Undo (works for both manual and agent edits) |
⌘⇧Z | Redo |
⌘C | Copy selected clips |
⌘V | Paste clipboard |
← / → | Step playhead one frame |
+ / = | Zoom timeline in |
- | Zoom timeline out |
F | Fit selected clip in view |
⇧F | Fit full timeline in view |