Transform hours of raw talking head footage into polished scripts in minutes.
RambleAI is an AI-powered desktop application that preprocesses talking head videos, automatically selecting the best clips and reordering them into coherent scripts. Built with Wails, Go, and SvelteKit, it saves content creators 60-80% of their editing time.
RambleAI is NOT a video editor - it's a preprocessing tool that works WITH your favorite editor (Premiere, Final Cut, DaVinci Resolve). It handles the tedious part of editing talking head content: finding the good takes, removing the rambling, and organizing everything into a coherent narrative.
- ⚡ 60-80% Time Savings: What used to take 8 hours now takes 2-3 hours
- 🎯 Smart Clip Selection: AI identifies the best parts of your videos automatically
- 🧠 AI Script Reordering: Transform disorganized clips into coherent scripts
- 🔒 100% Private: All processing happens locally on your machine
- 🔄 Works with Any Editor: Export to your preferred video editing software
- 🎬 Video Management: Import and organize talking head footage
- ✂️ Smart Highlight Extraction: AI-powered clip selection with quality scoring
- 🤖 Flexible AI Integration: Use any AI model via OpenRouter (bring your own API keys)
- 📝 Accurate Transcription: Word-level timestamps for precise editing
- 🎯 Visual Timeline Editor: Drag-to-resize highlight editing
- 📤 Multiple Export Options: Individual clips or stitched compilations
- 🌓 Modern UI: Dark/Light theme with native desktop performance
- 🚀 Fast Processing: Optimized for quick turnaround times
- Download the latest release from GitHub Releases
- Install the application:
- macOS: Open the .dmg and drag RambleAI to Applications
- Windows: Run the installer
- Linux: Extract and run the AppImage
- Launch RambleAI
- Create a new project
- Import your talking head video
- Let AI analyze and transcribe
- Review AI-suggested clips
- Reorder clips into your script
- Export to your video editor
-
📤 Upload Footage: Import your raw talking head video. AI analyzes speech patterns and content quality.
-
🎯 Smart Selection: AI identifies the best clips based on clarity, coherence, and narrative value.
-
🧠 Script Reordering: AI reorders selected clips into a coherent, engaging script using your choice of LLM.
-
📦 Export & Handoff: Export optimized scripts and clips ready for your favorite video editor.
- macOS 10.15+ / Windows 10+ / Linux (Ubuntu 20.04+)
- 8GB RAM
- 2GB free disk space
- Internet connection (for AI features only)
- 16GB RAM for optimal performance
- SSD for faster video processing
- Dedicated GPU for smoother playback
- Go 1.22+
- Node.js 20+
- pnpm 9+
- FFmpeg (for video processing)
- Wails CLI
# Install Wails CLI
go install github.com/wailsapp/wails/v2/cmd/wails@latest
# Clone the repository
git clone https://github.com/leoaudibert/ramble-ai.git
cd ramble-ai
# Install dependencies
make setup
# Run in development mode
make dev# Build for production
make build
# Build from scratch (clean build)
make full-buildThe project has comprehensive test coverage with multiple testing approaches:
# Run all tests
make test
# Run specific test suites
make test-go # Go tests only
make test-frontend # Frontend tests only
make test-coverage # Generate coverage report
# Watch mode for frontend development
make test-watchFor detailed testing documentation, see docs/TESTING.md.
To test the complete application locally with both PocketBase backend and Wails desktop app:
# Terminal 1: Start PocketBase backend (reset database)
cd pb-be
make pb NUKE=1
# Terminal 2: Start Wails desktop app
make devThis setup provides:
- ✅ Clean Database:
NUKE=1resets PocketBase database completely - ✅ Consistent API Keys: Both services seed the same development API key
- ✅ Remote Backend Mode: Wails app connects to local PocketBase (localhost:8090)
- ✅ Full Feature Testing: Audio transcription, user management, subscriptions
Development API Key: Both services automatically use ra-dev-12345678901234567890123456789012
Ports:
- PocketBase Backend:
http://localhost:8090 - SvelteKit Frontend:
http://localhost:5174 - Wails Desktop App: Development window
RambleAI/
├── app.go # Main application logic
├── goapp/ # Go backend modules
│ ├── exports/ # Video export functionality
│ ├── highlights/ # Highlight management
│ ├── projects/ # Project management
│ └── settings/ # Application settings
├── frontend/ # SvelteKit frontend
│ ├── src/
│ │ ├── lib/ # Components and utilities
│ │ └── routes/ # Application pages
│ └── static/ # Static assets
├── ent/ # Database ORM (Ent)
└── Makefile # Build and development commands
- Backend: Go, Ent ORM, SQLite
- Frontend: SvelteKit (Svelte 5), Tailwind CSS, shadcn-svelte
- Build: Wails, Vite, Earthly
- Testing: Vitest, Go testing, Earthly CI
# Create new entity
make new-entity name=EntityName
# Generate Ent code
make generate
# Reset database (WARNING: deletes all data)
make db-resetThe project uses GitHub Actions with Earthly for continuous integration:
- ✅ Automated testing on every push
- 🔍 Code linting and formatting checks
- 📊 Test coverage reporting
- 🏗️ Multi-platform builds (Linux, macOS, Windows)
- 🔐 Automated macOS code signing and notarization
# Install Earthly
brew install earthly/earthly/earthly
# Run full CI pipeline locally
earthly +ci
# Run specific targets
earthly +test
earthly +lint
earthly +build-frontendThe project automatically signs and notarizes macOS builds using GitHub Actions. This requires the following GitHub secrets/variables:
Set these in your GitHub repository settings under Settings → Secrets and variables → Actions:
APPLE_DEVELOPER_CERTIFICATE_P12_BASE64: Your Apple Developer certificate exported as .p12 and base64 encodedAPPLE_DEVELOPER_CERTIFICATE_PASSWORD: Password for your .p12 certificateAPPLE_ID_PASSWORD: App-specific password for your Apple ID (generate at appleid.apple.com)
Set these as either repository variables or secrets:
APPLE_ID: Your Apple ID email addressAPPLE_TEAM_ID: Your Apple Developer Team ID (10-character string likeABCDE12345)
- Export your Apple Developer certificate from Keychain Access as a .p12 file
- Convert to base64:
base64 YourCertificate.p12 | pbcopy - Paste the result into the
APPLE_DEVELOPER_CERTIFICATE_P12_BASE64secret
Run this command on macOS to find your Team ID:
security find-identity -v -p codesigningThe signed and notarized app will be available for download as a build artifact and included in GitHub releases.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Make your changes and add tests
- Ensure all tests pass (
make test) - Commit your changes (commits are validated with conventional format)
- Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
The project uses Lefthook for automated pre-commit and pre-push checks:
# Install git hooks
lefthook installThis ensures:
- Tests pass before commits
- Code is properly formatted
- Commit messages follow conventional format
RambleAI works with any AI model through OpenRouter, giving you complete flexibility:
- 🔑 Bring Your Own API Keys: No subscription lock-in, control your AI costs
- 🤖 Any LLM Model: Choose from GPT-4, Claude, Llama, or any OpenRouter-supported model
- ⚡ Smart Defaults: Optimized prompts work great out of the box
- 🎯 Customizable: Tweak AI behavior to match your content style
- OpenRouter (recommended - access to 100+ models)
- OpenAI (direct integration)
- Local LLMs (coming soon)
🔒 Your content stays private:
- All video processing happens locally on your machine
- No footage is uploaded to our servers
- AI features use your own API keys
- Complete control over your data
License pending - please check back soon for licensing information.
- Wails - Desktop application framework
- Ent - Entity framework for Go
- SvelteKit - Frontend framework
- shadcn-svelte - UI components
- Earthly - Build automation
For bugs and feature requests, please open an issue.
For questions and discussions, use GitHub Discussions.