OpenCluely README

The project's README from github.com/TechyCSR/OpenCluely. As one markdown file: README.md.

OpenCluely

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.

Latest release Downloads MIT License Platforms

Website  |  Download  |  Quick start  |  How it works

Demo

https://github.com/user-attachments/assets/896a7140-1e85-405d-bfbe-e05c9f3a816b

What it is

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.

Highlights

Download

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.sh once 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.

Quick start

If you would rather build from source, three steps are all it takes.

  1. Clone the repository.

    git clone https://github.com/TechyCSR/OpenCluely.git
    cd OpenCluely
    
  2. 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.

  3. 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.

Platform notes

Setup script options

./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

Configuration

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.

Optional voice setup

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.

How it works

  1. Ask. Use automatic pause detection, choose manual start/stop capture in Settings, or use the screenshot shortcut.
  2. Reason. Gemini reads the audio or image with full conversation context and works toward a precise answer.
  3. Answer. Voice responses stream to chat, the overlay, or both, according to Settings.

Keyboard shortcuts

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

Project status

OpenCluely is under active development. The core is stable and improvements ship regularly.

Done

Planned

Troubleshooting

Setup issues
  • setup.sh will not run. Make sure you are in the project folder (cd OpenCluely) and that the script is executable (chmod +x setup.sh). On Windows, use Git Bash.
  • Setup stops with exit code 130. That means Ctrl+C was pressed. Run ./setup.sh again.
  • Node or npm not found. Install Node.js 18 or newer from nodejs.org, restart the terminal, and retry.
App issues
  • Electron will not start or shows a blank window on Linux. Try npm run dev, and make sure X11 or XWayland is available in headless setups.
  • macOS screen capture does not work. Grant Screen Recording permission under System Settings, Privacy and Security, then relaunch the app.
  • Windows SmartScreen blocks the app. Click More info, then Run anyway, or use npm start during development.
  • Microphone or voice not working. Voice is optional. For Azure, add valid keys to .env. For Whisper, install openai-whisper, ffmpeg, and sox, then set SPEECH_PROVIDER=whisper.
Limitations
  • Screen-capture invisibility does not work on Linux. The overlay stays hidden from screen shares and recordings only on macOS and Windows. This relies on Electron's 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.

Privacy and ethics

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.

License

Released under the MIT License. See LICENSE for details.

Acknowledgments

Built by TechyCSR. If OpenCluely helped you, consider giving it a star ⭐

OpenCluely (TechyCSR/OpenCluely)

Searching Database…

What is this?OpenCluely is a free, open-source desktop app for technical interviews and practice, such as DSA, online assessments, and competitive programming. It shows real-time AI answers in an overlay that screen sharing cannot see.
Is it a desktop app or a browser extension?It is a desktop app built on Electron, with pre-built installers for Windows and Linux. macOS has no pre-built download and has to run from source.
How do I get it running?Download the Windows Setup .exe or a Linux .deb or .AppImage from the releases page. Or clone the repo, run ./setup.sh, and paste a free Gemini API key into Settings when the app opens.
What do I need before starting?A Gemini API key is the only required value. Building from source needs Node.js 18 or newer. Voice is optional and can use local Whisper or Azure Speech.
Does the overlay stay hidden on Linux too?No. Hiding the overlay from screen capture works only on macOS and Windows. On Linux, anyone you screen-share with will see the overlay.
What leaves my computer?Processing stays on your machine. The only thing sent out is your request to the AI provider, and the app has no telemetry.
Does it read screenshots directly or run OCR first?Screenshots go straight to Gemini for visual reasoning, with no OCR step in between.
Which languages does it tailor answers for?Answers are tailored for C++, C, Python, Java, and JavaScript. A DSA skill prompt is included.
Can I ask by voice instead of typing?Yes. You can speak with manual start and stop or automatic voice detection, using local Whisper or Azure Speech. Replies can go to chat, the overlay, or both.
What is still planned?Planned features include other model backends such as OpenAI, Anthropic, and local models, auto-typing code into editors, and exporting chat history to markdown or PDF.
Creator
TechyCSR
Size
71.2 MB
Stars
1.2K
Age
1y
Commits · 90 Days