Source version: 1.0.0-beta.6. Published versions and downloads are maintained in GitHub Releases. See the execution plan, version notes and documentation/source review.
The source includes multiple media preview tabs, folder/flat/grouped media views, temporal compositor routing, transparent Motion publishing and ProRes 4444 export. The Text panel adds text clips; the Effect panel applies presets to one selected visual clip while preserving existing effects. Sticker supports project image/Lottie assets, local import, selection/preview and placement on the timeline. Focused tests and macOS package GUI checks are recorded in the validation report; provider and platform coverage remains tied to the corresponding evidence.
Semantic search uses fixed-revision assets (about 1.5 GB) with checksum validation and offline installation. Real image/text embedding and ranking passed on macOS and Windows; Windows uses fixed input facts with the locked Tract engine. The macOS package also passed actual model download, indexing and Chinese visual queries. A model installation is required before use; see the semantic model audit.
- 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, targeting 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, platform-specific validation |
| 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 | Capability-filtered MCP Server — 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" |
OpenTake combines a Rust-owned timeline, command-based undo, authenticated MCP, Context Signal and local/BYOK media workflows. The capability ledger tracks implementation and evidence; it does not imply feature parity with other editors.
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 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 an authenticated per-turn loopback endpoint bound to the current project. Beta 5 also introduced explicit pairing for external MCP clients, with credentials, revocation and persistent client configuration. The old unauthenticated endpoint remains disabled; see MCP behavior.
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 (requires installed model) |
| Semantic Search | SigLIP2; fixed-revision model installation and real macOS Rust inference validated |
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 | Evidence boundary |
|---|---|
| macOS | Primary development platform; dated native/package evidence is linked from release notes. Intel and Apple Silicon artifacts require their own validation. |
| Windows | Build/installer target; candidate CI and native installer/UI evidence are required before claiming a verified distribution. |
| Linux | Build target; no new Linux distribution or native GUI verification is claimed here. |
| Headless core | Rust library APIs and tests can run without the desktop UI; media/GPU/browser capabilities still have runtime requirements. |
crates/
├── opentake-process-tree # Cross-platform child-process lifecycle
├── 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 # Motion rendering, RGBA cache and transparent publishing
├── 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
Motion Canvas plugin (implemented constrained runner):
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 OpenTake-generationExpected layout:
PRIMARY-CN/
├── OpenTake-generation/ # 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 devThe 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 |
1.0.0-beta.6 |
Version record | Transparent Motion, ProRes 4444, preview tabs, media views, text/effects/stickers and verified semantic search |
(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.
