OpenChatCut
Local-first conversational video editor whose built-in agent and external MCP clients share one set of timeline tools.
An AGPL Electron and web editor with a real multitrack timeline, transcript-driven cuts, captions, WebGL effects, and generation jobs. Codex or Claude Code connect over a Streamable HTTP MCP endpoint, edit an isolated draft, and submit it for approval inside the editor.
- I edit interviews by deleting words from a transcript and want Claude Code to do the rough cut while I keep undo and the timeline
- I want a CapCut-style editor where my keys stay on my machine and an agent proposes edits I approve
- AGPL-3.0
- macOS builds are unsigned and not notarized; Gatekeeper will need manual approval
- External MCP sessions cannot generate, export, or delete; those stay in the UI or the built-in agent
- Requires Node 24.x to run from source
Last activity Aug 31, 2026. Fit: adaptable 2, operable 3.
Adaptable: what is yours to change
Make it yours
Config only31 things to edit
Copy .env.example to .env.local and set only the provider keys you use; LLM_PROVIDER picks the default chat model. MEDIA_DIR and AGENT_IMPORT_ROOTS control where media lives and what agents may read. Add or edit agent skills as SKILL.md files under ~/.openchatcut/skills/. Set OPENCHATCUT_MCP_TOKEN before exposing the MCP endpoint.
- Env vars
LLM_PROVIDERLLM_ANTHROPIC_API_KEYLLM_ANTHROPIC_MODELLLM_OPENAI_API_KEYLLM_OPENAI_MODELLLM_GEMINI_API_KEYLLM_DEEPSEEK_API_KEYELEVENLABS_API_KEYGEMINI_API_KEYGEMINI_IMAGE_MODELIMAGE_API_KEYKLING_API_KEYSEEDANCE_API_KEYFIRECRAWL_API_KEYPEXELS_API_KEYPIXABAY_API_KEYUNSPLASH_ACCESS_KEYFREESOUND_API_KEYMEDIA_DIRAGENT_IMPORT_ROOTSUPLOAD_MAX_BYTESOPENCHATCUT_MCP_TOKENOPENCHATCUT_RENDER_CONCURRENCYOPENCHATCUT_MAX_ACTIVE_EXPORTSOPENCHATCUT_H264_ENCODERR2_ACCOUNT_IDR2_BUCKET- Config files
.env.local.mcp.json- Prompt files
~/.openchatcut/skills/<name>/SKILL.mdsrc/agent/skills/- Accounts you need
- one LLM provider account for the built-in agent (Anthropic, OpenAI, Gemini, or others)ElevenLabs, Kling, Seedance, Pexels (optional, per feature)
Source
- github.com/0xsline/OpenChatCut
- AGPL-3.0 license
- Last commit Aug 31, 2026
- 1,549 stars
Operable: what an agent can drive
Interface
NativeMCP serverpublished by the builderlocal
How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.
- Docs
- github.com/0xsline/OpenChatCut#using-openchatcut-with-codex--claude-code
- Tools
begin_edit_sessionreview_edit_sessionget_edit_sessionimport_assetimport_foldermanage_skill
Reach
Partial coverage. 6 of 10 jobs reachable through the stated interface.
| Job | Through the interface | Evidence |
|---|---|---|
| Multitrack timeline editing: move, trim, split, ripple, keyframes | Reachable | README: draft-safe project read/edit tools in an edit session; same EditorCore commands as the UI |
| Transcript-driven cuts and pause removal | Reachable | README Core Capabilities: word-level editing; edit tools apply to the draft |
| Captions with styles and SRT | Reachable | README: captions are timeline edits; translation is a job and may be excluded from drafts |
| WebGL effects, LUTs, transitions, zooms | Reachable | README: edits written to real clips, transitions, effects |
| Import local media | Reachable | README: import_asset and import_folder within AGENT_IMPORT_ROOTS |
| Create, list, and open projects | Reachable | README: project listing, creation, and navigation tools work without the editor open |
| AI generation: image, video, speech, music | Not reachable | README: generation stays unavailable in external MCP sessions because a rejected proposal could not roll it back |
| Export MP4, audio, captions, FCPXML | Not reachable | README: export is an immediate side-effect tool and is not exposed to external MCP sessions |
| Motion graphics templates | Undetermined | README: built-in agent can generate MG clips; not stated whether external sessions can place them |
| Delete a project | Not reachable | README: project deletion excluded from external sessions |
Code stack
- Languages
- TypeScript
- Frameworks
- ElectronRemotionVercel AI SDKffmpeg
- Package manager
- npm
- Database
- none
- Hosting target
- local desktoplocalhost web
- Built
- Unknown (recorded, never ranked)
Model stack
- Providers
- AnthropicOpenAIGeminiKimiQwenGLMDeepSeekMiniMaxMistralElevenLabsWaveSpeedKlingSeedanceBytePlus
- Models
- none
- Keys you need
LLM_ANTHROPIC_API_KEYLLM_OPENAI_API_KEYLLM_GEMINI_API_KEYELEVENLABS_API_KEYGEMINI_API_KEYIMAGE_API_KEYKLING_API_KEYSEEDANCE_API_KEYFIRECRAWL_API_KEYPEXELS_API_KEY- Prompts live in
src/agent/skills/~/.openchatcut/skills/<name>/SKILL.md
Skills
Ships an installable skill that teaches a coding agent to drive the editor over MCP, plus built-in editing skills the in-app agent loads.
- Kind
- bundled
- Paths
skills/openchatcut/SKILL.mdsrc/agent/skills/*/SKILL.md- Install
npx skills add 0xsline/OpenChatCut
Evidence and confidence
| Field | Where it was seen | Confidence |
|---|---|---|
| formFactor | README: DMG, Windows installer, Linux AppImage; Electron in topics | 90% |
| executionModel | README: editor is deterministic; built-in agent runs a model loop on the local server | 85% |
| operability | README: 'agent-native'; built-in agent and external MCP share the same tools; Streamable HTTP endpoint at localhost:5199/api/external-mcp/mcp | 95% |
| effort | .env.example documents every provider variable and MCP token; skills are SKILL.md files | 90% |
| editions | README: independent open source (AGPL); no paid edition | 95% |
| active | GitHub pushedAt 2026-08-31 | – |
| reach | 75% |
Open questions
- Count and names of the external MCP tools beyond the session tools; the README does not enumerate them
- Whether transcription jobs can be started from an external session
Sources
- openchatcut.com sourcing:video-streaming:github
- github.com/0xsline/OpenChatCut sourcing:video-streaming:github