Model or dataset
Blueturboguy07/cue avatar
Blueturboguy07/cue

cue: a self-hosted AI overlay that hides from screen shares

Open-source macOS AI copilot that floats over your screen, sees/hears your meetings, and stays hidden from screen shares. Cluely alternative, bring-your-own-key.

1,356 stars316 forksJavaScriptGPL-3.0

At a glance

What is it?
cue is a GPL-3.0 Electron overlay for macOS and Windows that feeds your screen, mic and meeting audio into an LLM of your choosing. Its screen-share exclusion is best-effort, and the README says so plainly.
Who is it for?
cue fits people who already pay for an OpenAI, Anthropic or Gemini key and want a floating assistant for their own meetings, study sessions or coding problems on macOS or Windows, without a subscription. It does not fit anyone who needs guaranteed invisibility, Linux desktop users (the package scripts only build a Linux AppImage), or anyone on macOS below 14.4 who needs the Them channel, since system-audio loopback is unavailable there.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 39 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 18, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What cue actually solves, and for whom

Most AI meeting assistants are cloud services with a subscription and a bot that joins the call. cue takes the opposite position on all three counts. It runs as a local Electron app, it asks for your own provider key rather than selling you one, and it never joins the meeting as a participant. The README describes it as "A free, self-hosted alternative to Cluely", and the package description calls it an "Open-source cross-platform invisible AI overlay".

The intended user is someone sitting in a live call or staring at a coding problem who wants a private second opinion on screen. The feature list is built around that moment: Assist on a keyboard shortcut, a What should I say? button, Follow-up questions, Recap, an Ask anything field, and a separate Solve a coding problem action bound to a different shortcut. Three inputs feed all of it, and the separation matters. Your screen, your microphone (the You channel) and the other party's audio (the Them channel) are captured independently, so a model can be asked about what you said without being handed the whole room.

This is not a note-taker. There is no transcript archive, no post-meeting summary export and no calendar integration described in the README. It is a real-time overlay, and if what you want is a searchable record of last quarter's calls, cue is aimed at a different job.

How the three input channels reach the model

The architecture is visible in the repository layout. main.js is the Electron main process, preload.js bridges to the renderer directory, and src/ holds the application code. Dependencies confirm the shape of the data flow: the openai, @anthropic-ai/sdk and @google/genai packages are all present, so provider selection is a runtime choice, not a build-time one. mammoth and pdf-parse handle document parsing, which is what makes the CV Context feature in v0.2.0 possible, and ws suggests a local websocket hop, most likely to the whisper server.

Transcription is local. The README states that packaged builds include a pinned whisper.cpp runtime, and package.json exposes prepare:whisper and verify:whisper-runtime scripts, with a vendor/ directory at the top level. That is a deliberate choice: audio goes to a local binary for speech-to-text, and only text goes to the provider. It also explains the macOS build cost. According to the README, Windows x64 and Linux x64/arm64 use checksum-verified binaries from a pinned upstream release, while macOS builds whisper-server from the same pinned source tag and therefore needs CMake plus Xcode command-line tools.

The Them channel is where the platform split bites. Meeting audio uses system-audio loopback. On Windows that works out of the box. On macOS it depends on ScreenCaptureKit, which the README says cue enables through Chromium's MacLoopbackAudioForScreenShare and MacSckSystemAudioLoopbackOverride switches, and it requires macOS 14.4 or later. On older macOS the Them channel stays silent while screen capture and the You channel keep working. Screen Recording permission covers both the screenshot features and meeting-audio capture on macOS, so it is not optional.

Installing cue from the Releases page or from source

The README gives two install paths, and Option A is the one it recommends on both platforms. Go to the Releases page and pick the asset for your machine. On Windows 10 or 11 x64 that is cue-win-x64.exe; run it and launch cue from the Start menu. The README warns that the installer is unsigned, so SmartScreen may show an Unknown publisher prompt. On Apple silicon macOS, download the arm64-mac.zip asset, unzip it, drag cue.app into Applications and open it.

Option B is running from source, which needs Node.js 22.12 or newer because the dev dependencies require it. The README notes that cue deliberately avoids native modules, so no Xcode and no Visual Studio build tools are needed for the install itself.

bash
git clone https://github.com/Blueturboguy07/cue.git
cd cue
npm install
npm start

After npm start, the app opens and the built-in tutorial runs on first launch. You can reopen that tutorial at any time by clicking the cue logo at the top left of the pill. If you are running from source rather than from a packaged build, prepare the matching whisper runtime once before expecting transcription to work:

