A modern, open-source video editor built with Tauri, React, and TypeScript featuring a professional timeline interface.
Features β’ Installation β’ Usage β’ Contributing β’ License
- π¬ Multi-Format Support - Import MP4, MOV, WebM, MKV, M4V, AVI videos, MP3, WAV, AAC audio, and JPG, PNG, WebP images
- βοΈ Precision Editing - Frame-accurate trimming with visual timeline
- π Audio Visualization - Real-time audio waveform display
- ποΈ Filmstrip Preview - Thumbnail strip for easy navigation
- π― Professional Timeline - Multi-track timeline with ruler and playhead
- π Text Overlays - Add titles and captions with custom fonts
- πΎ Project Management - Save and load projects with auto-save
- β©οΈ Undo/Redo - 100 levels of undo/redo history
- β‘ Fast Processing - FFmpeg-powered video processing
- π₯οΈ Native Performance - Built with Tauri for desktop-class performance
- π¨ Modern UI - Clean, intuitive interface with dark mode
- π Cross-Platform - Works on macOS, Windows, and Linux
The recommended way to install Clypra on macOS is via Homebrew Cask to automatically bypass the Gatekeeper security warnings:
# Add the custom tap and install the cask
brew install AIEraDev/tap/clypraAlternatively, download the direct installer from the Latest Releases:
- macOS Universal DMG (If using the DMG, drag Clypra to your
/Applicationsfolder, then Right-click/Control-click the icon and select Open to authorize execution).
- Windows x64 MSI Installer: Download from the Latest Releases (If SmartScreen blocks execution, click More Info and select Run Anyway).
- Linux x64 AppImage: Download from the Latest Releases _(Make the file executable using
chmod +x Clypra_.AppImage, then run).*
src/
βββ components/ # React components
β βββ editor/ # Core editor components (Timeline, Preview, etc.)
β βββ screens/ # Full-screen views (LaunchScreen)
β βββ ui/ # Generic UI components (Modals, Icons, etc.)
βββ store/ # Zustand global state stores
β βββ timelineStore.ts# Timeline structure (tracks, clips)
β βββ playbackStore.ts# Playback sync and playhead state
β βββ projectStore.ts # Media assets and project settings
β βββ ... # uiStore, settingsStore, dragStateStore
βββ lib/ # Shared utilities and FFmpeg logic
βββ hooks/ # Custom React hooks
βββ types/ # TypeScript type definitions
βββ constants/ # Global configuration
βββ App.tsx # Main application entry
See ARCHITECTURE.md for detailed documentation.
- Node.js 18+ and npm
- Rust and Cargo (latest stable)
- macOS desktop builds: FFmpeg and FFprobe are bundled as Tauri sidecars (
src-tauri/bin/). The checked-in files are small wrappers that callffmpeg/ffprobefrom yourPATHso localcargo tauri devworks without copying static binaries. For release DMGs, replace them with static builds persrc-tauri/bin/README.md(GPL/LGPL compliance, code-signing / notarization for sidecars). Until Linux/Windows sidecars exist, install FFmpeg on those platforms as before.
# macOS (used by sidecar wrappers until you drop in static binaries)
brew install ffmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
# Windows (using Chocolatey)
choco install ffmpeg
# Or download from https://ffmpeg.org/download.html# Clone the repository
git clone https://github.com/AIEraDev/clypra.git
cd clypra
# Install dependencies
npm install
# Configure API key (required for text effects and templates)
cp .env.example .env
# Edit .env and add your Clypra API key
# Run in development mode
npm run tauri devClypra uses the Clypra API for text effects and templates. To enable these features:
-
Copy the
.env.examplefile to.env:cp .env.example .env
-
Add your API key to the
.envfile:VITE_CLYPRA_API_KEY=your_api_key_here -
Important: Never commit the
.envfile to version control. It's already included in.gitignore.
The API key is used to authenticate requests to:
- Text effects library
- Text templates library
- Lottie animations
# Build the frontend
npm run build
# Build the Tauri app
npm run tauri build
# The built app will be in src-tauri/target/release/npm run dev- Start Vite dev servernpm run build- Build frontendnpm run preview- Preview production buildnpm run tauri dev- Run Tauri app in developmentnpm run tauri build- Build Tauri app for production
Frontend:
- React 19
- TypeScript
- Tailwind CSS 4
- Vite 7
Backend:
- Tauri 2
- Rust
- FFmpeg (via CLI)
- Import Media - Click "Import Media" to select video, audio, or image files
- Preview - Use the video player controls to preview your content
- Edit Timeline - Drag media to the timeline and arrange clips
- Trim & Adjust - Adjust clip start/end times using the timeline
- Export - Click "Export" to save your edited video
Space- Play/Pause videoCtrl/Cmd + Scroll- Zoom timelineTrackpad Pinch- Zoom timeline
Clypra relies on a powerful and scalable state architecture using Zustand. State is split into logical domains to minimize unnecessary re-renders while ensuring high performance:
timelineStore: Manages complex timeline manipulations (clips, tracks).playbackStore: Highly optimized store for frame-accurate playback and playhead sync.projectStore: Manages media assets, project settings, and history.uiStore&settingsStore: Handles application themes, view modes, and preferences.
- Components (
src/components) - Focused purely on declarative UI rendering. Core editor modules (Timeline, SourcePreview, PreviewPanel) are fully decoupled. - State (
src/store) - Centralized business logic and actions. - Utilities (
src/lib) - Pure functions for timeline math, FFmpeg process execution, and Tauri sidecar integration. - Type Safety (
src/types) - Strict TypeScript models for the entire editing domain.
- Memoized calculations for timeline rendering
- Canvas-based waveform for efficient visualization
- Async filmstrip generation to avoid blocking UI
- Proper cleanup to prevent memory leaks
We welcome contributions from the community! Whether it's:
- π Bug reports
- π‘ Feature requests
- π Documentation improvements
- π§ Code contributions
Please read our Contributing Guide and Code of Conduct before submitting a PR.
# Run tests
npm test
# Run tests with UI
npm run test:ui
# Lint code
npm run lint- Multi-track audio mixing
- Video effects and filters
- Transitions between clips
- Text and title overlays
- Export presets for different platforms
- Keyboard shortcut customization
- Plugin system
- Discord: Join our Discord (coming soon)
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Pull Requests: Contributing Guide
- Sponsor: GitHub Sponsors (coming soon)
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Tauri - Rust-powered desktop apps
- Video processing by FFmpeg
- UI powered by React and Tailwind CSS
- Timeline design inspired by professional video editors
If you find this project useful, please consider:
- β Starring the repository
- π Reporting bugs
- π‘ Suggesting new features
- π§ Contributing code
- π’ Sharing with others
Made with β€οΈ by the Clypra community

