VantaCut is a desktop-like TUI nonlinear video editor built with Python and Textual. The product direction is a terminal-native NLE with a real project model, timeline engine, subtitle tooling, mpv preview bridge, and ffmpeg export pipeline.
The application boots into an empty real project instead of a fake demo. The main flows now include:
Newproject creation into any folder on the machine- project save/load with recent project tracking
- project-local autosave and progress snapshots under
.vantacut-progress/ - media import from any folder on the machine
- graphical source preview in-terminal through ffmpeg, with mpv transport when available
- timeline insertion, split, trim, move, ripple delete, and undo/redo
- subtitle editing and SRT import/export
- export planning through ffmpeg
Preview, probing, and export still depend on external tools:
ffmpegfor terminal preview and exportmpvfor transport controls when JSON IPC is availableffprobefor richer media probing- Unix domain socket support for mpv JSON IPC
If these tools are missing, VantaCut now reports that clearly in the UI and in the doctor output instead of failing silently.
Python dependencies are expected under .deps.
System dependencies:
mpv
ffmpeg
ffprobeOn Ubuntu / Debian:
sudo apt-get update
sudo apt-get install -y mpv ffmpegThe repo is configured to use a local .deps directory for Python
dependencies in constrained environments.
PYTHONPATH=.deps python3 -m vantacutRun the built-in environment and smoke checker first:
PYTHONPATH=.deps python3 -m vantacut.doctorIt verifies:
- writable VantaCut state directory
- Unix socket IPC capability for mpv preview
- available preview backends
- presence of
mpv,ffmpeg, andffprobe - project save/load round-trip
- media probe fallback path
The command exits non-zero only if VantaCut has no usable graphical preview backend or required external tools are missing.
Automated test suite:
PYTHONPATH=.deps python3 -m pytest -qUse this exact checklist after vantacut.doctor passes:
- Start the app.
PYTHONPATH=.deps python3 -m vantacut - Create a project.
Press
Ctrl+N, choose an empty folder, and confirm that a.vcut.jsonfile appears inside that folder. - Import media from a different folder.
Click
Import, browse to a video, audio, image, or subtitle file outside the project folder, and confirm it appears in the Media bin. - Verify preview.
Select imported video, audio, and image assets in turn and confirm mpv
transport or the terminal preview updates to the beginning of the source. If
doctor reports
unix_socket_ipc=blocked, VantaCut will use the terminal graphical preview instead of mpv transport. - Insert into the timeline.
Select the asset and press
I. Confirm the clip appears on the correct track. - Edit the clip.
Drag it, trim either edge, split with
S, and undo/redo withCtrl+Z/Ctrl+Y. - Save, reopen, and recover.
Click
Saveto write the current project file. Quit, relaunch, then open the project either by clicking it underProject -> Recent Projectsor by clickingOpenand selecting the.vcut.jsonfile. If you want to recover unsaved progress, pressCtrl+Shift+R; VantaCut keeps project-local autosave and latest/previous snapshots under the project's.vantacut-progress/folder. - Test subtitles.
Open the
Subtitlestab, add a cue, edit text, export SRT, then import it back. - Test export. Open export, choose a preset and output path, and confirm ffmpeg runs without freezing the UI.
See docs/architecture.md for the architecture plan, milestones, and subsystem boundaries.
To open a saved project:
- Start VantaCut with
PYTHONPATH=.deps python3 -m vantacut. - Open it from the left
Projecttab underRecent Projects, or clickOpenin the toolbar and choose the.vcut.jsonfile directly. - If the project file is older than the autosave state, press
Ctrl+Shift+Rto recover the newer in-progress version from.vantacut-progress/.