- Python 3.9+
- FFmpeg (must be on PATH)
- Adobe Premiere Pro (for CEP panel testing)
# Clone and install in development mode
git clone https://github.com/SysAdminDoc/OpenCut.git
cd OpenCut
pip install -e ".[dev]"
# Install optional features as needed
pip install -e ".[standard]" # Common deps (whisper, opencv, etc.)
pip install -e ".[ai]" # AI tools (CPU)
pip install -e ".[ai-gpu]" # AI tools (GPU with onnxruntime-gpu)
pip install -e ".[all]" # Everything
# Run the server
python -m opencut.server
# Server starts on http://localhost:5679- Enable unsigned extensions by setting registry key:
- Windows:
HKCU\Software\Adobe\CSXS.XX\PlayerDebugMode = 1(for each CC version) - macOS:
defaults write com.adobe.CSXS.XX PlayerDebugMode 1
- Windows:
- The extension is at
extension/com.opencut.panel/ - Remote debug at
http://localhost:8842(configured in.debug) - Reload extension in Premiere: Window > Extensions > OpenCut
opencut/ # Python backend
server.py # Flask app, startup
security.py # CSRF, path validation, rate limiting
jobs.py # Job state management
helpers.py # Shared utilities
user_data.py # Thread-safe file I/O
routes/ # Flask Blueprints
system.py, audio.py, captions.py, video.py, jobs_routes.py, settings.py
extension/com.opencut.panel/ # CEP panel
client/ # HTML/CSS/JS frontend
host/ # ExtendScript (ES3 JSX)
CSXS/manifest.xml # Extension manifest
pip install pyinstaller
pyinstaller opencut_server.spec
# Output: dist/OpenCut-Server/Requires Inno Setup 6 and ffmpeg/ffmpeg.exe + ffprobe.exe in project root.
iscc OpenCut.issruff check opencut/
ruff format opencut/Version is defined in opencut/__init__.py and must match across 7+ files.
Use the sync script to update all at once:
python scripts/sync_version.py --set 1.3.0The UXP panel at extension/com.opencut.uxp/ targets Premiere Pro 25.6+.
- Install Adobe UXP Developer Tool from the Creative Cloud app
- In UXP Developer Tool: Add Plugin → select
extension/com.opencut.uxp/ - Click "Load" to sideload the panel into Premiere Pro
- The UXP panel connects to the same Python backend on port 5679
- Uses modern ES modules (
import/export) — no ES3 restrictions - Direct
fetch()API — no HTTP bridge needed - Timeline write-back uses
premiereproUXP module (Premiere 25.6+) - CEP panel handles write-back for older versions
- CEP manifest:
extension/com.opencut.panel/CSXS/manifest.xml - UXP manifest:
extension/com.opencut.uxp/manifest.json - Both must be kept in sync for version numbers
Install groups individually as needed:
# LLM features (chapters, NLP commands)
pip install openai>=1.0.0 # for OpenAI provider
pip install anthropic>=0.20.0 # for Anthropic provider
# Ollama: install from https://ollama.ai (no pip needed)
# Color matching (OpenCV required)
pip install opencv-python-headless>=4.8.0
# Auto-zoom face detection (OpenCV required)
pip install opencv-python-headless>=4.8.0
# Footage search (stdlib only — no pip required)
# Deliverables (stdlib csv only — no pip required)
# Loudness matching (FFmpeg required — external tool)
# Download from https://ffmpeg.org/download.htmlWhen releasing a new version, update these files:
opencut/__init__.py—__version__pyproject.toml—versionextension/com.opencut.panel/CSXS/manifest.xml—ExtensionBundleVersionandVersionextension/com.opencut.uxp/manifest.json—versionextension/com.opencut.uxp/main.js—VERSIONconstantREADME.md— version badgeCHANGELOG.md— new section