No installation. No uploads. No subscriptions. Everything runs locally using WebGPU, WebCodecs, and the File System Access API.
KubeezCut is a fully client-side, multi-track video editor that runs without a backend. Your media never leaves your machine — everything from decoding to rendering to export happens locally inside the browser tab, powered by modern web platform APIs.
- GPU-accelerated — effects, compositing, and transitions run as WebGPU compute shaders
- Frame-accurate — custom Clock engine with WebCodecs-based export
- Non-destructive — full undo/redo, keyframe animation, and project bundling
- Private by design — no server, no cloud, no account required
Media generation — Kubeez is the media generation platform for creating AI-generated assets you can bring into KubeezCut (see Generate media in Screenshots).
Landing images live in public/assets/landing/:
| File | What's shown |
|---|---|
timeline.png |
Multi-track timeline (video + audio, tools, waveforms) |
keyframe.png |
Keyframe editor — graph / sheet / split view |
projects.png |
Video settings — resolution presets (YouTube, Shorts, etc.) and custom canvas |
ai-generation.png |
Kubeez (Generate media) — model catalog and prompt panel |
local-tts.png |
AI sidebar — Text to Speech (local WebGPU, Kitten TTS) |
| Timeline & editing | Keyframe editor |
|---|---|
![]() |
![]() |
| Video settings (project canvas) | Kubeez — Generate media |
|---|---|
![]() |
![]() |
| Local AI — Text to Speech |
|---|
![]() |
Export — Encoding runs in the browser (WebCodecs: MP4, WebM, MOV, MKV; see Export under Features). Output size matches your project canvas; the Video settings screenshot above is where preset resolutions and custom width/height are chosen.
- Multi-track timeline — video, audio, text, image, and shape tracks
- Track groups with mute / visible / locked gate propagation
- Trim, split, join, ripple delete, and rate stretch tools
- Rolling edit, ripple edit, slip, and slide tools
- Per-track Close Gaps — removes dead space between clips
- Filmstrip thumbnails and audio waveform visualization
- Pre-compositions (nested sub-comps, 1 level deep)
- Timeline markers for organizing long edits
- Source monitor with mark in/out via playhead or skimmer, plus insert/overwrite edits
- Configurable undo/redo history depth
All visual effects run as WebGPU shaders — zero CPU overhead during preview.
| Category | Effects |
|---|---|
| Blur | Gaussian, box, motion, radial, zoom |
| Color | Brightness, contrast, exposure, hue shift, saturation, vibrance, temperature/tint, levels, curves, color wheels, grayscale, sepia, invert |
| Distortion | Pixelate, RGB split, twirl, wave, bulge/pinch, kaleidoscope, mirror, fluted glass |
| Stylize | Vignette, film grain, sharpen, posterize, glow, edge detect, scanlines, color glitch |
| Keying | Chroma key (green/blue screen) with tolerance, softness, and spill suppression |
25 GPU-accelerated blend modes — normal, darken, multiply, color burn, linear burn, lighten, screen, color dodge, linear dodge, overlay, soft light, hard light, vivid light, linear light, pin light, hard mix, difference, exclusion, subtract, divide, hue, saturation, color, luminosity.
- All-GPU pipeline — dissolve, sparkles, glitch, light leak, pixelate, chromatic aberration, radial blur
- Standard transitions — fade, wipe, slide, 3D flip, clock wipe, iris (with directional variants)
- Adjustable duration and alignment per transition
- Bezier curve editor with preset easing functions
- Easing presets: linear, ease-in/out, cubic-bezier, spring
- Auto-keyframe mode for hands-free recording
- Graph editor, dopesheet, and split view
In-browser export via WebCodecs — no server required.
| Options | |
|---|---|
| Containers | MP4, WebM, MOV, MKV |
| Video codecs | H.264, H.265, VP8, VP9, AV1 |
| Audio formats | MP3, AAC, WAV (PCM) |
| Quality presets | Low (2 Mbps) → Ultra (20 Mbps) |
| Format | Supported |
|---|---|
| Video | MP4, WebM, MOV, MKV |
| Audio | MP3, WAV, AAC, OGG, Opus |
| Image | JPG, PNG, GIF (animated), WebP |
| Max file size | 5 GB |
- Files are referenced via the File System Access API — never copied
- OPFS proxy generation for smooth preview on high-bitrate sources
- Media relinking for moved or missing files
- Scene detection and optical flow analysis
- Browser-based speech-to-text via Whisper (runs in a Web Worker, fully local)
- Models: Tiny, Base, Small, Large v3 Turbo
- Auto-generate caption text items from transcripts
- Multi-language support
- Native SVG shapes — rectangle, circle, triangle, ellipse, star, polygon, heart
- Text overlays with custom fonts, colors, and positioning
- GPU scopes — waveform, vectorscope, histogram
- Transform gizmo — drag, resize, rotate directly in the preview
- Layer masks with keyframeable geometry transforms
- Project bundles — export/import projects as ZIP files
- IndexedDB content-addressable storage with auto-save
- Customizable keyboard shortcuts with preset import/export
Prerequisites: Node.js 18+ and Chrome or Edge 113+
git clone https://github.com/MeepCastana/KubeezCut.git
cd KubeezCut
npm install
npm run devOpen http://localhost:5173 in Chrome.
- Create a project from the projects page
- Import media by dragging files into the media library
- Build your edit — drag clips to the timeline, trim, arrange, add effects and transitions
- Animate with the keyframe editor
- Preview in real time with GPU compositing
- Export directly from the browser — no upload, no wait
Chrome or Edge 113+ is required. KubeezCut relies on WebGPU, WebCodecs, OPFS, and the File System Access API — all of which need a modern Chromium browser.
Brave users — Brave disables the File System Access API by default. Navigate to
brave://flags/#file-system-access-api, set it to Enabled, and relaunch.
| Action | Shortcut |
|---|---|
| Play / Pause | Space |
| Previous / Next frame | ← / → |
| Previous / Next snap point | ↑ / ↓ |
| Go to start / end | Home / End |
| Split at playhead | Ctrl+K |
| Split at cursor | Shift+C |
| Join clips | Shift+J |
| Delete selected | Delete |
| Ripple delete | Ctrl+Delete |
| Freeze frame | Shift+F |
| Nudge item | Shift+Arrow / Ctrl+Shift+Arrow |
| Undo / Redo | Ctrl+Z / Ctrl+Shift+Z |
| Copy / Cut / Paste | Ctrl+C / Ctrl+X / Ctrl+V |
| Selection tool | V |
| Razor tool | C |
| Rate stretch | R |
| Rolling edit | N |
| Ripple edit | B |
| Slip | Y |
| Slide | U |
| Toggle snap | S |
| Add / Remove marker | M / Shift+M |
| Add keyframe | A |
| Toggle keyframe editor | Ctrl+Shift+A |
| Mark In / Out | I / O |
| Insert / Overwrite edit | , / . |
| Zoom in / out | Ctrl+= / Ctrl+- |
| Zoom to fit | \ |
| Save | Ctrl+S |
| Export | Ctrl+Shift+E |
See the in-app shortcuts dialog for the complete list.
| Layer | Technology |
|---|---|
| UI | React 19, TypeScript 5.9, Tailwind CSS 4, shadcn/ui |
| Routing | TanStack Router (file-based, type-safe) |
| State | Zustand 5 + Zundo (undo/redo) |
| GPU | WebGPU — effects, compositing, transitions, scopes |
| Decoding | Mediabunny (WASM-accelerated media decode) |
| Encoding | WebCodecs — browser-native encode and export |
| Storage | OPFS + IndexedDB via idb |
| Parallelism | Web Workers for export, decode, transcription, scene detection |
| Build | Vite 6 with manual chunk splitting |
npm run dev # Dev server on port 5173
npm run dev:quiet # Dev server without debug panel
npm run dev:compare # Run dev + perf preview side-by-side
npm run build # Production build
npm run lint # ESLint
npm run test # Vitest (watch mode)
npm run test:run # Vitest (single run)
npm run test:coverage # Coverage report
npm run routes # Regenerate TanStack Router route tree
npm run verify # Full CI gate: boundaries + lint + tests + buildnpm run check:boundaries # Feature isolation boundaries
npm run check:deps-contracts # Deps contract seam routing
npm run check:legacy-lib-imports # Block direct @/lib/* usage
npm run check:deps-wrapper-health # Unused pass-through deps wrappers
npm run check:edge-budgets # Feature seam coupling budgetsnpm run perf # Build + serve a production-like local target (port 4173)
npm run dev:compare # Compare dev (5173) vs prod-like (4173) side-by-sideUse npm run perf to distinguish real regressions from dev-mode noise (React overhead, HMR, debug instrumentation).
src/
├── app/ # App bootstrap, providers, debug panel
├── domain/ # Framework-agnostic domain logic
│ └── timeline/ # Transitions engine, registry, and renderers
├── infrastructure/ # Browser/storage/GPU adapters
├── lib/
│ ├── gpu-effects/ # WebGPU effect pipeline + shader definitions
│ ├── gpu-transitions/ # WebGPU transition pipeline + shaders
│ ├── gpu-compositor/ # WebGPU blend mode compositor
│ ├── gpu-scopes/ # Waveform, vectorscope, histogram renderers
│ ├── masks/ # Mask texture management
│ ├── analysis/ # Optical flow and scene detection
│ ├── thumbnails/ # GPU-accelerated thumbnail renderer
│ ├── fonts/ # Font loading
│ ├── shapes/ # Shape path generators
│ └── migrations/ # Versioned data migration system
├── features/
│ ├── editor/ # Editor shell, toolbar, panels, stores
│ ├── timeline/ # Multi-track timeline, actions, services
│ ├── preview/ # Preview canvas, transform gizmo, GPU scopes
│ ├── player/ # Playback engine (Clock, composition)
│ ├── composition-runtime/ # Rendering sequences, items, audio, transitions
│ ├── export/ # WebCodecs export pipeline (Web Worker)
│ ├── effects/ # GPU effect system and UI panels
│ ├── keyframes/ # Keyframe animation, Bezier editor, easing
│ ├── media-library/ # Media import, metadata, OPFS proxies, transcription
│ ├── project-bundle/ # Project ZIP export/import
│ ├── projects/ # Project management
│ └── settings/ # App settings, keyboard shortcut editor
├── shared/ # Shared UI, state, and utilities
├── components/ui/ # shadcn/ui base components
├── config/hotkeys.ts # Keyboard shortcut definitions
├── routes/ # TanStack Router (file-based, auto-generated)
└── types/ # Shared TypeScript types
KubeezCut is a combined fork — built on top of FreeCut as its base, with selected features and UX patterns adapted from OpenCut, plus our own optimizations on top of both.
- FreeCut — base architecture. Fully client-side, non-linear editing, project bundling, and the foundation for our multi-track timeline, preview engine, and export pipeline.
- OpenCut — source of the smooth timeline drag-and-drop UX (drag line indicators, track hit-detection, drop zone behavior) and several UI patterns we adapted into our editor.
Our additions on top:
- Kubeez AI integration — first-class image / video / music / TTS generation powered by the Kubeez API (model picker, variant resolution, credits tracking, auto-routing edit models for reference media).
- WebGPU effects & transitions pipeline — all visual effects and transitions run as WebGPU compute shaders rather than CSS filters.
- Performance optimizations — RAF-throttled drag-drop, stale-while-revalidate model caching, generation ID extraction robustness, smart music/dialogue polling (all-songs-ready gating), and GPU pipeline device reuse.
- Professional workflow additions — keyframe Bezier editor, GPU scopes (waveform / vectorscope / histogram), pre-compositions, project bundle ZIP export/import, frame-accurate WebCodecs export.
If you like KubeezCut, please go star FreeCut and OpenCut too — this project would not exist without their work.
MIT — free to use, modify, and distribute.




