Real-time AI assistant for interviews, meetings, and presentations powered by OpenAI's Realtime API.
- Real-time AI Assistance - Get instant help during interviews, meetings, and presentations
- Voice & Screen Analysis - Analyzes audio and screen content for contextual responses
- Multiple Profiles - Interview, Sales Call, Business Meeting, Presentation, Negotiation
- Document Upload - Upload resumes, notes, or reference materials for context
- Transparent Overlay - Always-on-top window that can be positioned anywhere
- Click-through Mode - Make window transparent to mouse clicks when needed
- Session History - Review past sessions and responses
- Analytics Dashboard - Track usage and session statistics
- Node.js 18+
- OpenAI API key with Realtime API access
- macOS, Windows, or Linux
# Clone the repository
git clone https://github.com/plutaslab-hq/darkmode-ai.git
cd darkmode-ai
# Install dependencies
npm install
# Start the app
npm start- Launch the app
- Enter your OpenAI API key
- Select a profile (Interview, Meeting, etc.)
- Click "Start Session"
- Position the window where you need it
| Shortcut | Action |
|---|---|
Ctrl/Cmd + Arrow Keys |
Move window |
Ctrl/Cmd + M |
Toggle click-through mode |
Ctrl/Cmd + \ |
Close window or go back |
Enter |
Send message to AI |
| Platform | Method |
|---|---|
| macOS | SystemAudioDump (included) |
| Windows | Loopback audio capture |
| Linux | Microphone input |
DarkMode AI can work standalone or with a backend for:
- User authentication
- Session sync across devices
- Document cloud storage
- Usage analytics
See darkmode-ai-server for backend setup.
# Package the app
npm run package
# Create distributable installers
npm run makeOutput will be in the out/ directory.
darkmode-ai/
├── src/
│ ├── index.js # Main process
│ ├── preload.js # Preload script
│ ├── index.html # Main window HTML
│ ├── storage.js # Local storage
│ ├── components/ # UI components
│ │ ├── app/ # App shell components
│ │ └── views/ # View components
│ ├── utils/ # Utilities
│ │ ├── openai.js # OpenAI integration
│ │ ├── apiClient.js # Backend API client
│ │ └── ...
│ └── assets/ # Static assets
├── forge.config.js # Electron Forge config
└── package.json
| Variable | Description | Default |
|---|---|---|
API_URL |
Backend API URL | https://darkmode-ai-server.onrender.com/api |
OPENAI_API_KEY |
OpenAI API key | - |
- Framework: Electron
- UI: Lit (Web Components)
- AI: OpenAI Realtime API
- Audio: WebRTC, SystemAudioDump (macOS)
- Backend: Express.js, PostgreSQL, Prisma
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
We welcome contributions! Please see our Contributing Guide for details.