Cue: Open-Source macOS AI Copilot That Stays Hidden in Screen Shares
Cue is a free, self-hosted macOS AI copilot that floats over your screen, listens to meetings, and stays invisible in screen shares. A Cluely alternative with bring-your-own-key.
What is Cue?
Cue is an open-source macOS AI copilot that floats a small glass panel on top of everything you do. It sees your screen, hears your meetings (both your mic and system audio), and uses AI to help you in real time โ all while staying hidden from screen shares. Think of it as a private assistant that never appears in your recordings or video calls.
It's a free, self-hosted alternative to tools like Cluely and Interview Coder. You bring your own API key (OpenAI, Anthropic, or Google Gemini), so there are no subscription fees โ you only pay your AI provider for what you use.
Why This Matters
Most AI copilots either run in a browser tab or require you to switch contexts. Cue lives on top of your screen, always available, and is designed to be invisible in screen recordings and video calls. This makes it uniquely useful for:
- Live meetings: Get real-time suggestions on what to say next.
- Coding problems: Screenshot a bug or algorithm question and get a full solution.
- Study and practice: Use it as a learning aid without disrupting your workflow.
How It Works
Cue is an Electron app that runs entirely locally except for API calls to your chosen AI provider. It captures three separate inputs:
- Screen: Full-resolution screenshots taken on demand via Electron's
desktopCapturer. - Your mic: Captured via
getUserMedia, downsampled to 16 kHz, and transcribed. - Meeting audio: System output audio captured via
getDisplayMedialoopback, kept on a separate channel so Cue knows who said what.
Both audio streams are transcribed (using OpenAI Whisper or Google Gemini) and fed, along with an optional screenshot, to the AI model. Responses stream into the panel word-by-word.
Key Features
| Feature | Trigger | What It Uses |
|---|---|---|
| Assist | โโต (configurable) |
Screen + recent conversation |
| What should I say? | Button | Meeting audio + your mic |
| Follow-up questions | Button | Whole conversation |
| Recap | Button | Whole conversation |
| Ask anything | Type + โต |
Screen + conversation |
| Solve a coding problem | โH |
Screen only |
| Smart toggle | Pill in the box | Switches to a smarter (slower) model |
Installation
Option A: Download the App (Easiest)
- Go to the Releases page and download
cue-mac.zip. - Double-click to unzip, then drag
cue.appinto your Applications folder. - First open: Right-click โ Open โ click Open. If macOS says it's damaged, run:
xattr -cr /Applications/cue.app
Option B: Run from Source (Developers)
Requires Node.js 18+.
git clone https://github.com/Blueturboguy07/cue.git
cd cue
npm install
npm start
To build your own .app:
npm run pack
First Launch Setup
Step 1: Grant Permissions
- Microphone: System Settings โ Privacy & Security โ Microphone โ enable Cue.
- Screen Recording: System Settings โ Privacy & Security โ Screen Recording โ enable Cue.
Step 2: Add Your AI Key
Open Settings (โ,), pick a provider, and paste your key:
| Provider | Get a Key | Notes |
|---|---|---|
| OpenAI | platform.openai.com/api-keys | Key must have Whisper/audio access for listening features |
| Anthropic (Claude) | console.anthropic.com | Great for screen & coding help; needs a second key for transcription |
| Google Gemini | aistudio.google.com/apikey | One key does chat + transcription |
Your key is stored locally in cue-data.json and sent only to your provider. Cue has no server and collects no telemetry.
Step 3: Zoom Setting (Only for Zoom)
To keep Cue hidden in Zoom shares:
Zoom โ Settings โ Share Screen โ Advanced โ Screen capture mode โ choose "Advanced capture with window filtering."
This tells Zoom to respect Cue's "don't capture me" flag. The "without window filtering" mode will show Cue.
How the Invisibility Works
Cue uses a single macOS window flag: setContentProtection(true), which sets NSWindowSharingNone. This asks the window server to exclude Cue from screen-capture streams. It's the same mechanism used by DRM apps and Zoom's own toolbar.
Important caveat: On macOS 15.4+, Apple allows some capture tools to ignore this flag. It's best-effort, not guaranteed. Using a hidden assistant in proctored exams, job interviews, or recorded meetings may violate platform rules or consent laws.
Architecture
main process โโโฌโ overlay window (frameless, transparent, always-on-top, content-protected)
โโ screenshot capture (desktopCapturer)
โโ speech-to-text (Whisper / Gemini) โโ "You" + "Them" channels
โโ LLM streaming (OpenAI / Anthropic / Gemini)
renderer โโโโโโโดโ the glass UI + mic capture + system-audio loopback
Troubleshooting
- "It says give access, but I already gave access." Toggle Cue off and on in System Settings โ Screen Recording, or remove and re-add it.
- "403" / "no access to model." Your API key is restricted. Enable audio/Whisper on the key, or add a Gemini key as fallback.
- Listening does nothing. Check that Settings shows a transcription-capable key and Screen Recording is granted.
- Cue shows up in Zoom share. Set Zoom's capture mode to "Advanced capture with window filtering."
- "cue is damaged and can't be opened." Run
xattr -cr /Applications/cue.appin Terminal.
Privacy
- No accounts, no servers, no telemetry.
- API keys stored locally in
cue-data.json. - Screenshots and audio sent only to your AI provider when a feature runs.
- Transcripts kept in memory for the current session only.
Contributing
Issues and PRs welcome. The codebase is intentionally small and readable:
main.jsโ app + capture + AIrenderer/โ the UIsrc/โ providers
No build step for the source (plain HTML/CSS/JS).
Platform Support
- macOS: Fully supported
- Windows: Fully supported
- Linux: Untested
License
GPL-3.0-or-later.