bash
npm run prepare:whisper

Building a distributable is a separate step, and the scripts differ by platform:

bash
npm run pack        # unpacked app in dist/ (either OS)
npm run pack:win    # unpacked Windows app -> dist/win-unpacked/cue.exe
npm run dist:mac    # macOS zip            -> dist/
npm run dist:win    # Windows installer    -> dist/cue-win-x64.exe

Once the app is open, the first real use is a two-part setup. Grant permissions first: on macOS that means System Settings, Privacy & Security, then Microphone and Screen Recording, turning on cue for both, and letting macOS quit and reopen the app if it asks. On Windows only the microphone needs permission, under Privacy & security, Microphone, where both Microphone access and Let desktop apps access your microphone must be on. Screenshots and meeting audio need no permission on Windows. Then add a key: click the ... button in the input box, or press Command-comma on macOS and Ctrl-comma on Windows, pick a provider in Settings and paste the key. After that, Assist is Command-Return on macOS or Ctrl-Enter on Windows, and Solve a coding problem is Command-H or Ctrl-H.

The screen-share exclusion is best-effort, and the README says so

This is the part to read before anything else. The README carries an IMPORTANT block stating that cue tries to stay out of screen recordings and shares but that this is "best-effort, not guaranteed". Three specific failure modes are named. On macOS 15.4 and later, Apple can let modern capture tools see the window anyway. On Windows 10 builds older than 2004, exclusion degrades to a black box rather than true exclusion, which is visible in the share. And a phone camera pointed at your screen always captures it.

The platform table is more precise than the marketing line. Hidden from screen shares is marked best-effort and weaker on macOS 15.4+, while Windows 11 and Windows 10 2004+ get WDA_EXCLUDEFROMCAPTURE, the documented Windows API for excluding a window from capture. If invisibility is the property you actually need, the Windows path is the one with a real mechanism behind it, and the macOS path is a mitigation that Apple's own capture stack can override.

The README also states the boundary plainly: using a hidden assistant during a proctored exam, a job interview or a recorded meeting may break that platform's rules and, in some places, consent laws. cue positions itself for your own notes, studying, accessibility and practice. That is not a disclaimer bolted on at the end; it is the honest scope of what an overlay that captures a second party's audio can be used for.

Provider keys, Whisper access and the 403 you should expect

cue is bring-your-own-key, and the README is explicit that this makes the app free to run while you pay your provider for usage. Settings offers OpenAI, Anthropic and Google Gemini, and the package description adds OpenAI-compatible endpoints. Provider choice is not cosmetic, because the transcription path constrains it.

The README's provider table carries the sharpest practical warning in the document. OpenAI is described as one key doing everything, but for the listening features the key must have Whisper or audio access; a restricted project key that only allows chat will return a 403 on transcription. That is a real failure mode with a confusing symptom, since screen and coding features will work fine on the same key while What should I say?, Follow-up questions and Recap fail. Anthropic is described as strong for screen and coding help but has no speech-to-text at all, so the README's answer is to add another provider alongside it. Gemini is listed as a supported option without further notes in the README.

The Smart toggle in the pill switches to a smarter and slower model. The README does not document which model each provider maps to, whether the toggle persists across sessions, or what the latency difference is. Treat the toggle as a manual trade between speed and answer quality that you calibrate yourself.

Where cue is the wrong tool

The clearest case is anyone who needs a guarantee. If your use depends on the overlay being undetectable in a recorded session, cue cannot provide that on macOS 15.4+, and the README says a phone camera defeats it everywhere. Windows 10 2004+ has the stronger mechanism, but the guarantee is still bounded by the OS API.

macOS users below 14.4 should also think twice. Screen capture and the You channel work, but the Them channel stays silent, which removes the three features built on the other party's audio. You would be paying for a copilot that can only hear half the conversation.

Linux is a gap. package.json defines dist:linux and dist:linux:arm64 producing an AppImage, but the README's platform support table covers only macOS and Windows, and the install section offers downloads for those two only. The Linux scripts exist in the repository without documented support, so treat Linux as untested territory rather than a supported target.

Finally, if you want a shared team record of meetings, cue is the wrong shape. There is no server component, no multi-user mode and no transcript store described anywhere in the README. It is a single-user overlay tied to a single API key on a single machine.

How cue differs from Cluely and from cloud meeting bots

