OpenCut is an open source video editor that targets browsers, desktops, and mobile devices. It is often called the open source version of CapCut. However, the current main repository is being rewritten from scratch. What you get by directly cloning main is a new architecture under development, which is not equivalent to the official version that is stable and available.
Project address: OpenCut-app/OpenCut
Quick Answer
If you just want to cut videos now, give priority to the Classic version that is still running officially; if you want to study the new version of Rust core, plug-in architecture, MCP and headless rendering, then build the main repository development environment.
The new version of the plan includes:
- Editor API;
- Third-party plug-ins;
- Web, desktop and mobile terminals share the Rust core;
- MCP Server for AI Agent;
- Headless mode for automated batch rendering;
- In-editor script panel.
These are directions in which progress is being made and should not all be considered current stable features.
Local development environment
Officially, moonrepo’s proto is used to manage fixed version development tools. After installing proto, execute in the root directory of the repository:
|
|
The web development service uses localhost:5173 by default, and the API development service uses localhost:8787 by default. Desktop use:
|
|
Desktop builds also need to refer to the platform dependencies in apps/desktop/README.md. Windows users, in particular, must first confirm whether Rust, system compilation tools, and the WebView running environment are complete.
Why is it not recommended to use the new version directly as a production tool?
The main repository README clearly states that the architecture is still being designed and is not yet ready to accept external contributions. For ordinary users, they may encounter three types of problems:
- The function entrance exists, but the saving, exporting or timeline behavior will change;
- Documents and commands are quickly adjusted with rewriting;
- Just because the browser demo can run does not mean that the desktop and mobile terminals have reached the same stability.
So don’t give your only video project to the development version. Back up the material before testing, export it and play it again to check the audio and video synchronization, resolution and frame rate.
Who is OpenCut suitable for?
| Requirements | Suggestions |
|---|---|
| Instant replacement for everyday editing software | Try Classic or other mature tools first |
| Learn the open source video editor architecture | Use the new moderator repository |
| Develop video plug-ins or automation | Focus on plug-in APIs and headless patterns |
| Let AI Agent automatically edit | Wait until the MCP and editor API are stable before evaluating |
How to choose between Classic and rewritten version
The most common misunderstanding about OpenCut currently is to confuse the Classic available on the official website, the rewritten version of the main repository, and future planning. You can choose by target:
I just want to cut the video
First open the official Classic version and use a publicly available short clip to test import, cropping, audio, subtitles and export. Do not build the main repository first, and do not hand over the only project files to the development version.
Want to study the source code
Use the main repository, focusing on reading apps/, Rust core, and Moon task configuration. Development services can be started separately, which is more suitable for locating problems, but the interfaces of each module may still be adjusted.
Want to participate in plugins or automation
Continue to pay attention to the actual implementation of Editor API, plug-in architecture, Headless mode and MCP Server. The directions listed in the README do not mean that the interface has been frozen. You should check the corresponding code, Issue and Release before formal development.
Development environment preparation
Before running proto use, the following basic conditions should be confirmed:
- Git can check out the repository normally;
- The operating system has a tool chain for compiling Rust dependencies;
protocommand has been added toPATH;- Ports
5173and8787are not occupied; - The required WebView and system SDK for desktop have been installed;
- The disk has enough space to store dependencies and build cache.
proto use will install the fixed version tools according to .prototools in the repository. Don’t skip it when you see that you have Node.js or Rust installed, its purpose is to reduce version differences between developers.
What are the benefits of starting services separately?
OpenCut splits the web, API and desktop into different tasks:
|
|
When troubleshooting, it is recommended to open three terminals and keep logs respectively. If the page cannot be opened, first check the Web service; if the page can be opened but the project or material operation fails, then check the API; if only the desktop window is abnormal, finally check the desktop running environment.
Web Service Check
Visit http://localhost:5173, open your browser developer tools, and check for console errors and requests to localhost:8787. If the request address is incorrect, first check the local environment variables and repository documents. Do not turn off CORS directly.
API Service Check
Confirm that 8787 is listening, and watch the API endpoint for startup failures, database initialization, or permission errors. When there is a port conflict, first find the occupying process. Do not change the port at will and then restart only one of the services.
Desktop check
Desktop mode usually has one more layer of native dependencies than the browser. When the web version works but the desktop version fails, the problem is most likely in the system SDK, WebView, file permissions or packaging configuration, rather than the editor interface itself.
What items should be looked at when testing a video editor?
Import
Prepare short clips in different encodings and resolutions, including at least landscape, portrait, variable frame rates, and separate audio. Record which formats can be imported and which ones can only display thumbnails but cannot be played.
Timeline
Test cutting, dragging, undoing, redoing and multi-track synchronization. The most common problem in the development version is not that the button disappears, but that the timeline status is inconsistent with the preview after the operation.
Export
Check the output resolution, frame rate, duration, audio and video synchronization and file size. The completion of the export does not mean that the result is correct. You should use the player to play it completely and use the media information tool to check the encoding parameters.
Project recovery
Close the page or desktop program and reopen it to verify whether the project is saved, whether the material path is still valid, and whether the undo history is as expected. Don’t work on long projects without passing the recovery test.
Boundaries when self-hosted
Browser-side video editing consumes CPU, GPU, memory, and local storage. Even if deployed on its own server, rendering work may occur client-side. When evaluating self-hosted options, be sure to:
- Is the material uploaded to the server or just stays in the browser?
- Where are the project files saved?
- Is the export completed by the browser, desktop core or server;
- Is there a temporary file cleaning mechanism?
- Whether multiple users will see each other’s projects or assets.
Don’t just rely on “open source” to infer that the data never leaves the device, the actual network requests and deployment configuration should still be read.
Don’t just look at the menu when comparing with mature editing software
| Dimensions | What is actually being verified |
|---|---|
| Stability | Long-term editing, undo, crash recovery |
| Format support | Actual import and export encoding |
| Performance | Preview lag, proxy media, rendering time |
| Subtitles | Import, edit, style and export |
| Automation | API, Headless, batch task maturity |
| Ecology | Plug-ins, templates, tutorials and maintenance speed |
The future path for OpenCut is intriguing, but migration decisions should be based on current verifiable capabilities.
Troubleshooting quick check
| Question | Priority Check |
|---|---|
proto not found |
Whether the installation is completed, whether the terminal is restarted, PATH |
moon run failed |
.prototools Whether the installation was successful and whether the repository branches match |
| 5173 Unable to access | Web task log and port occupation |
| The page can be opened but an operation error occurs | API service, 8787 request and environment variables |
| Failed on desktop | apps/desktop/README.md and system dependencies |
| Abnormal export results | Material encoding, rendering logs and output parameters |
FAQ
Can OpenCut completely replace CapCut?
It is not possible to draw simple conclusions at this time. Basic editing scenes can be tried, but templates, special effects, subtitles, material ecology and cross-device workflows still need to be compared one by one.
Why can the repository be started but cannot be exported normally?
First confirm whether you are using Classic or a rewritten version, and check the corresponding branch and documentation. If the development service of the main repository is started successfully, it only means that the front and back ends can run, but it does not mean that all editing functions have been completed.
Can I use Docker to deploy a new version with one click?
Whether there are available images and Compose configurations should be subject to the current repository documentation. Development services involve browsers, APIs, and desktops, and third-party unmaintained images should not be regarded as official stable deployment methods.
Can OpenCut’s MCP be used for batch editing now?
The README lists MCP as one of the rewrite directions. Before actual access, you must confirm that the current code and Release have provided available servers, tool lists, and permission descriptions. You cannot configure production tasks based on planning text only.
How to track rewriting progress
The OpenCut main repository changes quickly. When judging whether a certain function is available, check in this order:
- README current status description;
- Whether there is a corresponding version in Releases;
- Whether there is actual implementation in the code;
- Whether the Issue is marked with limitations or known faults;
- Whether the new version of the demo station can complete the same operation;
- Whether the local checkout version is consistent with the document submission.
Don’t just look at screenshots, roadmaps, or third-party videos. MCP, Headless, and plugin APIs in particular are only suitable for developing production automation around once stable interfaces, permission descriptions, and reproducible examples are available.
Development version upgrade and rollback
Before upgrading, record the current Git commit and the tool version parsed by .prototools. If there are local changes, create a branch first and submit it. Do not pull it directly and then mix dependency upgrades with business modifications.
Recommended steps:
|
|
Then start the Web, API and desktop tasks respectively, and re-run the import, timeline, export and recovery tests. If the new version cannot be used, you can go back to the recorded commits for comparison, but do not use destructive Git commands to discard unsaved material or code.
Material and Privacy Check
When testing the development version, use short materials that can be disclosed and avoid customer videos, faces, unreleased products, and original videos with positioning information. Open the browser network panel to confirm the upload request and third-party domain name; on the desktop, also check whether the cache, temporary files, and crash logs contain the material path.
If the MCP or script function is enabled in the future, the editor project, material directory, and export directory should be authorized separately, and do not let the Agent read the entire user home directory by default.
Summary
OpenCut deserves attention, but the most important message is “currently under rewrite.” Ordinary users should use Classic as the current entry point, while developers can use proto and moon to study new versions. After the editor API, plug-ins and headless rendering are stable, it will be more suitable to enter the automated production process.