A professional-grade desktop video editor built with Tauri 2.0, React, and FFmpeg. ClipForge provides a lightweight yet powerful solution for video editing with professional features like timeline zoom, audio controls, undo/redo, and project management.
Current Version: v0.1.0 MVP
Status: ✅ Complete MVP with all core features implemented
Platform: macOS (ARM64) - Windows support planned for future releases
Last Updated: January 2025
Direct Download Links:
- macOS (Apple Silicon): clipforge_0.1.0_aarch64.dmg (~150MB)
- All Releases: View all releases
System Requirements:
- macOS 10.15+ (Catalina or later)
- Apple Silicon Mac (M1/M2/M3)
- 4GB RAM minimum, 8GB recommended
- ✅ Multi-format Import: Drag & drop or file picker for MP4, MOV, AVI, and more
- ✅ Visual Timeline: Professional timeline with clip arrangement and visual feedback
- ✅ HTML5 Video Player: High-quality preview with frame-accurate scrubbing
- ✅ Precise Trimming: Set in/out points with frame-accurate precision (30fps)
- ✅ Multi-clip Export: Export trimmed clips as single concatenated MP4 file
- ✅ Professional Export: H.264 codec with audio support and volume control
- ✅ Undo/Redo System: Complete history tracking for all editing actions
- ✅ Project Management: Save/load projects in JSON format with full state preservation
- ✅ Audio Controls: Per-clip volume adjustment (0-200%) and mute toggle
- ✅ Timeline Zoom: Dynamic zoom levels (25%-2000%) with frame-accurate view
- ✅ Clip Thumbnails: Automatic thumbnail extraction showing filmstrip preview
- ✅ Keyboard Shortcuts: Professional-grade shortcuts for all major functions
- ✅ Error Handling: Comprehensive error reporting with detailed diagnostics
- ✅ Toast Notifications: Professional notification system with success/error feedback
- ✅ Keyboard Help: Built-in help modal showing all available shortcuts
- ✅ Responsive UI: Professional layout that scales with window size
- ✅ File Management: Smart file handling with validation and error recovery
- Frontend: React 18 + TypeScript + Vite
- Backend: Rust + Tauri 2.0
- Video Processing: FFmpeg/FFprobe (bundled)
- State Management: Custom React hooks with history tracking
- Styling: CSS Grid + Flexbox for professional layout
-
Download the latest release:
- Click the download button above, or
- Go to the Releases page
- Download
clipforge_0.1.0_aarch64.dmgfor macOS (Apple Silicon) - File size: ~150MB (includes bundled FFmpeg)
-
Install ClipForge:
- Double-click the downloaded
.dmgfile - Drag ClipForge to your Applications folder
- Eject the disk image when done
- Double-click the downloaded
-
First Launch:
- Open Applications folder and double-click ClipForge
- macOS will show a security warning (this is normal for unsigned apps)
- To bypass the warning:
- Go to System Preferences → Security & Privacy → General
- Click "Open Anyway" next to the ClipForge warning
- Or right-click the app and select "Open"
| Component | Minimum | Recommended |
|---|---|---|
| macOS Version | 10.15 (Catalina) | 12.0+ (Monterey) |
| Architecture | Apple Silicon (ARM64) | Apple Silicon (M1/M2/M3) |
| RAM | 4GB | 8GB+ |
| Storage | 200MB free | 1GB+ free |
| FFmpeg | Bundled | Bundled |
- Input: MP4, MOV, AVI, MKV, WebM, M4V, 3GP, FLV, WMV
- Output: MP4 (H.264 with audio)
- Resolution: Up to 4K (source resolution preserved)
- Audio: AAC, MP3, Opus, PCM
# Run this command in Terminal to remove the quarantine flag
sudo xattr -rd com.apple.quarantine /Applications/ClipForge.app- Go to System Preferences → Security & Privacy
- Click the lock icon and enter your password
- Click "Open Anyway" under the ClipForge entry
- Try opening the app again
- Check that you have macOS 10.15 or later
- Ensure you have at least 4GB of available RAM
- Try restarting your Mac and launching again
- Check Console.app for any error messages
-
Launch the App:
- Open ClipForge from Applications folder
- Or press
Cmd+Spaceand type "ClipForge"
-
Import Your First Video:
- Method 1: Drag video files directly onto the timeline area
- Method 2: Click the "Import Video" button and select files
- Method 3: Use
Cmd+Ikeyboard shortcut
-
Basic Editing:
- Play/Pause: Press
Spacebaror click the play button - Trim Clips: Drag the yellow handles on the timeline to set in/out points
- Seek: Click anywhere on the timeline to jump to that position
- Play/Pause: Press
-
Export Your Video:
- Click the "Export" button in the top-right corner
- Choose your export location and filename
- Click "Export" to start the process
1. Drag 2-3 video files onto the timeline
2. Notice how they appear as separate clips
3. Each clip shows thumbnails automatically
1. Drag clips left/right to reorder them
2. Clips will snap together automatically
3. Use the zoom controls to see more detail
1. Click on a clip to select it
2. Drag the yellow handles to trim the start/end
3. Use I/O keys for precise trimming:
- Press 'I' to set in point at current position
- Press 'O' to set out point at current position
1. Select a clip on the timeline
2. Use the volume slider (0-200%)
3. Toggle mute button to silence audio
4. Changes apply to the selected clip only
1. Click "Export" button (or press Cmd+E)
2. Choose export location and filename
3. Click "Export" to start processing
4. Wait for completion notification
- Zoom In:
Cmd+=or use zoom controls - Zoom Out:
Cmd+-or use zoom controls - Zoom to Fit:
Cmd+0to see entire timeline - Frame-accurate editing at high zoom levels
- Save Project:
Cmd+Sto save your work - Load Project:
Cmd+Oto open saved project - New Project:
Cmd+Nto start fresh - Undo/Redo:
Cmd+Z/Cmd+Shift+Z
- Rough Cut: Import all footage and arrange clips
- Fine Tuning: Use zoom and precise trimming
- Audio Mix: Adjust volume levels per clip
- Review: Play through entire timeline
- Export: Final output with professional settings
Cmd+N/Ctrl+N- New ProjectCmd+S/Ctrl+S- Save ProjectCmd+O/Ctrl+O- Open ProjectCmd+E/Ctrl+E- Quick ExportCmd+Z/Ctrl+Z- UndoCmd+Shift+Z/Ctrl+Y- Redo?- Show Keyboard Help
Spacebar/K- Play/PauseArrow Left/J- Seek Backward 5sArrow Right/L- Seek Forward 5sHome- Jump to StartEnd- Jump to End
I- Set In PointO- Set Out PointDelete/Backspace- Delete Selected Clip
Cmd+=/Ctrl+=- Zoom InCmd+-/Ctrl+-- Zoom OutCmd+0/Ctrl+0- Zoom to Fit
- Project Setup: Start with Cmd+N to create a new project
- Import Media: Drag multiple video files to build your timeline
- Rough Cut: Use I/O keys to quickly set trim points
- Fine Tuning: Use timeline zoom for frame-accurate editing
- Audio Mix: Adjust volume levels and mute unwanted audio
- Review: Play through your edit to check timing and flow
- Export: Use Cmd+E for quick export or Export button for options
- Save Project: Use Cmd+S to save your work for later
Before you begin, ensure you have the following installed:
| Tool | Version | Installation |
|---|---|---|
| Rust | Latest stable | rustup.rs |
| Node.js | 18+ | nodejs.org |
| Tauri CLI | Latest | cargo install tauri-cli |
| Git | Latest | git-scm.com |
-
Clone the repository:
git clone https://github.com/your-username/clipforge.git cd clipforge -
Install dependencies:
npm install
-
Verify FFmpeg binaries:
# Check that FFmpeg binaries exist ls -la src-tauri/binaries/ # Should show: ffmpeg, ffmpeg-aarch64-apple-darwin, ffprobe, ffprobe-aarch64-apple-darwin
-
Start development server:
npm run tauri dev
| Command | Description |
|---|---|
npm run tauri dev |
Start development server with hot reload |
npm run build |
Build frontend only |
npm run tauri build |
Build production app bundle |
npm run preview |
Preview built frontend |
clipforge/
├── src/ # React frontend
│ ├── components/ # UI components
│ │ ├── VideoPlayer.tsx # Video preview player
│ │ ├── Timeline.tsx # Timeline with zoom support
│ │ ├── ImportButton.tsx # File import component
│ │ ├── ClipThumbnails.tsx # Thumbnail extraction
│ │ └── ... # Other components
│ ├── hooks/ # Custom React hooks
│ ├── utils/ # Helper functions
│ └── App.tsx # Root component
├── src-tauri/ # Rust backend
│ ├── src/
│ │ ├── lib.rs # Tauri command handlers
│ │ ├── thumbnails.rs # Thumbnail generation
│ │ └── export.rs # Video export
│ ├── binaries/ # FFmpeg binaries (bundled)
│ └── tauri.conf.json # Tauri configuration
└── dist/ # Built frontend
npm run build
# Output: dist/ folder with built frontendnpm run tauri build
# Output: src-tauri/target/release/bundle/
# Contains: .dmg file for macOS distributionsrc-tauri/target/release/bundle/
├── dmg/
│ └── clipforge_0.1.0_aarch64.dmg # macOS installer
├── macos/
│ └── clipforge.app # macOS app bundle
└── share/
└── create-dmg/ # DMG creation tools
- Frontend changes reload automatically
- Backend changes require restart:
npm run tauri dev - Check console for any build errors
- Frontend: Use browser dev tools (F12)
- Backend: Check terminal output for Rust errors
- Tauri: Use
console.log()in frontend,println!()in Rust
- Test with various video formats
- Verify FFmpeg path resolution
- Check thumbnail generation
- Test export functionality
# Ensure binaries exist and are executable
ls -la src-tauri/binaries/
chmod +x src-tauri/binaries/ffmpeg*# Update Rust toolchain
rustup update
cargo clean
npm run tauri dev# Clear node modules and reinstall
rm -rf node_modules package-lock.json
npm install
npm run tauri devClipForge/
├── src/ # React frontend
│ ├── components/ # UI components
│ │ ├── VideoPlayer.tsx # Video preview player
│ │ ├── Timeline.tsx # Timeline with zoom support
│ │ ├── ImportButton.tsx # File import component
│ │ ├── KeyboardShortcutsHelp.tsx # Help modal
│ │ ├── Toast.tsx # Notification system
│ │ ├── UndoRedoButtons.tsx # Undo/redo controls
│ │ ├── ProjectMenu.tsx # Save/load project
│ │ ├── AudioControls.tsx # Volume and mute controls
│ │ ├── ZoomControls.tsx # Timeline zoom controls
│ │ └── ClipThumbnails.tsx # Thumbnail extraction
│ ├── hooks/ # Custom React hooks
│ │ ├── useHistory.ts # Undo/redo system
│ │ ├── usePlaybackLoop.ts # Timeline playback
│ │ └── useExport.ts # Export functionality
│ ├── utils/ # Helper functions
│ │ └── toastHelpers.ts # Toast notification utilities
│ ├── App.tsx # Root component
│ └── App.css # Main styles
├── src-tauri/ # Rust backend
│ ├── src/
│ │ └── lib.rs # Tauri commands and FFmpeg integration
│ ├── bin/ # FFmpeg binaries (platform-specific)
│ ├── capabilities/ # Tauri permissions
│ └── tauri.conf.json # Tauri configuration
├── dist/ # Built frontend
└── README.md
- Import: Drag & drop various video formats
- Timeline: Add multiple clips and verify arrangement
- Playback: Play/pause, scrubbing, and timeline navigation
- Trimming: Set in/out points and verify frame accuracy
- Audio: Volume adjustment and mute functionality
- Zoom: Timeline zoom in/out and frame-accurate view
- Thumbnails: Verify thumbnail extraction and display
- Export: Single and multi-clip export with audio
- Undo/Redo: All editing actions are undoable
- Projects: Save/load projects with full state preservation
- Keyboard Shortcuts: All shortcuts work as expected
- Error Handling: Graceful error recovery and user feedback
- Large Files: Test with 4K video files
- Many Clips: Timeline with 50+ clips
- Long Videos: Files over 1 hour duration
- Export Speed: Multi-clip export performance
- Memory Usage: Monitor during extended editing sessions
- Unsigned App: macOS may show security warning on first launch
- FFmpeg Dependencies: Some video formats may require additional codecs
- Large Files: Very large video files (>2GB) may cause performance issues
- Professional Timeline: Frame-accurate editing with zoom support
- Multi-format Support: Import MP4, MOV, AVI, MKV, WebM, and more
- Automatic Thumbnails: Filmstrip preview for all video clips
- Audio Controls: Per-clip volume adjustment and mute
- Project Management: Save/load projects with full state preservation
- Undo/Redo System: Complete history tracking for all actions
- Professional Export: H.264 with audio support
- Keyboard Shortcuts: Professional-grade shortcuts for all functions
- Tauri 2.0: Latest desktop app framework
- Bundled FFmpeg: No external dependencies required
- Production Ready: Fixed thumbnail generation in deployed apps
- macOS Optimized: Native Apple Silicon support
- Error Handling: Comprehensive error reporting and recovery
- Screen Recording: Built-in screen capture functionality
- Webcam Recording: Simultaneous screen + webcam recording
- Clip Reordering: Drag clips to reorder on timeline
- Auto-save: Automatic project saving and crash recovery
- Timeline Markers: Add markers and labels for organization
- Clip Splitting: Split clips at playhead position
- Transitions: Fade, dissolve, and wipe transitions
- Video Effects: Brightness, contrast, and color filters
- Text Overlays: Add titles and captions
- Audio Waveform: Visual audio representation
- Multi-track Timeline: Separate audio and video tracks
- Export Presets: Pre-configured export settings
- Windows Support: Cross-platform compatibility
- Cloud Integration: Google Drive upload support
- API Documentation - Complete Tauri command reference
- Contributing Guide - Development guidelines
- Changelog - Version history
- Testing Guide - Comprehensive testing procedures
- Roadmap - Future development plans
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is proprietary software developed for Gauntlet AI.
- Tauri Team for the excellent desktop app framework
- FFmpeg Community for powerful video processing capabilities
- React Team for the robust frontend framework
Built with ❤️ using Tauri 2.0, React, and Rust