OpenCut

Application

OpenCut-app/OpenCut

Free and open source video editor for web, desktop, and mobile.

Overview

OpenCut is an open-source alternative to CapCut, providing video editing capabilities across web, desktop, and mobile platforms. Currently being rewritten with a plugin-first architecture and a Rust core, it offers a modern editing experience. Licensed under MIT.

README Preview

\n  \n    \n      \n    \n    \n      OpenCut\n      A free and open source video editor for web, desktop, and mobile.\n    \n  \n\n\n[](https://discord.gg/zmR9N35cjK)\n[](https://x.com/opencutapp)\n[](LICENSE)\n\n## Status\n\n**OpenCut is being rewritten from the ground up.** What's coming:\n\n- An Editor API\n- First-class third party plugins (made possible by a plugin-first architecture)\n- Desktop, mobile, and browser from one codebase (Rust core)\n- MCP server (for AI agents)\n- Headless mode (automation, batch rendering)\n- A scripting tab directly in the editor\n\nYou can still find the previous version at [opencut-app/opencut-classic](https://github.com/opencut-app/opencut-classic), which is the one to reach for today. [opencut.app](https://opencut.app) still runs the classic version; the rewrite will live at [new.opencut.app](https://new.opencut.app) until it's ready to take over.\n\n## Development\n\nInstall [proto](https://moonrepo.dev/proto) if you haven't already:\n\n```sh\nbash <(curl -fsSL https://moonrepo.dev/install/proto.sh)\n```\n\nFrom the repo root:\n\n```sh\nproto use    # installs bun + moon at the versions pinned in .prototools\nbun install\n```\n\n```sh\nmoon run web:dev   # localhost:5173\nmoon run api:dev   # localhost:8787\n```\n\n## Contributing\n\nWe're not set up to take outside contributions yet while the architecture is being designed. If you want to follow along, ask questions, or just hang out, [join the Discord](https://discord.gg/zmR9N35cjK) or [open an issue](https://github.com/opencut-app/opencut/issues).\n\n## Sponsors\n\nOpenCut is supported by companies that believe in open source creator tools.\n\n- [**fal.ai**](https://fal.ai?utm_source=github-opencut&utm_campaign=oss): Generative image, video, and audio models all in one place.\n\nWant your logo here? Reach out at [sponsor@opencut.app](mailto:sponsor@opencut.app).\n\n## License\n\n[MIT](LICENSE)\n

FAQ (4)

Troubleshooting
How to fix Cargo error "unknown edition 2024" in Rust?

Edit Cargo.toml and replace the unsupported edition = "2024" with the latest stable edition, "2021":

[workspace.package]
edition = "2021"

Then verify the build with:

cargo check

Rust currently supports editions 2015, 2018, and 2021; 2024 is not a valid released edition.

GitHub Issue #843
Troubleshooting
How do I fix a Rust desktop app panicking in headless CI and Cargo's "unknown edition 2024" build error?

Fix the Cargo edition first. In Cargo.toml, replace edition = "2024" with a supported edition:

edition = "2021"

Then rebuild:
bash
cargo clean
cargo build
To prevent the window-creation panic, replace `.expect("failed to open the main window")` with graceful error propagation:
rust
fn main() -> Result<(), Box<dyn std::error::Error>> {
cx.open_window(...)?;
Ok(())
}
If the GUI must run in CI, provide a virtual display, for example on Ubuntu/Debian:
bash
sudo apt-get install -y xvfb
xvfb-run -a cargo run
```

Alternatively, skip window creation when running in a headless environment. This handles missing X11/Wayland, SSH sessions without X forwarding, and GPU initialization failures without panicking.

GitHub Issue #841
Troubleshooting
How do I fix the 'mp4a.40.2, 192000 bps, 2 channels, 44100 Hz encoder configuration is not supported' error when exporting MP4 with audio on ChromeOS?

Update to the latest release. The fix adds runtime audio encoder capability negotiation for MP4 exports: instead of always using the hardcoded AAC configuration (mp4a.40.2, 192 kbps, stereo, 44.1 kHz), the app probes browser/WebCodecs support and selects a compatible audio configuration. If you cannot update immediately, work around it by changing the export audio codec or lowering the audio bitrate/channel/sample-rate settings, then retry the export.

GitHub Issue #718
Troubleshooting
Why does the OpenCut "Start Contributing" button open a GitHub 404 page?

The button uses a broken hard-coded path: https://github.com/OpenCut-app/OpenCut/blob/main/.github/CONTRIBUTING.md. Update the button's href to the actual location of the contribution guide. If the file is stored at the repository root, use https://github.com/OpenCut-app/OpenCut/blob/main/CONTRIBUTING.md. Alternatively, create CONTRIBUTING.md under .github/ so the existing URL becomes valid. Find the reference with grep -R ".github/CONTRIBUTING" src, replace the incorrect URL, then rebuild and redeploy the site. As a temporary workaround, navigate directly to https://github.com/OpenCut-app/OpenCut and open the contribution guide from the repository.

GitHub Issue #852