The overlay is the 420×560 window that floats above every other app and shows live suggestions during a session. This page explains how it stays out of screenshots, how to control it, and when stealth mode can fail.
How stealth works
The overlay window is constructed with three properties that, together, make it effectively invisible to screen capture:
transparent: true. No background paint, so nothing bleeds through to the desktop behind.alwaysOnTop. Pinned above every other window regardless of focus.setContentProtection(true).The operating system flag that tells screen-capture APIs to black out the window. On macOS this is enforced by the window server; on Windows it is enforced by DWM. Zoom, Teams, Meet, and every other screen-sharing app respects the OS flag because they go through the standard capture APIs.
In production mode, setContentProtection(true) is called unconditionally when the overlay is created. In test mode (MOCKINGBIRD_TEST_MODE=1) the overlay is rendered non-transparent with content protection off so Playwright can assert on its contents; the real stealth verification runs as a self-test wizard that reads the live BrowserWindow state. It does not return a hardcoded pass.
Global hotkeys
| Action | Shortcut |
|---|---|
| Show / hide overlay | ⌘⇧\ |
| Panic (hide + delete last 60s) | ⌘⇧X |
| Switch mode: Interview / Sales / Meeting | ⌘⇧1 / ⌘⇧2 / ⌘⇧3 |
| Open main window | ⌘⇧M |
| Regenerate suggestion | ⌘⇧R |
| Tone: Shorter / Simpler / Longer | ⌘⇧[ / ⌘⇧' / ⌘⇧] |
| Next / previous suggestion | ⌘⇧J / ⌘⇧K |
All shortcuts are bound in the main process via Electron's globalShortcut API and forwarded through a single onOverlayAction bus into the renderer. If you want to rebind them, they live in src/shared/constants.ts → GLOBAL_HOTKEYS.
Panic
⌘⇧X does two things at once:
- Hides the overlay (not just lowers it, an actual
window.hide()). - Issues real
DELETEstatements against the session's SQLite store for the last 60 seconds ofturnandsuggestionrows.
This is a destructive operation by design. It is not "clears UI state" or "toggles a filter." If you need to preserve a session you are in, stop the session normally and review it on the Sessions page.
When stealth mode can fail
The setContentProtection(true) flag is enforced by the OS capture APIs. If an application goes around those APIs, stealth does not apply. Known cases:
- Hardware capture cards (HDMI / Elgato boxes). Capture cards read the literal HDMI signal before the OS composer, so they capture everything on screen regardless of any OS flag. There is no software-side fix.
- Browser-based recording software that uses
getDisplayMedia: most browsers respect content protection, but some older Linux builds of Chromium do not. If you are worried, test once before relying on it. - Accessibility recording features (macOS VoiceOver screen recording in specific configurations, some assistive tech). These are rare; treat them as untrusted.
- External cameras pointed at your monitor. The OS flag cannot blur a physical lens. Obvious, but worth stating.
The app ships a self-test under Settings → Stealth self-test that reads the live overlay window's state (contentProtection, alwaysOnTop, focusable, skipTaskbar, visibleOnAllWorkspaces, and platform) and surfaces a structured pass / caveat report. The caveat line is always present and tells you the known-bad cases above so you do not come away thinking the app guarantees invisibility.
Moving and resizing
Drag the overlay by its top bar. Resizing is disabled by design: the 420×560 footprint is optimised for the density of transcript tail, suggestion card, and action row. If you need a larger main window for reviewing suggestions, use ⌘⇧M to open it.
Accessibility
The overlay itself is a polite live region (aria-live="polite") so assistive tech announces incoming suggestion tokens. The close button has an accessible name ("Hide overlay"). Every mode and tone control is a real button with a focus ring that respects the Vathus gold accent.