- Python 65.5%
- JavaScript 26.3%
- CSS 6.1%
- HTML 1.4%
- Shell 0.5%
- Other 0.2%
| animation/story | ||
| docs | ||
| scripts | ||
| server | ||
| web | ||
| .gitignore | ||
| config.example.env | ||
| LICENSE | ||
| mcp.example.json | ||
| README.md | ||
| requirements.txt | ||
| run.sh | ||
CutWise
A self-hosted, agentic video editor. Describe the edit in plain English and an LLM agent cuts, layers, grades, and mixes your footage on a non-destructive timeline, with ffmpeg rendering the result. Or skip the agent entirely and edit by hand: the timeline is a full manual editor too.
What it does
- Chat-driven editing. "Cut the dead air, speed up the b-roll 2x, add a title, crossfade everything, put me in the corner with a red border."
- The agent can see and hear. Timestamped transcripts (Parakeet/Whisper, local CPU), frame descriptions and audio analysis via any vision model, and it can review its own renders to verify the result.
- Instant live preview. The timeline plays in the browser immediately. No render needed until you export.
- Manual editing. Click-to-scrub, split (
S), drag to reorder, multi-select, right-click menus, draggable and resizable text on the video, picture-in-picture layers, per-clip effects with live sliders, and markers (K) that pass instructions to the agent. - Real rendering. Everything compiles to a single ffmpeg filter graph: trims, speed ramps, 14 transition styles, color grades, Ken Burns motion, borders, text, overlays, and music with auto-fade. Export at any resolution.
- Bring your own model. Ollama (fully local), Anthropic, OpenAI, Google, xAI, or any OpenAI-compatible endpoint. Footage never leaves your machine; only text (and, if you opt in, frame snapshots) goes to the provider.
Quick start
Requirements: Python 3.11+, ffmpeg, and an LLM (an Ollama server with a tool-calling model, or an API key for a cloud provider).
git clone https://git.adotinthecosmos.com/kevin/CutWise.git
cd CutWise
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
cp config.example.env config.env # point it at your Ollama / set your port
./run.sh # then open http://localhost:8330
Upload a video, then either edit manually or tell the agent what you want.
Pick your model provider under the gear icon in the header. Run
bash scripts/make_samples.sh to generate test footage if you just want to
poke at it.
Press ? in the app for keyboard shortcuts.
How it works
flowchart LR
B["Browser<br/>chat + timeline + live preview"] <-->|WebSocket| S[FastAPI server]
S --> A[Agent loop]
A <--> L["Your LLM<br/>Ollama / Anthropic / OpenAI / Google / xAI"]
A --> T["25+ editing tools<br/>cut, layer, grade, listen, view"]
T --> TL["Non-destructive timeline (JSON)"]
TL --> F[ffmpeg filter graph]
F --> MP4([mp4])
P["Perception (local)<br/>Parakeet ASR + vision model"] --> A
Projects live in data/projects/<id>/. Media, timelines, renders, and
transcripts all stay on your disk.
License
Elastic License 2.0: free to use, modify, and distribute, including commercially. The one restriction: you may not offer CutWise to others as a hosted or managed service.
