Open-source AI sales platform | Desktop CRM | AI Voice Caller | Sales Automation | Built with Tauri + React + Rust + Gemini
OpenCloser is an open-source, AI-powered sales development platform that runs entirely on your desktop. It gives you an autonomous AI sales team: a strategist to build your ICP, a researcher to hunt leads, a voice caller to dial prospects, a coach to train your rebuttals, and a manager to analyze every call — all running locally. No SaaS fees. No cloud dependency. No data ever leaves your machine.
| Traditional Sales Team | OpenCloser | |
|---|---|---|
| Strategy | Hire a consultant ($5K+/mo) | AI Strategist generates ICP using SPIN & Challenger in minutes |
| Research | SDR manually Googles leads (hours) | AI Researcher hunts, scores & qualifies leads automatically |
| Cold Calling | SDR dials 50 calls/day, burns out | AI Caller dials with perfect pitch, never tired |
| Coaching | Manager reviews recordings (hours) | AI Coach gives instant post-call analysis |
| Training | Roleplay sessions (awkward, infrequent) | AI Sparring Partner available 24/7, adjustable difficulty |
| Analytics | Spreadsheets and gut feelings | Real-time dashboards, sentiment analysis, pipeline tracking |
| Cost | $15K–50K+/mo in salaries | Free. Open source. |
- Solo founders who need to sell but can't afford a sales team
- Early-stage startups that want enterprise-level sales ops from day one
- Sales teams looking to augment human reps with AI intelligence
- Developers who want to build on top of an open sales AI framework
Generates your Ideal Customer Profile (ICP) using SPIN & Challenger frameworks. Asks the right questions during onboarding to deeply understand your market. Builds targeted outreach strategies automatically.
Autonomous lead hunting with scoring and qualification. Full local-first CRM with Kanban pipeline management. Industry-aware demo mode with 5 keyword categories when no API key is configured.
Real-time AI voice agent powered by Google Gemini (also supports OpenAI Realtime and ElevenLabs ConvAI). Virtual audio bridge for phone integration. Live transcription, sentiment analysis, and objection detection. Power dialing mode for high-volume outreach.
Objection sparring trainer with 3 difficulty levels (Rookie, Pro, Elite). Practice handling 12 objection archetypes against an AI prospect. Real-time encouragement and post-session scoring with specific improvement tips.
Post-call AI debrief with sentiment analysis and key insights. Auto-generated follow-up emails. Call analytics dashboard with conversion metrics. Pipeline intelligence with live Kanban board.
- Node.js (v20+)
- Rust (latest stable)
- Tauri prerequisites (system dependencies per platform)
git clone https://github.com/issacops/opencloser-v2.git
cd opencloser-v2
npm install
npm run tauri devOpenCloser works fully in demo mode with no API key — 10 realistic seed leads, simulated AI calls, and all features functioning with fallback data. Perfect for evaluation.
Add any of these in Settings → Voice Engine:
| Provider | Key |
|---|---|
| Google Gemini | GEMINI_API_KEY for onboarding, lead hunting, call analysis |
| OpenAI Realtime | openai_api_key for voice calling through the built-in relay |
| ElevenLabs ConvAI | elevenlabs_api_key + Agent ID for the most human-like voice |
opencloser/
├── src/ # React 19 frontend (TypeScript strict mode)
│ ├── features/
│ │ ├── crm/ # Kanban pipeline, Dashboard, Settings, Persona
│ │ ├── voice/ # War Room, Post-Call Debrief, Objection Trainer
│ │ ├── hunter/ # Lead hunting engine
│ │ └── onboarding/ # AI onboarding + ICP generation
│ ├── stores/ # 6 Zustand stores (lead, call, persona, etc.)
│ ├── services/ # Typed Tauri invoke wrappers
│ ├── test/ # 35 Vitest tests across 3 suites
│ └── components/ # AppShell, shared UI
├── src-tauri/ # Rust backend
│ └── src/
│ ├── ai/gemini.rs # Gemini API + industry-aware demo mocks
│ ├── db/ # SQLite schema + 10 seed leads + migrations
│ ├── relay/ # WebSocket proxy for OpenAI/ElevenLabs
│ └── lib.rs # 15 Tauri commands registered
└── public/
└── audio-processor.worklet.js # Zero-latency PCM capture
| Layer | Technology |
|---|---|
| Frontend | React 19, TypeScript strict, Tailwind CSS 3, Vite 6, Zustand 5 |
| Desktop Runtime | Tauri 2.10 |
| Backend | Rust (rusqlite, reqwest, tokio, tokio-tungstenite) |
| Database | SQLite — local-first, zero cloud dependency |
| AI | Google Gemini 2.5 Flash, OpenAI Realtime, ElevenLabs ConvAI |
| Voice | Web Audio API + AudioWorklet (zero-latency PCM capture) |
| Tests | Vitest + React Testing Library (35 tests, 3 suites) |
| CI/CD | GitHub Actions — lint, test, build, multi-platform release |
| Platform | Architecture | Download |
|---|---|---|
| macOS | Apple Silicon (ARM64) | .dmg |
| macOS | Intel (x64) | .dmg |
| Windows | x86_64 | .msi / .exe |
| Linux | x86_64 | .deb / .AppImage / .rpm |
All packages available on the Releases page.
| Metric | |
|---|---|
| TypeScript | Strict mode, 0 errors |
| Tests | 35 passing across 3 suites |
| Codebase | 9,400 lines (TS: 7,572 + Rust: 1,185 + CSS: 637) |
| Bundle | 312KB main + 5 lazy-loaded chunks |
| Demo mode | No API key required — full fallback data |
- All data stays local — SQLite database on your machine, never synced to any server
- API keys stored in your browser's localStorage — never transmitted except to the AI provider you choose
- Open source — every line auditable. MIT license.
- Offline capable — demo mode works with zero internet connectivity
For AI-to-phone calling, OpenCloser uses a virtual audio cable:
The built-in Audio Setup Wizard guides you through configuration, or skip entirely for VoIP-only mode.
We welcome contributions! See AGENTS.md for the full developer guide.
# Setup
npm install
# TypeScript check (strict mode)
npm run lint
# Run tests
npm test
# Run desktop app
npm run tauri dev- Fork the repository
- Create a feature branch (
git checkout -b feat/amazing-feature) - Commit your changes with clear messages
- Ensure
npm run lintandnpm testpass - Open a Pull Request
MIT License — see LICENSE for details.
- Tauri — Making native desktop apps accessible to web developers
- Google Gemini — The AI backbone
- OpenAI — Realtime voice API
- ElevenLabs — Most human-sounding voice synthesis
- Lucide Icons — Beautiful icon set
Built with ❤️ for sales teams who want an unfair advantage.
⭐ Star This Repo · 🐛 Report Bug · 💡 Request Feature · 📖 Developer Guide
Keywords: ai-sales sales-automation crm-software ai-voice-caller desktop-app tauri open-source-crm lead-generation cold-calling-software sales-coach gemini-ai react typescript rust sentiment-analysis sales-pipeline