Skip to content

Repository files navigation

OpenTake

OpenTake

Agent-Native Video Production Engine
エージェントネイティブな動画制作エンジン
Agent 原生的视频制作引擎

PlatformsLicenseStarsDiscord ENDiscord CNCI

中文 | 日本語

Table of Contents


📖 About

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.

Positioning

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.


🎯 Why OpenTake

Pain PointTraditional ApproachOpenTake Approach
Agent doesn't know how to editAgent reads skill docs on its ownSoftware pushes Context Signal — "this track is A-roll, cut with talking-head rhythm"
Cross-platform needs 3 codebasesmacOS: Swift/AVFoundation, Windows: C++/DirectShowSingle Rust codebase, FFmpeg + wgpu, identical experience on all 3 platforms
I want to use AI directlyLocked into vendor cloud servicesOfficial Codex / ChatGPT sign-in for Agent, plus BYOK for fal.ai / Replicate / OpenAI
Agent can chat but can't actCLI agent reads text outputMCP 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 timeWorkflow Plugin System: review/tutorial/gaming/wedding, each pre-packaged with methodology
Steep learning curve for new toolsComplex UI, long onboardingAgent operates for you — just say "edit this interview into a 3-minute highlight"

⚡ Competitive Edge

DimensionCapCutDaVinci ResolveFinal Cut ProOpenTake
Agent-Native Integration✅ MCP 31 tools + Context Signal
Cross-Platform✅ macOS / Win✅ macOS / Win / Linux❌ macOS only✅ macOS / Win / Linux
BYOK AI GenerationPaid 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

✨ Features

🧠 Agent Context Signal System

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).

📖 Context Signal Design

🔌 Agent Tool Surface

OpenTake exposes 44 compatible Agent tools, filtered at runtime so unavailable media, generation, or provider capabilities fail closed instead of being advertised:

GroupKey Tools
Read / Introspectget_timeline, get_media, inspect_media, search_media
Timeline Editadd_clips, split_clip, set_clip_properties, set_keyframes, ripple_delete_ranges
Generate / Importgenerate_video, generate_image, generate_audio, import_media
Librarycreate_folder, move_to_folder, rename_media
Resourcesmodels/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.

🎬 Cross-Platform Media Engine

CapabilityTechnology
CodecFFmpeg (ffmpeg-next) — battle-tested Rust bindings
Compositorwgpu custom compositor — multi-track layering + per-frame property sampling + affine/crop/blend
Audio Playbackcpal
Transcriptionwhisper-rs (word/segment timestamps)
Semantic Searchcandle / 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.

🌐 BYOK AI Generation

Bring Your Own Key: Direct connection to fal.ai / Replicate / OpenAI. Zero backend, zero operational cost. Optional self-hosted proxy.

📋 Workflow Plugin System

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


🖥️ Platforms

PlatformStatusNotes
macOS (Apple Silicon + Intel)✅ Primary dev platformNative ARM64 + x86_64; GPU via Metal (wgpu)
Windows (10/11 x86_64)✅ SupportedVulkan / DX12 backend (wgpu); full Tauri 2 support
Linux (x86_64)✅ SupportedVulkan backend; AppImage / deb packaging
Backend / Headless✅ SupportedPure Rust core runs without GUI for CI / server rendering / Agent batch processing

📋 macOS ≥12.0 (Monterey), Windows ≥10 (1809+), Linux glibc ≥2.31


🦀 Rust Workspace

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)

🏗️ Architecture

┌──────────────────────────────────────────────────────┐
│ 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 │
└──────────────────────────────────────────────────────┘

📖 Architecture Docs


📚 Docs

DocumentContent
ARCHITECTURE.mdTarget architecture, layering, crate layout, command layer, render pipeline
ROADMAP.mdPhase 0–10 roadmap with verification criteria and risk register
MODULE-PORT-MAP.md20 upstream module port specs with core algorithms
AGENT-CONTEXT-SIGNAL.mdAgent Context Signal system design
WORKFLOW-PLUGIN-SYSTEM.mdWorkflow Plugin System (JSON + Markdown)
ADVANCED-FEATURES.mdAdvanced features vs CapCut
CAPCUT-GAP.md33-item gap analysis vs CapCut
DECISIONS.mdTech stack / license / branding ADRs
PORT-1TO1-GAP.md1:1 port gap analysis


