Electron desktop application with React + TypeScript for real-time interview assistance.
- Transparent Overlay: Always-on-top window with adjustable transparency
- System Audio Capture: Captures interviewer's voice from system audio
- Screen Capture: Take screenshots of coding problems
- Real-time Transcription: Live display of transcribed questions
- AI Response Display: Streaming AI answers with syntax highlighting
- Global Shortcuts: Control the app without switching focus
- Electron: Desktop app framework
- React: UI library
- TypeScript: Type-safe development
- Vite: Fast build tool
- Zustand: State management
- Socket.IO: WebSocket client
# Development
npm run dev # Run in dev mode
# Building
npm run build # Build the app
npm run build:electron # Build distributable
# Code quality
npm run lint # Run ESLint
npm run format # Format code with Prettierfrontend/
├── electron/ # Electron main process
│ ├── main.ts # Main entry point
│ └── preload.ts # Preload script
├── src/
│ ├── components/ # React components
│ ├── services/ # Business logic
│ ├── hooks/ # Custom React hooks
│ ├── store/ # Zustand state management
│ ├── App.tsx # Main App component
│ └── main.tsx # React entry point
├── index.html # HTML template
└── package.json # Dependencies
- Ctrl+Shift+L - Toggle listening
- Ctrl+Shift+S - Capture screen
- Ctrl+Shift+H - Hide/Show window
The app runs in development mode with hot-reload:
- Vite dev server on port 5173
- Electron loads from localhost
- Changes reflect immediately
The app uses getDisplayMedia API to capture system audio. When starting audio capture:
- Select the tab/window/screen to share
- IMPORTANT: Check "Share system audio" checkbox
- Grant permissions
To create a distributable:
npm run build
npm run build:electronOutput in release/ folder.