OpenCluely is a free, open source Cluely (alternative), built for technical interviews like DSA, OAs, and CP. It offers an invisible overlay, real-time AI help, Smart Image Processing for question capture, and multi-language support : 100% customizable and private.
923
stars
134
commits
JavaScript
primary language
Jul 29, 2026
updated
The invisible AI interview copilot.
Real-time AI help on a stealth overlay that screen sharing cannot see. Ask by voice or screenshot, and get clear answers that stream in as you need them.
https://github.com/user-attachments/assets/896a7140-1e85-405d-bfbe-e05c9f3a816b
OpenCluely is a desktop app for technical interviews and practice. It places a small overlay on your screen that recording and conferencing tools do not capture. You can speak a question or take a screenshot, and the AI answers in real time. The answer streams into a floating window and an optional chat panel, with clean code blocks and syntax highlighting.
It is free and open source. Processing stays on your machine, and the only thing that leaves your device is the request you send to the AI provider.
Pre-built installers are published with every release. These links always point at the newest version.
| Platform | File | Notes |
|---|---|---|
| Windows | Setup .exe | NSIS installer. Adds a Start Menu shortcut. |
| Linux (Debian or Ubuntu) | .deb | Pulls system deps automatically (Python, ffmpeg, GTK). |
| Linux (universal) | .AppImage | No install. Run chmod +x then launch. |
macOS: there is no pre-built download. The app is unsigned and un-notarized, so macOS Gatekeeper blocks it as "damaged and can't be opened." Run OpenCluely from source instead — see Quick start. It is a one-line
./setup.shonce Node.js is installed.
Every build is produced automatically on GitHub Actions and ships with SHA-256 checksums. Each release also lists the full set of commits it includes.
The website at opencluely.techycsr.dev detects your operating system and offers the right installer directly.
If you would rather build from source, three steps are all it takes.
Clone the repository.
git clone https://github.com/TechyCSR/OpenCluely.git
cd OpenCluely
Run the setup script.
./setup.sh
The script installs Node dependencies, creates your .env from the example, sets up a local Whisper virtual environment, points the config at it, and launches the app.
Add your Gemini key.
On first launch the Settings window opens automatically. Get a free key from Google AI Studio and paste it in, or edit .env directly. Both work, and changes are picked up without a restart.
setup.sh..dmg. Because the app is unsigned, a downloaded build would be blocked by Gatekeeper as "damaged"; running from source avoids that entirely.npm commands are needed. The script handles everything../setup.sh --build # Build a distributable for your OS
./setup.sh --ci # Use npm ci instead of npm install
./setup.sh --no-run # Set up only, do not launch
./setup.sh --install-system-deps # Install sox for the microphone (optional)
./setup.sh --skip-whisper # Skip the local Whisper bootstrap
The setup script writes sensible defaults. The only required value is a Gemini API key.
# Required
GEMINI_API_KEY=your_gemini_api_key_here
# Optional speech provider. Pick one.
SPEECH_PROVIDER=whisper
# Azure option
AZURE_SPEECH_KEY=your_azure_speech_key
AZURE_SPEECH_REGION=your_region
# Local Whisper option
WHISPER_COMMAND=whisper
WHISPER_MODEL_DIR=.whisper-models
WHISPER_MODEL=small
WHISPER_LANGUAGE=auto
WHISPER_DEVICE=auto
WHISPER_PYTHON=
WHISPER_CAPTURE_MODE=vad
WHISPER_RESPONSE_TARGET=both
WHISPER_MANUAL_MAX_MS=90000
WHISPER_GPU_IDLE_MS=60000
Speech is optional. If no provider is configured, the microphone button hides itself across the app.
You can use local Whisper for offline transcription or Azure Speech for a cloud option.
For local Whisper, ./setup.sh handles the full setup. It creates .venv-whisper, installs openai-whisper, points .env at the virtual environment, creates .whisper-models, and runs a quick speech test. The app reads its own PCM WAV recordings directly; ffmpeg is only needed when transcribing other audio formats through the CLI fallback.
For Azure Speech, create a Speech resource in the Azure Portal, then add the key and region to .env with SPEECH_PROVIDER=azure.
| Action | Shortcut | Description |
|---|---|---|
| Screenshot capture | Cmd/Ctrl + Shift + S | Capture the screen and analyze it with Gemini |
| Toggle speech | Alt + R | Start or stop voice recognition, if configured |
| Toggle visibility | Cmd/Ctrl + Shift + V | Show or hide all windows |
| Toggle interaction | Cmd/Ctrl + Shift + I or Alt + A | Enable or disable click through |
| Open chat | Cmd/Ctrl + Shift + C | Open the interactive chat window |
| Settings | Cmd/Ctrl + , | Open the settings panel |
OpenCluely is under active development. The core is stable and improvements ship regularly.
cd OpenCluely) and that the script is executable (chmod +x setup.sh). On Windows, use Git Bash../setup.sh again.npm run dev, and make sure X11 or XWayland is available in headless setups.npm start during development..env. For Whisper, install openai-whisper, ffmpeg, and sox, then set SPEECH_PROVIDER=whisper.setContentProtection, which maps to NSWindowSharingNone on macOS and WDA_EXCLUDEFROMCAPTURE on Windows. Electron provides no equivalent on Linux (neither X11 nor Wayland), so on Linux the call is a silent no-op and the overlay will be visible to anyone you screen-share with. This is a platform limitation, not a bug — there is no window flag on Linux that excludes a window from framebuffer capture. If you need capture-invisibility, run OpenCluely on macOS or Windows. As a partial workaround on Linux, share a single application window instead of your entire screen, or place the overlay on a monitor you are not sharing.OpenCluely collects no data and sends no telemetry. Processing happens locally, and your session stays on your device. Requests to the AI provider are encrypted in transit.
The app is built for learning and practice. You are responsible for following the rules of any interview you take and the policies of the companies involved.
Released under the MIT License. See LICENSE for details.
Built by TechyCSR. If OpenCluely helped you, consider giving it a star ⭐
JavaScript
67.2%
HTML
26.1%
CSS
4.7%
Shell
1.2%
OpenCluely is a free, open source Cluely (alternative), built for technical interviews like DSA, OAs, and CP. It offers an invisible overlay, real-time AI help, Smart Image Processing for question capture, and multi-language support : 100% customizable and private.
923
stars
134
commits
JavaScript
primary language
Jul 29, 2026
updated
The invisible AI interview copilot.
Real-time AI help on a stealth overlay that screen sharing cannot see. Ask by voice or screenshot, and get clear answers that stream in as you need them.
https://github.com/user-attachments/assets/896a7140-1e85-405d-bfbe-e05c9f3a816b
OpenCluely is a desktop app for technical interviews and practice. It places a small overlay on your screen that recording and conferencing tools do not capture. You can speak a question or take a screenshot, and the AI answers in real time. The answer streams into a floating window and an optional chat panel, with clean code blocks and syntax highlighting.
It is free and open source. Processing stays on your machine, and the only thing that leaves your device is the request you send to the AI provider.
Pre-built installers are published with every release. These links always point at the newest version.
| Platform | File | Notes |
|---|---|---|
| Windows | Setup .exe | NSIS installer. Adds a Start Menu shortcut. |
| Linux (Debian or Ubuntu) | .deb | Pulls system deps automatically (Python, ffmpeg, GTK). |
| Linux (universal) | .AppImage | No install. Run chmod +x then launch. |
macOS: there is no pre-built download. The app is unsigned and un-notarized, so macOS Gatekeeper blocks it as "damaged and can't be opened." Run OpenCluely from source instead — see Quick start. It is a one-line
./setup.shonce Node.js is installed.
Every build is produced automatically on GitHub Actions and ships with SHA-256 checksums. Each release also lists the full set of commits it includes.
The website at opencluely.techycsr.dev detects your operating system and offers the right installer directly.
If you would rather build from source, three steps are all it takes.
Clone the repository.
git clone https://github.com/TechyCSR/OpenCluely.git
cd OpenCluely
Run the setup script.
./setup.sh
The script installs Node dependencies, creates your .env from the example, sets up a local Whisper virtual environment, points the config at it, and launches the app.
Add your Gemini key.
On first launch the Settings window opens automatically. Get a free key from Google AI Studio and paste it in, or edit .env directly. Both work, and changes are picked up without a restart.
setup.sh..dmg. Because the app is unsigned, a downloaded build would be blocked by Gatekeeper as "damaged"; running from source avoids that entirely.npm commands are needed. The script handles everything../setup.sh --build # Build a distributable for your OS
./setup.sh --ci # Use npm ci instead of npm install
./setup.sh --no-run # Set up only, do not launch
./setup.sh --install-system-deps # Install sox for the microphone (optional)
./setup.sh --skip-whisper # Skip the local Whisper bootstrap
The setup script writes sensible defaults. The only required value is a Gemini API key.
# Required
GEMINI_API_KEY=your_gemini_api_key_here
# Optional speech provider. Pick one.
SPEECH_PROVIDER=whisper
# Azure option
AZURE_SPEECH_KEY=your_azure_speech_key
AZURE_SPEECH_REGION=your_region
# Local Whisper option
WHISPER_COMMAND=whisper
WHISPER_MODEL_DIR=.whisper-models
WHISPER_MODEL=small
WHISPER_LANGUAGE=auto
WHISPER_DEVICE=auto
WHISPER_PYTHON=
WHISPER_CAPTURE_MODE=vad
WHISPER_RESPONSE_TARGET=both
WHISPER_MANUAL_MAX_MS=90000
WHISPER_GPU_IDLE_MS=60000
Speech is optional. If no provider is configured, the microphone button hides itself across the app.
You can use local Whisper for offline transcription or Azure Speech for a cloud option.
For local Whisper, ./setup.sh handles the full setup. It creates .venv-whisper, installs openai-whisper, points .env at the virtual environment, creates .whisper-models, and runs a quick speech test. The app reads its own PCM WAV recordings directly; ffmpeg is only needed when transcribing other audio formats through the CLI fallback.
For Azure Speech, create a Speech resource in the Azure Portal, then add the key and region to .env with SPEECH_PROVIDER=azure.
| Action | Shortcut | Description |
|---|---|---|
| Screenshot capture | Cmd/Ctrl + Shift + S | Capture the screen and analyze it with Gemini |
| Toggle speech | Alt + R | Start or stop voice recognition, if configured |
| Toggle visibility | Cmd/Ctrl + Shift + V | Show or hide all windows |
| Toggle interaction | Cmd/Ctrl + Shift + I or Alt + A | Enable or disable click through |
| Open chat | Cmd/Ctrl + Shift + C | Open the interactive chat window |
| Settings | Cmd/Ctrl + , | Open the settings panel |
OpenCluely is under active development. The core is stable and improvements ship regularly.
cd OpenCluely) and that the script is executable (chmod +x setup.sh). On Windows, use Git Bash../setup.sh again.npm run dev, and make sure X11 or XWayland is available in headless setups.npm start during development..env. For Whisper, install openai-whisper, ffmpeg, and sox, then set SPEECH_PROVIDER=whisper.setContentProtection, which maps to NSWindowSharingNone on macOS and WDA_EXCLUDEFROMCAPTURE on Windows. Electron provides no equivalent on Linux (neither X11 nor Wayland), so on Linux the call is a silent no-op and the overlay will be visible to anyone you screen-share with. This is a platform limitation, not a bug — there is no window flag on Linux that excludes a window from framebuffer capture. If you need capture-invisibility, run OpenCluely on macOS or Windows. As a partial workaround on Linux, share a single application window instead of your entire screen, or place the overlay on a monitor you are not sharing.OpenCluely collects no data and sends no telemetry. Processing happens locally, and your session stays on your device. Requests to the AI provider are encrypted in transit.
The app is built for learning and practice. You are responsible for following the rules of any interview you take and the policies of the companies involved.
Released under the MIT License. See LICENSE for details.
Built by TechyCSR. If OpenCluely helped you, consider giving it a star ⭐
JavaScript
67.2%
HTML
26.1%
CSS
4.7%
Shell
1.2%