🔗 Upstream Reference

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

Expected layout:

PRIMARY-CN/
├── OpenTake/ # This repo
└── palmier-pro-upstream/ # Upstream Swift source (GPL-3.0)

Key files for comparison:

ModuleUpstream (Swift)OpenTake (Rust/TS)
Timeline modelsSources/PalmierPro/Models/Timeline.swiftcrates/opentake-domain/src/timeline.rs
Clip modelSources/PalmierPro/Models/Timeline.swift (Clip struct)crates/opentake-domain/src/clip.rs
Clip rendererSources/PalmierPro/Timeline/ClipRenderer.swiftweb/src/components/timeline/clipRenderer.ts
Timeline geometrySources/PalmierPro/Timeline/TimelineGeometry.swiftweb/src/lib/geometry.ts
Snap engineSources/PalmierPro/Timeline/SnapEngine.swiftweb/src/lib/snap.ts
Edit operationsSources/PalmierPro/Editor/ViewModel/EditorViewModel+ClipMutations.swiftcrates/opentake-ops/src/ops/
MCP toolsSources/PalmierPro/Agent/Tools/ToolExecutor+Timeline.swiftcrates/opentake-agent/src/tools/

The upstream directory is gitignored from OpenTake — each collaborator clones it independently.

🚀 Quick Start

Prerequisites

  • Rust ≥ 1.96 (via rustup)
  • Node.js ≥ 20 + pnpm
  • FFmpeg ≥ 6.0 (brew install ffmpeg / winget install ffmpeg / apt install ffmpeg)

Build

git clone https://github.com/appergb/OpenTake.git
cd OpenTake
# Rust core
cargo build
cargo test
cargo clippy
# Frontendcd web && pnpm install && pnpm build
cd ..
# Launch Tauri dev mode
cargo tauri dev

Current Status: 1.0.0-beta.5 candidate. 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 History

VersionDateMilestone
0.1.0-dev2026-06Phase 0+1: Cargo workspace + Domain models + Edit ops + Tauri scaffold
1.0.0-beta.12026-08-01First installable Beta: end-to-end local editor, Agent, Motion and reviewed AI workflows
1.0.0-beta.22026-08-08Hardened Beta: official Codex login, atomic timeline gestures, secure MCP and interaction polish
1.0.0-beta.32026-08-09Playback Beta: app-wide Space transport, native HEVC source preview and release-pipeline hardening
1.0.0-beta.42026-08-10Release candidate: timing and transition persistence, export consistency, signed updater and Windows tract security upgrade
1.0.0-beta.52026-08-14Agent workflow Beta: persistent authenticated MCP, ordered inline tools, Motion Studio, project previews and interface polish
(planned)1.0.0TBDPhase 10: Full release — CapCut parity + deep Agent integration

📖 Full Roadmap


🌍 Community

Discord (English)Discord (Chinese)WeChat
Discord ENDiscord CNTBD

StarsForksIssues

Contributing

Discussions and suggestions welcome at Issues.


Acknowledgments

OpenTake stands on the shoulders of these excellent open-source projects.

ProjectLicenseUsage
Palmier ProGPL-3.0Edit logic and domain models originate from this community fork
ClipSkillsMIT12-volume editing knowledge base, internalized as Agent Context Signal system
FFmpegLGPL-2.1+ / GPL-2.0+Media codec engine
TauriMIT / Apache 2.0Cross-platform desktop app framework
wgpuMIT / Apache 2.0GPU rendering engine
whisper.cppMITTranscription inference engine
rmcpMITRust 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.


📜 License

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.


Built with 🦀 Rust + 💙 Open Source

About

Cross-platform, open-source AI video editor — a GPL-3.0 community fork of Palmier Pro. Rust core + Tauri 2 + React, FFmpeg + wgpu.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages