Your personal AI, always ready.
VENOM-AI is a cross-platform desktop AI assistant built with Electron, React, and a Node.js backend. It integrates voice control (wake-word detection via Picovoice + STT via Vosk/Whisper), multi-provider AI inference (Claude, GPT-4o, Ollama), file system intelligence, system app control, and a full production deployment pipeline — all in a single installable application. Say "Kalki" to activate, issue a voice or text command, and let VENOM handle the rest.
| Dashboard | Chat | Settings |
|---|---|---|
![]() |
![]() |
![]() |
Run
npm run devand take screenshots to populate these placeholders.
# 1. Clone the repository
git clone https://github.com/your-github-username/VENOM-AI.git
cd VENOM-AI
# 2. Install dependencies (rebuilds native modules automatically)
npm install
# 3. Configure environment
cp .env.example .env
# Edit .env — fill in ANTHROPIC_API_KEY or OPENAI_API_KEY at minimum
# 4. Set up the database
npx prisma migrate dev --name init
# 5. Launch the app
npm run devThe app window opens automatically. Complete the 5-step onboarding on first launch.
| Feature | Description |
|---|---|
| 🗣️ Wake Word | Say "Kalki" (or any custom word) to activate hands-free |
| 🎙️ Voice STT | Local Vosk or OpenAI Whisper speech-to-text |
| 🤖 AI Chat | Claude, GPT-4o, or local Ollama — streaming, with history |
| 🔍 Web Search | Brave Search API integration — privacy-first |
| 📁 File Search | Indexes home directory, search by name/type/date/size |
| 🖥️ App Control | "Open Chrome" → launches instantly via OS shell |
| 🤖 Automation | Type text, click, take screenshots via keyboard/mouse |
| 🎵 Music Control | Detects Spotify/YouTube Music and opens them |
| 🧠 Ollama Support | Run models fully locally, manage via built-in UI |
| ✨ Fine-tuning UI | Upload JSONL, start OpenAI fine-tune jobs, track progress |
| 📊 Context-Aware AI | AI sees your active apps, time, last tasks for smart replies |
| 🎨 Dark / Light Mode | Full glassmorphism theme with light mode support |
| 🔐 Google OAuth | Sign in with Google, JWT sessions, Redis-backed |
| 🐳 Docker Ready | Docker + docker-compose for one-command backend deployment |
| 🚀 Auto-Updates | GitHub Releases powered auto-update via electron-updater |
| 🛡️ Privacy First | Opt-in Sentry, local analytics only, no telemetry by default |
| 📤 Export Chats | Export conversations as Markdown or PDF |
| ⌨️ Global Shortcut | Ctrl+Space (Win/Linux) / Cmd+Space (Mac) to toggle window |
| Layer | Technology |
|---|---|
| Desktop shell | Electron 31 |
| Frontend | React 18, Vite, Tailwind CSS, Framer Motion |
| Backend | Express 4, Node.js 20, TypeScript 5.5 |
| Database | PostgreSQL 16 via Prisma ORM |
| Cache/Session | Redis 7 |
| AI — Cloud | Anthropic Claude, OpenAI GPT-4o |
| AI — Local | Ollama (any model) |
| STT | Vosk (offline) + OpenAI Whisper (cloud) |
| TTS | ElevenLabs, Azure Cognitive, system say |
| Wake Word | Picovoice Porcupine + pvrecorder-node |
| File Search | SQLite via sql.js, worker threads |
| Packaging | electron-builder (NSIS / DMG / AppImage) |
| CI/CD | GitHub Actions |
| Monitoring | Sentry (opt-in), local analytics |
| Document | Audience |
|---|---|
| User Guide | End users — installation, voice commands, settings |
| API Reference | Developers — all HTTP endpoints with schemas |
| Contributing | Contributors — setup, standards, PR process |
| Phase Docs | Developers — architecture decisions per phase |
VENOM-AI/
├── electron/ # Electron main process
│ ├── main.ts # App lifecycle, IPC handlers, global shortcut
│ ├── preload.ts # Context bridge — exposes safe IPC to renderer
│ ├── store.ts # electron-store config
│ ├── updater.ts # Auto-update logic
│ ├── analytics.ts # Local privacy-first analytics
│ ├── sentry.ts # Optional crash reporting
│ ├── automation/ # App launching, task runner, RobotJS
│ ├── context/ # OS context builder (active apps, time)
│ ├── fs/ # File indexer, searcher, reader, permissions
│ └── voice/ # Wake word, STT recorder, voice manager
├── server/ # Express.js backend
│ ├── index.ts # Server entry point, middleware, routes
│ └── routes/ # auth, chat, stt, tts, files, ollama, intent…
├── src/ # React renderer
│ ├── pages/ # Dashboard, Chat, Settings, FileExplorer…
│ ├── components/ # Reusable UI components
│ ├── context/ # Auth, Voice, Automation, FileSystem, Theme
│ └── lib/ # exportConversation, utilities
├── prisma/ # Database schema and migrations
├── docs/ # This documentation
├── .github/workflows/ # GitHub Actions CI/CD
├── Dockerfile # Production Docker image
└── docker-compose.yml # Local orchestration
| Key | Required | Get It |
|---|---|---|
ANTHROPIC_API_KEY |
One of the two | console.anthropic.com |
OPENAI_API_KEY |
One of the two | platform.openai.com |
PICOVOICE_ACCESS_KEY |
For wake word | console.picovoice.ai |
GOOGLE_CLIENT_ID/SECRET |
For login | console.cloud.google.com |
ELEVENLABS_API_KEY |
Optional (TTS) | elevenlabs.io |
BRAVE_SEARCH_API_KEY |
Optional (web search) | brave.com/search/api |
SENTRY_DSN |
Optional (crash reports) | sentry.io |
MIT © 2026 VENOM-AI. See LICENSE.


