├── .env ├── .gitignore ├── README.md ├── dist ├── index.html ├── main.js ├── preload.js └── renderer.js ├── docs ├── ADDITIONAL_DOCS.md ├── DEVELOPMENT_GUIDE.md └── USER_GUIDE.md ├── package-lock.json ├── package.json ├── src ├── index.html ├── main.ts ├── preload.ts └── renderer.ts └── tsconfig.json /.env: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY= 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Open Interview Coder - Improved Version 2 | 3 | ### For Windows, please use https://github.com/phulelouch/open-interview-coder/tree/window-version 4 | 5 | 6 | 7 | https://github.com/user-attachments/assets/23365245-2f4b-4f9a-af44-5358402b0546 8 | 9 | 10 | 11 | 12 | 13 | ## Table of Contents 14 | 1. [Introduction](#introduction) 15 | 2. [Installation](#installation) 16 | 3. [Getting Started](#getting-started) 17 | 4. [Features](#features) 18 | 5. [User Interface](#user-interface) 19 | 6. [Keyboard Shortcuts](#keyboard-shortcuts) 20 | 7. [Taking Screenshots](#taking-screenshots) 21 | 8. [Analyzing Code Problems](#analyzing-code-problems) 22 | 9. [Window Management](#window-management) 23 | 10. [Troubleshooting](#troubleshooting) 24 | 25 | ### Introduction: 26 | You know about the Interview Coder guy who made invisible AI window? 🫠🫠🫠 I don't like the fact that he taking advantage of poor job market and rip off poor students 😐😐. I rather make a fair game for everyone. I reverse engineering it and his whole thing was based on one functionality: `setContentProtection` from electron https://www.electronjs.org/docs/latest/api/browser-window 27 | This project is an improved version of the Open Interview Coder, an invisible desktop application that helps with technical interviews. It provides features like screenshot capture, AI-powered analysis, and solution generation without requiring login or authentication. 28 | 29 | Open Interview Coder is an opensource invisible desktop application designed to help you succeed in technical coding interviews. It provides a discreet way to capture, analyze, and solve coding problems during interviews without being detected by most screen sharing and recording software. 30 | 31 | The application works by creating an invisible window that can be toggled on and off with keyboard shortcuts. When visible, you can take screenshots of coding problems, get AI-powered analysis and solutions, and manage the application window. 32 | 33 | ## Installation 34 | 35 | ### Prerequisites 36 | - Node.js (v18.19.0 or higher) 37 | - OpenAI API Key 38 | 39 | ### Installation Steps 40 | 41 | 1. Download the latest release from the GitHub repository or clone the repository: 42 | ```bash 43 | git clone https://github.com/yourusername/open-interview-coder.git 44 | cd open-interview-coder 45 | ``` 46 | 47 | 2. Install dependencies: 48 | ```bash 49 | npm install 50 | ``` 51 | 52 | 3. Build the application: 53 | ```bash 54 | npm run build 55 | ``` 56 | 57 | 4. Start the application: 58 | ```bash 59 | npm start 60 | ``` 61 | 5. Apply your OpenAI API key in settings 62 | 63 | ## Getting Started 64 | 65 | 1. After starting the application, the window will be invisible by default. 66 | 2. Press `Ctrl+Shift+A` (or `Cmd+Shift+A` on macOS) to toggle the window visibility. 67 | 3. When the window appears, you'll see the main interface with tabs for Prompt, Screenshots, and Shortcuts. 68 | 4. You can now use the application to take screenshots, analyze coding problems, and get solutions. 69 | 70 | ## Features 71 | 72 | ## Features 73 | 74 | - 🎯 Invisibility: Undetectable window that bypasses most screen capture methods 75 | - 📸 Screenshot Capture: Capture screenshots of coding problems with a simple keyboard shortcut. 76 | - 🤖 AI-Powered Analysis: Automatically analyzes coding problems 77 | - 💡 Solution Generation: Get detailed explanations and solutions 78 | - 🔧 Real-time Debugging: Debug your code with AI assistance (GPT for now) 79 | - 🎨 Window Management: Freely move and position the window anywhere on screen 80 | 81 | 82 | ## Keyboard Shortcuts 83 | 84 | | Shortcut | Action | 85 | |----------|--------| 86 | | Ctrl/Cmd+Shift+A | Toggle window visibility | 87 | | Ctrl/Cmd+Shift+S | Take screenshot | 88 | | Ctrl/Cmd+Shift+P | Process screenshots | 89 | | Ctrl/Cmd+Shift+↑ | Move window up | 90 | | Ctrl/Cmd+Shift+↓ | Move window down | 91 | | Ctrl/Cmd+Shift+← | Move window left | 92 | | Ctrl/Cmd+Shift+→ | Move window right | 93 | 94 | ## Taking Screenshots 95 | 96 | There are two ways to take screenshots: 97 | 98 | 1. **Using keyboard shortcut**: 99 | - Press `Ctrl+Shift+S` (or `Cmd+Shift+S` on macOS) to capture a screenshot 100 | - The screenshot will be automatically added to the queue 101 | 102 | 2. **Using the UI**: 103 | - Navigate to the Screenshots tab 104 | - Click the "Take Screenshot" button 105 | - The screenshot will be added to the list below 106 | 107 | The application stores up to 5 recent screenshots. When you exceed this limit, the oldest screenshot will be automatically removed. 108 | 109 | ## Analyzing Code Problems 110 | 111 | To analyze coding problems from your screenshots: 112 | 113 | 1. Take one or more screenshots of the problem 114 | 2. Process the screenshots using one of these methods: 115 | - Press `Ctrl+Shift+P` (or `Cmd+Shift+P` on macOS) 116 | - Click the "Process Screenshots" button in the Screenshots tab 117 | 118 | 3. The AI will analyze the screenshots and generate a solution 119 | 4. The solution will be displayed in the Prompt tab, including: 120 | - Problem explanation 121 | - Solution approach 122 | - Code implementation 123 | - Explanation of the code 124 | 125 | You can also enter custom prompts in the Prompt tab for specific questions about the problem. 126 | 127 | ## Window Management 128 | 129 | ### Moving the Window 130 | You can move the window using keyboard shortcuts: 131 | - `Ctrl+Shift+↑` (or `Cmd+Shift+↑` on macOS): Move window up 132 | - `Ctrl+Shift+↓` (or `Cmd+Shift+↓` on macOS): Move window down 133 | - `Ctrl+Shift+←` (or `Cmd+Shift+←` on macOS): Move window left 134 | - `Ctrl+Shift+→` (or `Cmd+Shift+→` on macOS): Move window right 135 | 136 | ### Hiding the Window 137 | To hide the window: 138 | - Press `Ctrl+Shift+A` (or `Cmd+Shift+A` on macOS) 139 | - Click the minimize button in the top-right corner 140 | 141 | ### Showing the Window 142 | To show the window after it's been hidden: 143 | - Press `Ctrl+Shift+A` (or `Cmd+Shift+A` on macOS) 144 | 145 | ## Troubleshooting 146 | 147 | ### Application Not Starting 148 | - Ensure Node.js is installed and is version 18.19.0 149 | - Check that all dependencies are installed with `npm install` 150 | 151 | ### Screenshots Not Working 152 | - Ensure the application has screen recording permissions 153 | - On macOS: System Preferences > Security & Privacy > Privacy > Screen Recording 154 | - On Windows: No special permissions needed 155 | - On Linux: May require `xhost` access depending on your distribution 156 | 157 | ### OpenAI API Errors 158 | - Check your internet connection 159 | - Ensure your OpenAI account has available credits 160 | 161 | ### Window Not Invisible in Screen Sharing 162 | - Some newer versions of screen sharing software may detect the window 163 | - Try positioning the window in a less noticeable area of the screen 164 | - Use the keyboard shortcuts to hide the window when not in use 165 | 166 | -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 |