SkillAgentSearch skills...

CutScript

Open-source AI-powered text-based video editor. Edit video by editing text.

Install / Use

/learn @DataAnts-AI/CutScript
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

CutScript

An open-source, local-first, Descript-like text-based audio and video editor powered by AI. Edit audio/video by editing text — delete a word from the transcript and it's cut from the audio/video.

<img width="1034" height="661" alt="image" src="https://github.com/user-attachments/assets/b1ed9505-792e-42ca-bb73-85458d0f02a5" />

Architecture

  • Electron + React desktop app with Tailwind CSS
  • FastAPI Python backend (spawned as child process)
  • WhisperX for word-level transcription with alignment
  • FFmpeg for video processing (stream-copy and re-encode)
  • Ollama / OpenAI / Claude for AI features (filler removal, clip creation)

Quick Start

Prerequisites

  • Node.js 18+
  • Python 3.10+
  • FFmpeg (in PATH)
  • (Optional) Ollama for local AI features

Install

# Root dependencies (Electron, concurrently)
npm install

# Frontend dependencies (React, Tailwind, Zustand)
cd frontend && npm install && cd ..

# Backend dependencies
cd backend && pip install -r requirements.txt && cd ..

Run (Development)

# Start all three (backend + frontend + electron)
npm run dev

Or run them separately:

# Terminal 1: Backend
cd backend && python -m uvicorn main:app --reload --port 8642

# Terminal 2: Frontend
cd frontend && npm run dev

# Terminal 3: Electron
npx electron .

Project Structure

cutscript/
├── electron/          # Electron main process
│   ├── main.js        # App entry, spawns Python backend
│   ├── preload.js     # Secure IPC bridge
│   └── python-bridge.js
├── frontend/          # React + Vite + Tailwind
│   └── src/
│       ├── components/  # VideoPlayer, TranscriptEditor, etc.
│       ├── store/       # Zustand state (editorStore, aiStore)
│       ├── hooks/       # useVideoSync, useKeyboardShortcuts
│       └── types/       # TypeScript interfaces
├── backend/           # FastAPI Python backend
│   ├── main.py
│   ├── routers/       # API endpoints
│   ├── services/      # Core logic (transcription, editing, AI)
│   └── utils/         # GPU, cache, audio helpers
└── shared/            # Project schema

Features

| Feature | Status | |---------|--------| | Word-level transcription (WhisperX) | Done | | Text-based video editing | Done | | Undo/redo | Done | | Waveform timeline | Done | | FFmpeg stream-copy export | Done | | FFmpeg re-encode (up to 4K) | Done | | AI filler word removal | Done | | AI clip creation (Shorts) | Done | | Ollama + OpenAI + Claude | Done | | Word-level captions (SRT/VTT/ASS) | Done | | Caption burn-in on export | Done | | Studio Sound (DeepFilterNet) | Done | | Keyboard shortcuts (J/K/L) | Done | | Speaker diarization | Done | | Virtualized transcript (react-virtuoso) | Done | | Encrypted API key storage | Done | | Project save/load (.cutscript) | Done | | AI background removal | Planned |

Keyboard Shortcuts

| Key | Action | |-----|--------| | Space | Play / Pause | | J / K / L | Reverse / Pause / Forward | | ← / → | Seek ±5 seconds | | Delete | Delete selected words | | Ctrl+Z | Undo | | Ctrl+Shift+Z | Redo | | Ctrl+S | Save project | | Ctrl+E | Export | | ? | Shortcut cheatsheet |

API Endpoints

| Method | Endpoint | Description | |--------|----------|-------------| | GET | /health | Health check | | POST | /transcribe | Transcribe video with WhisperX | | POST | /export | Export edited video (stream copy or re-encode) | | POST | /ai/filler-removal | Detect filler words via LLM | | POST | /ai/create-clip | AI-suggested clips for shorts | | GET | /ai/ollama-models | List local Ollama models | | POST | /captions | Generate SRT/VTT/ASS captions | | POST | /audio/clean | Noise reduction (DeepFilterNet) | | GET | /audio/capabilities | Check audio processing availability |

License

MIT License — see LICENSE for details.

View on GitHub
GitHub Stars56
CategoryContent
Updated1h ago
Forks6

Languages

TypeScript

Security Score

100/100

Audited on Apr 5, 2026

No findings