- About
- Why OpenTake
- Competitive Edge
- Features
- Platforms
- Rust Workspace
- Architecture
- Docs
- Quick Start
- Version History
- Community
- License
OpenTake is a cross-platform video production engine built on Rust + Tauri 2, running on macOS / Windows / Linux, designed to deeply integrate AI Agents into professional video editing workflows.
🌟 Core Innovation: Instead of making the Agent parse lengthy skill documents, OpenTake actively pushes editing guidance (Context Signal) to the Agent — telling it exactly what each track does, how each clip should be cut, and what rules apply at every stage.
OpenTake is not a replacement for CapCut / DaVinci Resolve / Final Cut Pro — it's a video engine designed for AI Agent workflows. Traditional editors are built for humans; OpenTake is built for humans and Agents, with its timeline, preview, and keyframe systems natively controllable via the MCP protocol.
| Pain Point | Traditional Approach | OpenTake Approach |
|---|---|---|
| Agent doesn't know how to edit | Agent reads skill docs on its own | Software pushes Context Signal — "this track is A-roll, cut with talking-head rhythm" |
| Cross-platform needs 3 codebases | macOS: Swift/AVFoundation, Windows: C++/DirectShow | Single Rust codebase, FFmpeg + wgpu, identical experience on all 3 platforms |
| I want to use AI directly | Locked into vendor cloud services | Official Codex / ChatGPT sign-in for Agent, plus BYOK for fal.ai / Replicate / OpenAI |
| Agent can chat but can't act | CLI agent reads text output | MCP Server with 31 tools — Agent directly runs add_clips / split_clip / set_keyframes |
| Rewriting prompts for every video type | "You are editing a product review..." every time | Workflow Plugin System: review/tutorial/gaming/wedding, each pre-packaged with methodology |
| Steep learning curve for new tools | Complex UI, long onboarding | Agent operates for you — just say "edit this interview into a 3-minute highlight" |
| Dimension | CapCut | DaVinci Resolve | Final Cut Pro | OpenTake |
|---|---|---|---|---|
| Agent-Native Integration | ❌ | ❌ | ❌ | ✅ MCP 31 tools + Context Signal |
| Cross-Platform | ✅ macOS / Win | ✅ macOS / Win / Linux | ❌ macOS only | ✅ macOS / Win / Linux |
| BYOK AI Generation | Paid templates | ❌ | ❌ | ✅ Direct fal.ai / Replicate / OpenAI |
| Local Transcription | ❌ Cloud-only | ❌ Plugins needed | ❌ Plugins needed | ✅ whisper-rs on-device |
| Local Semantic Search | ❌ | ❌ | ❌ | ✅ SigLIP2 + Ort on-device |
| Workflow Plugins | ❌ Fixed templates | ❌ | ❌ | ✅ JSON+MD community plugins |
| Open Source | ❌ | ❌ | ❌ | ✅ GPL-3.0 |
| Agent-Controllable Keyframes | ❌ | ❌ | ❌ | ✅ All 6 kf tracks via MCP |
The software pushes editing guidance to the Agent, instead of making the Agent parse documentation.
Every MCP tool response carries a context_signal:
- Auto Genre Detection: talking-head / vlog / montage / interview / short-drama / long-form
- Track Role Annotation: A-roll / B-roll / voiceover / BGM / SFX / text
- Real-time Rule Checking: breathing-point rules, B-roll five cautions, clock theory, peak-detection pacing
Knowledge source: ClipSkills — 12-volume professional editing knowledge base (MIT-licensed).
OpenTake exposes 44 compatible Agent tools, filtered at runtime so unavailable media, generation, or provider capabilities fail closed instead of being advertised:
| Group | Key Tools |
|---|---|
| Read / Introspect | get_timeline, get_media, inspect_media, search_media |
| Timeline Edit | add_clips, split_clip, set_clip_properties, set_keyframes, ripple_delete_ranges |
| Generate / Import | generate_video, generate_image, generate_audio, import_media |
| Library | create_folder, move_to_folder, rename_media |
| Resources | models/video, models/image |
Official Codex / ChatGPT turns use a fresh loopback endpoint with a random port,
256-bit Bearer token, and current-project identity for that turn only. The legacy
fixed unauthenticated 127.0.0.1:19789 endpoint is disabled in Beta 2; external
Claude/Cursor pairing will return only with an authenticated opt-in flow.
Built-in Agent chat panel shares tool definitions and system prompt with MCP. It can use direct OpenAI/Anthropic BYOK or the user-installed official Codex CLI's ChatGPT sign-in; OpenTake never reads or stores the Codex credential.
| Capability | Technology |
|---|---|
| Codec | FFmpeg (ffmpeg-next) — battle-tested Rust bindings |
| Compositor | wgpu custom compositor — multi-track layering + per-frame property sampling + affine/crop/blend |
| Audio Playback | cpal |
| Transcription | whisper-rs (word/segment timestamps) |
| Semantic Search | candle / ort + SigLIP2 dual-encoder |
Playback routing is capability-based. Ordinary media uses WebKit playback;
timelines that require supported compositing use the Rust compositor; and
timelines with unsupported authored combinations fail closed instead of being
shown with missing effects. Rust frames are published through a session-scoped
exact /frame endpoint guarded by PublicationGate, then handed off through a
two-slot retained-frame buffer. Media poster, preview, waveform, and filmstrip
prewarm/cache work is project- and source-identity scoped. See the
dated playback/cache QA record
for the reviewed 2026-07-10/11 evidence and its artifact boundaries.
Bring Your Own Key: Direct connection to fal.ai / Replicate / OpenAI. Zero backend, zero operational cost. Optional self-hosted proxy.
Community-authored JSON + Markdown plugins per video genre — review / tutorial / gaming / wedding / talking-head — each encapsulating professional editing methodology. Agent activates, methodology loads.
📖 Workflow Plugin System Design
| Platform | Status | Notes |
|---|---|---|
| macOS (Apple Silicon + Intel) | ✅ Primary dev platform | Native ARM64 + x86_64; GPU via Metal (wgpu) |
| Windows (10/11 x86_64) | ✅ Supported | Vulkan / DX12 backend (wgpu); full Tauri 2 support |
| Linux (x86_64) | ✅ Supported | Vulkan backend; AppImage / deb packaging |
| Backend / Headless | ✅ Supported | Pure Rust core runs without GUI for CI / server rendering / Agent batch processing |
📋 macOS ≥12.0 (Monterey), Windows ≥10 (1809+), Linux glibc ≥2.31
crates/
├── opentake-domain # Timeline / Track / Clip / Keyframe — pure value semantics
├── opentake-ops # OverwriteEngine / RippleEngine / SnapEngine — edit algorithm layer
├── opentake-project # Project persistence / bundle / archive / export
├── opentake-media # FFmpeg codec / thumbnails / waveform / transcription / semantic search
├── opentake-render # wgpu compositor + text rasterizer
├── opentake-motion # Native motion fallback: RGBA frame cache / alpha source scaffold
├── opentake-agent # MCP Server + Agent chat + context signal system
├── opentake-gen # Generative AI clients (fal.ai / Replicate / OpenAI)
├── opentake-core # Session management / DI / event bus
└── src-tauri # Tauri 2 desktop shell
Planned external plugin:
plugins/
└── motion-canvas-studio # Motion Canvas (MIT) fork/plugin for AI animation video output
> cargo build --workspace # Build all crates
> cargo test --workspace # Test all crates (≥80% coverage target)┌──────────────────────────────────────────────────────┐
│ React + TypeScript Frontend │
│ TimelineView · Preview · Inspector · MediaPanel │
│ Zustand: read-only Timeline mirror + UI-only state │
└────────────────────┬─────────────────────────────────┘
│ Tauri invoke + event
┌────────────────────▼─────────────────────────────────┐
│ 🦀 Rust Core — Source of Truth │
│ │
│ opentake-domain Timeline / Track / Clip / KF │
│ opentake-ops EditCommand apply / Undo │
│ opentake-project Bundle / Archive / Export │
│ opentake-render wgpu Compositor + Text Raster │
│ opentake-media FFmpeg / Waveform / Transcribe │
│ opentake-agent MCP Server + Chat + Signals │
│ opentake-gen fal.ai / Replicate / OpenAI │
│ opentake-core Session / DI / Events │
│ │
│ ▲ │ │
│ Authenticated per-turn MCP invokes ▼ │
│ In-app Agent Chat FFmpeg + wgpu + cpal + whisper │
└──────────────────────────────────────────────────────┘
| Document | Content |
|---|---|
| ARCHITECTURE.md | Target architecture, layering, crate layout, command layer, render pipeline |
| ROADMAP.md | Phase 0–10 roadmap with verification criteria and risk register |
| MODULE-PORT-MAP.md | 20 upstream module port specs with core algorithms |
| AGENT-CONTEXT-SIGNAL.md | Agent Context Signal system design |
| WORKFLOW-PLUGIN-SYSTEM.md | Workflow Plugin System (JSON + Markdown) |
| ADVANCED-FEATURES.md | Advanced features vs CapCut |
| CAPCUT-GAP.md | 33-item gap analysis vs CapCut |
| DECISIONS.md | Tech stack / license / branding ADRs |
| PORT-1TO1-GAP.md | 1:1 port gap analysis |
When porting editing logic, compare against the original Palmier Pro Swift source:
# Clone upstream alongside OpenTake (sibling directory)
cd ..
git clone https://github.com/palmier-io/palmier-pro.git palmier-pro-upstream
cd OpenTakeExpected layout:
PRIMARY-CN/
├── OpenTake/ # This repo
└── palmier-pro-upstream/ # Upstream Swift source (GPL-3.0)
Key files for comparison:
| Module | Upstream (Swift) | OpenTake (Rust/TS) |
|---|---|---|
| Timeline models | Sources/PalmierPro/Models/Timeline.swift |
crates/opentake-domain/src/timeline.rs |
| Clip model | Sources/PalmierPro/Models/Timeline.swift (Clip struct) |
crates/opentake-domain/src/clip.rs |
| Clip renderer | Sources/PalmierPro/Timeline/ClipRenderer.swift |
web/src/components/timeline/clipRenderer.ts |
| Timeline geometry | Sources/PalmierPro/Timeline/TimelineGeometry.swift |
web/src/lib/geometry.ts |
| Snap engine | Sources/PalmierPro/Timeline/SnapEngine.swift |
web/src/lib/snap.ts |
| Edit operations | Sources/PalmierPro/Editor/ViewModel/EditorViewModel+ClipMutations.swift |
crates/opentake-ops/src/ops/ |
| MCP tools | Sources/PalmierPro/Agent/Tools/ToolExecutor+Timeline.swift |
crates/opentake-agent/src/tools/ |
The upstream directory is gitignored from OpenTake — each collaborator clones it independently.
- Rust ≥ 1.96 (via rustup)
- Node.js ≥ 20 + pnpm
- FFmpeg ≥ 6.0 (
brew install ffmpeg/winget install ffmpeg/apt install ffmpeg)
git clone https://github.com/appergb/OpenTake.git
cd OpenTake
# Rust core
cargo build
cargo test
cargo clippy
# Frontend
cd web && pnpm install && pnpm build
cd ..
# Launch Tauri dev mode
cargo tauri devCurrent Status:
1.0.0-beta.5candidate. The local editing, preview, persistence, export, authenticated external MCP, ordered Agent conversation, Motion Studio, and reviewed AI workflow verticals are implemented. See the Beta release notes for validation scope and platform/provider limits.
The sibling directory palmier-pro-upstream/ contains upstream Swift sources for reference during porting.
| Version | Date | Milestone |
|---|---|---|
0.1.0-dev |
2026-06 | Phase 0+1: Cargo workspace + Domain models + Edit ops + Tauri scaffold |
1.0.0-beta.1 |
2026-08-01 | First installable Beta: end-to-end local editor, Agent, Motion and reviewed AI workflows |
1.0.0-beta.2 |
2026-08-08 | Hardened Beta: official Codex login, atomic timeline gestures, secure MCP and interaction polish |
1.0.0-beta.3 |
2026-08-09 | Playback Beta: app-wide Space transport, native HEVC source preview and release-pipeline hardening |
1.0.0-beta.4 |
2026-08-10 | Release candidate: timing and transition persistence, export consistency, signed updater and Windows tract security upgrade |
1.0.0-beta.5 |
2026-08-14 | Agent workflow Beta: persistent authenticated MCP, ordered inline tools, Motion Studio, project previews and interface polish |
(planned) 1.0.0 |
TBD | Phase 10: Full release — CapCut parity + deep Agent integration |
| Discord (English) | Discord (Chinese) | |
|---|---|---|
| TBD |
Discussions and suggestions welcome at Issues.
OpenTake stands on the shoulders of these excellent open-source projects.
| Project | License | Usage |
|---|---|---|
| Palmier Pro | GPL-3.0 | Edit logic and domain models originate from this community fork |
| ClipSkills | MIT | 12-volume editing knowledge base, internalized as Agent Context Signal system |
| FFmpeg | LGPL-2.1+ / GPL-2.0+ | Media codec engine |
| Tauri | MIT / Apache 2.0 | Cross-platform desktop app framework |
| wgpu | MIT / Apache 2.0 | GPU rendering engine |
| whisper.cpp | MIT | Transcription inference engine |
| rmcp | MIT | Rust MCP server SDK |
"Palmier" / "Palmier Pro" are names/trademarks of their respective owners, used here only for nominative fair use to describe OpenTake's origin.
Copyright (C) 2026 OpenTake contributors
OpenTake is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 (GPLv3) or (at your option) any later version.
OpenTake is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
This program is based on Palmier Pro (Copyright (C) 2026 Palmier, Inc.), also distributed under GPLv3. See NOTICE.
