AI Screen Assistant is a free, open-source invisible desktop overlay powered by 8 AI providers. It sits on top of any application — silently — and can read your screen, hear your voice, and answer anything in real time.
Whether you're solving coding problems, answering behavioral questions, reviewing documents, or studying MCQs — this tool has you covered.
┌──────────────────────────────────────────────────────────────┐
│ 📸 Take a screenshot → 🤖 AI analyzes it → 💡 Answer │
│ 🎤 Speak a question → 🔊 AI transcribes → 💡 Answer │
│ 💬 Type a message → 🧠 AI chat reply → 💡 Answer │
└──────────────────────────────────────────────────────────────┘
|
|
|
|
|
|
|
|
| Provider | SVG Logo Color | Vision | Speed | Free Tier | Models |
|---|---|---|---|---|---|
| Google Gemini ⭐ | Blue–Violet sparkle | ✅ | Fast | ✅ | Flash 2.0, Pro 1.5, 2.5 |
| Groq | Coral lightning bolt | ❌ | Ultra-fast | ✅ | Llama 3.3, Mixtral, Gemma |
| GitHub Models | GitHub cat | ✅ (GPT-4o) | Fast | ✅ | GPT-4o, Grok-3, DeepSeek |
| Mistral | Orange block grid | ✅ (Pixtral) | Medium | ❌ | Small, Large, Pixtral |
| OpenRouter | Indigo routing nodes | ❌ | Var. | ✅ | Custom model string |
| Cerebras | Cyan chip wafer | ❌ | Ultra-fast | ✅ | Llama 3.3, Llama 4 Scout |
| Cohere | Rose arc | ❌ | Medium | ❌ | Command R, R+ |
| Cloudflare Workers AI | Orange cloud | ✅ (Llama Vision) | Fast | ✅ | Llama 3.3, Gemma, DeepSeek |
💡 You only need ONE key to get started. The app auto-falls back to the next available provider when one hits a rate limit.
- Node.js v18+
- npm
# Clone the repo
git clone https://github.com/Misrilal-Sah/ai-interview-copilot.git
cd ai-interview-copilot
# Install dependencies
npm install
# Start (needs 2 terminals)
# Terminal 1 — compile the Electron main process
npx tsc -w -p tsconfig.electron.json
# Terminal 2 — start Vite + Electron (auto-launches the app)
npx viteThe app launches automatically via
vite-plugin-electron. Don't runelectronmanually.
- The Onboarding screen opens automatically
- Enter at least one free API key — each provider shows its branded SVG logo
- Choose your default mode (General / Coding)
- Review the Hotkey Cheat Sheet (shows your custom shortcuts live)
- Click "Start Using AI Screen Assistant"
All shortcuts are fully remappable in Settings → Shortcuts. Every UI element reads from the store and updates instantly.
| Shortcut | Action |
|---|---|
Ctrl+H |
📸 Take a screenshot |
Ctrl+Enter |
🤖 Analyze screenshots / Solve |
Ctrl+Shift+V |
🎤 Toggle voice input |
Ctrl+Shift+C |
💬 Toggle chat mode |
Ctrl+Shift+G |
🔄 Toggle General / Coding mode |
Ctrl+B |
👁️ Show / Hide overlay |
Ctrl+R |
🔄 Clear and start over |
Ctrl+L |
🗑️ Delete last screenshot |
Ctrl+[ / Ctrl+] |
🔅 Decrease / Increase opacity |
Ctrl+Q |
❌ Quit app |
ai-screen-assistant/
├── electron/
│ ├── main.ts # Window management, IPC routing
│ ├── ipcHandlers.ts # Screenshot, voice, chat, AI handlers
│ ├── ProcessingHelper.ts # Multi-provider orchestration (vision/text fallback)
│ ├── ScreenshotHelper.ts # Cross-platform screen capture
│ ├── storage.ts # Encrypted key store (electron-store + TypedAppStore)
│ ├── shortcuts.ts # Global hotkey registration + customShortcuts store
│ └── preload.ts # Secure renderer ↔ main bridge
├── src/
│ ├── App.tsx # Root: onboarding, click-through, opacity, provider mgr
│ ├── providers/
│ │ ├── registry.ts # Provider registry + vision detection
│ │ ├── types.ts # FullProviderAdapter, ProviderConfig interfaces
│ │ ├── useProviderManager.ts # React hook: order, models, reorderProviders
│ │ └── adapters/ # One file per provider (gemini, groq, mistral…)
│ ├── utils/
│ │ ├── providerMeta.ts # Per-model capability flags (vision/fast/reasoning)
│ │ └── platform.ts # COMMAND_KEY (⌘ / Ctrl)
│ ├── components/
│ │ ├── shared/
│ │ │ └── ProviderLogo.tsx # Inline SVG brand logos for all 8 providers
│ │ ├── Queue/
│ │ │ └── QueueCommands.tsx # Bottom bar — dynamic shortcuts from store
│ │ ├── Onboarding/ # 5-step setup wizard (SVG logos + hotkey cheat sheet)
│ │ ├── VoiceInput/ # MediaRecorder + Whisper transcription
│ │ ├── ChatInput/ # Multi-turn chat panel
│ │ ├── History/ # In-session answer history
│ │ └── Settings/ # API keys + shortcut remapping
│ └── _pages/
│ ├── SubscribedApp.tsx # Overlay shell: custom dropdowns + capability badges
│ ├── Queue.tsx # Screenshot queue view
│ └── Solutions.tsx # AI answer display
└── vite.config.ts # Vite + vite-plugin-electron
| Layer | Technology |
|---|---|
| Desktop Shell | Electron 36 |
| Frontend | React 18 + TypeScript |
| Build | Vite + vite-plugin-electron |
| Styling | Tailwind CSS + Radix UI |
| AI Routing | Custom multi-provider orchestrator |
| Voice | MediaRecorder + Groq Whisper API |
| Storage | electron-store (TypedAppStore wrapper) |
| Icons | Inline SVG brand logos (no dependencies) |
- ✅ API keys stored locally — encrypted on disk, never sent anywhere except the AI provider you chose
- ✅ Screenshots stay local — temporarily saved to
AppData/Roaming, deleted after processing - ✅ No telemetry, no analytics, no accounts
- ✅ Open source — read every line of code yourself
- ✅ TypedAppStore — typed wrapper around
electron-storefor safe, schema-validated key access
Contributions are welcome! Here's how to get started:
- Fork the repo
- Create your branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
- ✅ Free to use, modify, and distribute
- ✅ Modifications must stay open source under the same license
- ✅ Network use (SaaS) requires source disclosure
This tool is designed as a learning aid and productivity assistant:
- Use it to understand problems, not just copy answers
- Disclose AI assistance if asked during formal evaluations
- The goal is to accelerate your learning, not replace it
Made with ❤️ by Misrilal Sah
🐛 Report Bug · ✨ Request Feature · 👨💻 My GitHub
⭐ Star this repo if it helped you! It motivates further development.