mothermachine

Browse / Video and streaming

OpenChatCut

Local-first conversational video editor whose built-in agent and external MCP clients share one set of timeline tools.

AdaptableOperable ProductDesktop app Hybrid TypeScript MCP server License: AGPL-3.0

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.

Use it when
  • 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
Gotchas
  • 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.

Editions

Free · Free open source

  • DownloadDownload
  • Clonegit clone https://github.com/0xsline/OpenChatCut
  • Installnpx skills add 0xsline/OpenChatCut

For agents: JSON · Markdown

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_PROVIDER LLM_ANTHROPIC_API_KEY LLM_ANTHROPIC_MODEL LLM_OPENAI_API_KEY LLM_OPENAI_MODEL LLM_GEMINI_API_KEY LLM_DEEPSEEK_API_KEY ELEVENLABS_API_KEY GEMINI_API_KEY GEMINI_IMAGE_MODEL IMAGE_API_KEY KLING_API_KEY SEEDANCE_API_KEY FIRECRAWL_API_KEY PEXELS_API_KEY PIXABAY_API_KEY UNSPLASH_ACCESS_KEY FREESOUND_API_KEY MEDIA_DIR AGENT_IMPORT_ROOTS UPLOAD_MAX_BYTES OPENCHATCUT_MCP_TOKEN OPENCHATCUT_RENDER_CONCURRENCY OPENCHATCUT_MAX_ACTIVE_EXPORTS OPENCHATCUT_H264_ENCODER R2_ACCOUNT_ID R2_BUCKET
Config files
.env.local .mcp.json
Prompt files
~/.openchatcut/skills/<name>/SKILL.md src/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

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_session review_edit_session get_edit_session import_asset import_folder manage_skill

Reach

Partial coverage. 6 of 10 jobs reachable through the stated interface.

JobThrough the interfaceEvidence
Multitrack timeline editing: move, trim, split, ripple, keyframesReachableREADME: draft-safe project read/edit tools in an edit session; same EditorCore commands as the UI
Transcript-driven cuts and pause removalReachableREADME Core Capabilities: word-level editing; edit tools apply to the draft
Captions with styles and SRTReachableREADME: captions are timeline edits; translation is a job and may be excluded from drafts
WebGL effects, LUTs, transitions, zoomsReachableREADME: edits written to real clips, transitions, effects
Import local mediaReachableREADME: import_asset and import_folder within AGENT_IMPORT_ROOTS
Create, list, and open projectsReachableREADME: project listing, creation, and navigation tools work without the editor open
AI generation: image, video, speech, musicNot reachableREADME: generation stays unavailable in external MCP sessions because a rejected proposal could not roll it back
Export MP4, audio, captions, FCPXMLNot reachableREADME: export is an immediate side-effect tool and is not exposed to external MCP sessions
Motion graphics templatesUndeterminedREADME: built-in agent can generate MG clips; not stated whether external sessions can place them
Delete a projectNot reachableREADME: 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_KEY LLM_OPENAI_API_KEY LLM_GEMINI_API_KEY ELEVENLABS_API_KEY GEMINI_API_KEY IMAGE_API_KEY KLING_API_KEY SEEDANCE_API_KEY FIRECRAWL_API_KEY PEXELS_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.md src/agent/skills/*/SKILL.md
Install
npx skills add 0xsline/OpenChatCut

Evidence and confidence

FieldWhere it was seenConfidence
formFactorREADME: DMG, Windows installer, Linux AppImage; Electron in topics90%
executionModelREADME: editor is deterministic; built-in agent runs a model loop on the local server85%
operabilityREADME: 'agent-native'; built-in agent and external MCP share the same tools; Streamable HTTP endpoint at localhost:5199/api/external-mcp/mcp95%
effort.env.example documents every provider variable and MCP token; skills are SKILL.md files90%
editionsREADME: independent open source (AGPL); no paid edition95%
activeGitHub pushedAt 2026-08-31–
reach75%

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