Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ibttf/interview-coder
An open-source invisible desktop application to help you pass your technical interviews.
https://github.com/ibttf/interview-coder
electron gpt openai typescript
Last synced: 1 day ago
JSON representation
An open-source invisible desktop application to help you pass your technical interviews.
- Host: GitHub
- URL: https://github.com/ibttf/interview-coder
- Owner: ibttf
- Created: 2024-11-17T21:31:17.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-01-01T00:50:48.000Z (9 days ago)
- Last Synced: 2025-01-01T18:08:42.108Z (8 days ago)
- Topics: electron, gpt, openai, typescript
- Language: TypeScript
- Homepage:
- Size: 2.69 MB
- Stars: 760
- Watchers: 8
- Forks: 104
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-ChatGPT-repositories - interview-coder - An open-source invisible desktop application to help you pass your technical interviews. (Openai)
README
# Interview Coder
An invisible desktop application that will help you pass your technical interviews.
https://github.com/user-attachments/assets/caf1e6cd-27d5-4033-b8c5-9df1cb52b21d
## Invisibility Compatibility
The application is invisible to:
- Zoom versions below 6.1.6 (inclusive)
- All browser-based screen recording software
- All versions of Discord
- Mac OS _screenshot_ functionality (Command + Shift + 3/4/5)Note: The application is **NOT** invisible to:
- Zoom versions 6.1.6 and above
- https://zoom.en.uptodown.com/mac/versions (link to downgrade Zoom if needed)
- Mac OS native screen _recording_ (Command + Shift + 5)## Features
- 🎯 99% Invisibility: Undetectable window that bypasses most screen capture methods
- 📸 Smart Screenshot Capture: Capture both question text and code separately for better analysis
- 🤖 AI-Powered Analysis: Automatically extracts and analyzes coding problems
- 💡 Solution Generation: Get detailed explanations and solutions
- 🔧 Real-time Debugging: Debug your code with AI assistance
- 🎨 Window Management: Freely move and position the window anywhere on screen## Global Commands
The application uses unidentifiable global keyboard shortcuts that won't be detected by browsers or other applications:
- Toggle Window Visibility: [Control or Cmd + b]
- Move Window: [Control or Cmd + arrows]
- Take Screenshot: [Control or Cmd + H]
- Process Screenshots: [Control or Cmd + Enter]
- Reset View: [Control or Cmd + R]
- Quit: [Control or Cmd + Q]## Usage
1. **Initial Setup**
- Launch the invisible window
- Authenticate with OpenAI API key2. **Capturing Problem**
- Use global shortcut [Control or Cmd + H] to take screenshots
- Screenshots are automatically added to the queue of up to 5.3. **Processing**
- AI analyzes the screenshots to extract:
- Problem requirements
- Code context
- System generates optimal solution strategy4. **Solution & Debugging**
- View generated solutions
- Use debugging feature to:
- Test different approaches
- Fix errors in your code
- Get line-by-line explanations
- Toggle between solutions and queue views5. **Window Management**
- Move window freely using global shortcut
- Toggle visibility as needed
- Window remains invisible to specified applications
- Reset view using Command + R## Prerequisites
- Node.js (v16 or higher)
- npm or bun package manager
- OpenAI API key (for AI features)
- Screen Recording Permission for Terminal/IDE
- On macOS:
1. Go to System Preferences > Security & Privacy > Privacy > Screen Recording
2. Ensure your Terminal app (or IDE) has screen recording permission enabled
3. Restart your Terminal/IDE after enabling permissions
- On Windows:
- No additional permissions needed
- On Linux:
- May require `xhost` access depending on your distribution## Installation
1. Clone the repository:
```bash
git clone https://github.com/ibttf/interview-coder.git
cd interview-coder
```2. Install dependencies:
```bash
npm install
# or if using bun
bun install
```## Running Locally
1. Start the development server:
```bash
npm run app:dev
# or
bun run app:dev
```This will:
- Start the Vite development server
- Launch the Electron application
- Enable hot-reloading for development## Tech Stack
- Electron
- React
- TypeScript
- Vite
- Tailwind CSS
- Radix UI Components
- OpenAI API## Configuration
1. On first launch, you'll need to provide your OpenAI API key
2. The application will store your settings locally using electron-store## Building (for Roy)
notarizing script is wack asf, we have an auto code signing in the package.json, but we need to manually notarize
```
xcrun notarytool store-credentials "my-apple-creds" \
--apple-id "[email protected]" \
--team-id "YOUR_TEAM_ID" \
--password "XXXX-XXXX-XXXX-XXXX"
```run that ^ and then cd into release and run
```
#intel
arch -arm64 xcrun notarytool submit "/Users/roylee0912/Development/interview-coder/release/Interview Coder-1.0.0.dmg" \
--keychain-profile "my-apple-creds" \
--wait#silicon
arch -arm64 xcrun notarytool submit "/Users/roylee0912/Development/interview-coder/release/Interview Coder-1.0.0-arm64.dmg" \
--keychain-profile "my-apple-creds" \
--waitxcrun stapler staple "Interview Coder-1.0.0.dmg"
xcrun stapler staple "Interview Coder-1.0.0-arm64.dmg"
#validating
xcrun stapler validate "/Users/roylee0912/Development/interview-coder/release/Interview Coder-1.0.0.dmg"
xcrun stapler validate "/Users/roylee0912/Development/interview-coder/release/Interview Coder-1.0.0-arm64.dmg"
```
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
ISC License