The README names Cluely directly, calling cue a free, self-hosted alternative. The difference in approach is structural rather than a feature checklist. Cluely is a hosted product; cue is an Electron app you run locally with your own provider key. That changes who holds the audio and the screenshots, and it changes the cost model from a subscription to per-token billing at your provider.

The second comparison is with cloud meeting bots that join a call as a visible participant and produce a transcript afterwards. cue does neither. It never joins the call, so there is no bot in the participant list, and it produces no artifact afterwards. Its output is ephemeral, aimed at the next thirty seconds of conversation or the coding problem currently on screen.

That said, self-hosting shifts work onto you. You manage the key, you grant the OS permissions, you run npm run prepare:whisper if you are running from source, and you accept that macOS ties permission grants to the exact build. The README states that packaged macOS builds are ad-hoc signed unless a Developer ID certificate is configured, and that rebuilding resets the mic and screen permissions, so you grant them again. Its advice is to build once and keep it for everyday use, and to note that Windows has no equivalent problem. If you would rather not think about signing, keys or permissions at all, a hosted product is genuinely less work.

Licence, maintenance and the cost of upgrading

cue is licensed GPL-3.0-or-later, per package.json, with the repository carrying a LICENSE file and the listing showing GPL-3.0. For anyone running it locally, that is unremarkable. For anyone who wants to ship a modified cue inside a closed product, the copyleft terms matter, and the provider SDKs and whisper.cpp runtime bring their own licences that you would need to check separately. That is a description of the licence, not legal advice.

The repository is not archived and the last push was on 2026-08-10. Releases have been frequent: v0.2.0 on 2026-07-21 added Windows support, custom shortcuts and CV Context, v0.2.1 on 2026-07-31 was signed and notarized, and v0.2.2 followed on 2026-08-01. Version 0.2.2 is the current one in package.json. The changelog pattern suggests steady iteration on a young codebase, so expect the shape of the app to keep moving.

The upgrade cost is mostly a macOS tax. Because permission grants are tied to the exact build, replacing your cue.app with a fresh packaged build means re-granting microphone and screen recording. The README does not document a rollback path or a migration process for settings between versions, so if a new build misbehaves, the README gives you no stated way back other than reinstalling an older asset from the Releases page. On Windows, upgrading is just running the newer installer. Electron 33.2.1 is pinned in devDependencies, so a jump to a newer Electron is a maintenance task the maintainer has to take on rather than something that happens silently.

Editorial conclusion

cue fits people who already pay for an OpenAI, Anthropic or Gemini key and want a floating assistant for their own meetings, study sessions or coding problems on macOS or Windows, without a subscription. It does not fit anyone who needs guaranteed invisibility, Linux desktop users (the package scripts only build a Linux AppImage), or anyone on macOS below 14.4 who needs the Them channel, since system-audio loopback is unavailable there. Before adopting it, verify two things: that your provider key has Whisper or audio access if you want the listening features, and that the packaged build you install is the one you will keep, because on macOS rebuilding resets the mic and screen permission grants.

Frequently asked questions

What is Blueturboguy07/cue on GitHub?

It is an open-source Electron desktop app for macOS and Windows that floats an AI overlay above your screen and feeds your screen, microphone and meeting audio into a model you supply a key for. The README describes it as a free, self-hosted alternative to Cluely, licensed GPL-3.0-or-later.

How do I download and install cue on macOS?

Go to the Releases page and download the arm64-mac.zip asset for Apple silicon, unzip it, drag cue.app into Applications and open it. You then grant Microphone and Screen Recording permission in System Settings under Privacy & Security. Alternatively, clone the repository and run npm install followed by npm start with Node.js 22.12 or newer.

Can cue really stay hidden during a screen share?

The README states this is best-effort and not guaranteed. Windows 11 and Windows 10 2004+ use WDA_EXCLUDEFROMCAPTURE, while on macOS 15.4 and later Apple can let modern capture tools see the window anyway, and a phone camera always can. On Windows 10 builds older than 2004 it degrades to a black box instead of true exclusion.

Why does transcription fail with a 403 when I use my OpenAI key in cue?

The README states that for the listening features the OpenAI key must have Whisper or audio access, and that a restricted project key allowing only chat will return a 403 on transcription. Screen and coding features can still work on that same key, which makes the failure look selective.

Official sources

  1. Blueturboguy07/cue on GitHub
  2. Issues
  3. License: GPL-3.0
  4. README
  5. Releases
Community notes

Community notes