A free, open-source, desktop-first video editor with CapCut-style effects, filters and beat-synced editing.
It renders on your GPU and keeps your footage on your machine.
Download · Features · Getting started · How it works · Roadmap · Credits
Note
Ccut is built on OpenCut. The timeline, the editor's core and the Rust/WebAssembly compositor all started there. Ccut adds a desktop app and a long list of features on top of that foundation, and the credits explain why this project would not exist without them.
Most "free" editors give you a watermark, a subscription or an upload to someone else's server. Ccut aims for the CapCut workflow you already know (drop in clips, add a look, cut to the beat, export) as a native desktop app, with the source open for anyone to read, change and build.
- Your files stay with you. Projects are stored locally. Captions run Whisper locally, and stem separation and smart cutout run as local models. None of them uploads your footage.
- GPU-rendered preview and export. A Rust compositor built on
wgpu, compiled to WebAssembly, draws every frame with WebGPU shaders. - Built to be scripted. A built-in MCP server lets an AI assistant you choose read and edit your timeline.
| 📌 Stick to scene | After Effects-style camera tracking: select a text, sticker or image over a video and press one button. Ccut tracks the shot's features (Lucas-Kanade, RANSAC, homography) so the element moves, scales and rotates with the scene. |
| 🧊 3D layers | Place layers in perspective with a virtual camera. |
| ✂️ Smart cutout & chroma key | Remove a background with a local U²-Net model (downloaded once and checked against a fixed SHA-256), key out a colour, or paint a mask with the brush. |
| 💬 Local captions | Speech-to-text with Whisper in 99 languages, running on your machine. SRT and ASS import. |
| ✍️ In and out animations | Fade, Zoom, Pop, slide in from an edge, Typewriter and Word reveal. |
| 🤖 AI control over MCP | A token-protected local MCP server with 18 tools (read the project, split, move, set properties, add keyframes, seek, play). Connect Claude Code, Codex or any MCP client. |
| 🔗 Import from a link | Paste a link and Ccut downloads and imports the media with yt-dlp (desktop app). Only use it for content you have the rights to. |
| 😀 Stickers, icons & fonts | 1,500+ Fluent emoji, the Phosphor icon set and 80 bundled font families, all available offline. |
| 🎞️ Everything a timeline needs | Multi-track editing, ripple and snapping, split, speed and retime, masks, scenes, bookmarks, and MP4/WebM export. |
Windows: grab the installer (Ccut.Setup.exe) or the portable zip from the latest release. It is a pre-release that is not yet code-signed, so SmartScreen may ask you to click More info → Run anyway.
Linux: build the AppImage from source (see below). Prebuilt Linux downloads are coming.
- Bun 1.2.18 (the version pinned in
package.json) - Node.js 20 or newer (used by the desktop build scripts)
- Optional: Rust with the
wasm32-unknown-unknowntarget andwasm-pack, but only if you change the compositor. A prebuilt copy ships inpackages/opencut-wasm.
git clone https://github.com/Msh4i/ccut.git
cd ccut
bun install
cp apps/web/.env.example apps/web/.env.local # placeholder values are fine for local editing
bun run dev:webThen open http://localhost:3000. You need a browser with WebGPU (a recent Chrome, Edge or Brave).
cd apps/electron
node bundle.js # builds the web app as a standalone server
../../node_modules/.bin/electron-builder --linux AppImage
# or: --win (NSIS installer + zip)The desktop app adds the features that need your file system or local models: Auto hits stem separation, smart cutout, import from a link and the MCP server.
bun run qa # TypeScript, unit tests and ESLintflowchart LR
subgraph Desktop["Electron shell (apps/electron)"]
IPC["IPC bridges<br/>stems · models · link import · MCP"]
end
subgraph Web["Editor UI (apps/web · Next.js + React)"]
TL["Timeline, commands<br/>& keyframes"]
FX["Effect & filter<br/>definitions (TS)"]
end
subgraph Rust["Compositor (rust/ → WebAssembly)"]
C["wgpu compositor"]
S["WGSL effect shaders"]
end
TL --> C
FX -- "passes + uniforms" --> S
S --> C
C -- WebGPU --> P["Preview & export"]
IPC <--> Web
AI["AI assistant<br/>(MCP client)"] <--> IPC
| Folder | What lives there |
|---|---|
apps/web |
The editor: Next.js app, timeline, panels, effects, tracking, captions |
apps/electron |
The desktop shell: window, IPC, stem separator, model downloads, MCP server, link import |
rust/ |
Compositor, effects, masks and time crates (wgpu), built to WebAssembly |
packages/opencut-wasm |
The prebuilt WebAssembly package the editor imports |
Effects and filters are defined in TypeScript as a list of GPU passes. Each pass names a WGSL shader in the Rust crate and gives it uniforms, including the clip's local time, so time-based effects stay frame-exact during export. Contract tests parse both sides so the TypeScript definitions and the Rust shader table cannot drift apart.
- Time-based video effects with live previews
- Filters with a single Intensity slider
- Stem-aware Auto hits
- Camera tracking ("Stick to scene")
- Transitions between clips
- LUT-based filters and a bloom pass
- Keep effects centred on picture-in-picture clips
- macOS builds
Ideas and bug reports are welcome in Issues.
Ccut would not exist without OpenCut.
The OpenCut team and its contributors built what this project grew from: a privacy-first, open-source video editor with a real multi-track timeline, a clean command system, and a Rust/WebAssembly compositor that renders on the GPU. Every feature listed above was built on their architecture, their careful engineering and their decision to share it under the MIT license.
Their commit history is kept here on purpose. Every OpenCut contributor's work is part of this repository, and they deserve the credit for it. If you like Ccut, go and ⭐ OpenCut too: they are now working on a full rewrite.
Thank you, OpenCut. 🙏
Demucs (stem separation) · Whisper and Transformers.js (captions) · U²-Net and rembg (smart cutout) · ONNX Runtime · wgpu · yt-dlp · Fluent Emoji · Phosphor Icons · Fontsource · Next.js · Electron
The full list of bundled material, with each license, is in THIRD_PARTY_NOTICES.md.
Ccut is released under the MIT License. It keeps OpenCut's copyright notice, as the license requires.
Ccut is an independent project. It is not affiliated with or endorsed by CapCut, ByteDance or the OpenCut team. "CapCut" is mentioned only to describe the editing style.
Made with care by MsHai · 🇹🇷




