Skip to content

Security

Every promise, and how you would know if it broke.

These are the properties the app is built to hold. Each one is stated plainly, with the mechanism behind it and — most usefully — the thing you would actually notice if it ever failed. One of them you can measure yourself before every meeting.

01

The panel does not appear on a screen share

The mechanism. Two independent locks on the same door. The window is flagged never-include-in-a-capture, re-checked every two seconds in case anything resets it; and the app separately excludes its own windows by name when it reads the screen, so neither lock depends on the other.

If it broke
A magenta rectangle in the VERIFY evidence files — or, in the worst case, someone on the call mentioning your notes.

Screen-share privacy

Overpane asks macOS to keep its panel out of screen captures, so your notes and prompts stay out of a shared stream or a screenshot. Press ⌃⌥⌘V to measure the result on your own machine — it reports PASS, FAIL, or COULD NOT MEASURE.

This is a confidentiality feature and its scope is exactly that: what a shared stream or a screenshot contains. It says nothing about what other software on your machine can observe, and it is no substitute for telling people you are using an assistant where you are expected to. Our acceptable use policy sets out where it must not be relied on.

02

The page cannot see you press the chord

The web page underneath receives nothing when you press a chord — not the letter, and not the three held-down modifier keys either.

The mechanism. When you press Control, Option or Command the app holds it back rather than passing it on. If the letter that follows is one of the app’s, those held-back keys are thrown away and the page saw nothing. If it was some other shortcut, they are handed over so your shortcut still works. Presses and releases always match.

If it broke
Entries in leak-detector.html when you press a chord — the page that exists to catch exactly this.

03

The page cannot see your mouse react to the panel

The page is never told your cursor arrived somewhere or left somewhere, unless you moved it there yourself.

The mechanism. The panel ignores the mouse by default, so the cursor passes over it as if it were not there. Hiding the panel dims it to nothing rather than removing the window, so nothing under your cursor changes. The one noticeable change — turning the mouse-grip on or off — is parked and applied only once you move away, and exactly one line of code is allowed to make it.

If it broke
mouseleave / mouseenter rows appearing in leak-detector.html while your hand is nowhere near the mouse.

04

The page cannot tell it lost your attention

The page still believes it is the window you are looking at and typing into.

The mechanism. The panel refuses to become the active window and cannot take the keyboard from whatever is in front. It is never fully opaque — it sits at 96% — because macOS only counts a window as covering another when it is completely opaque, so the panel can never make the window behind it look obscured.

If it broke
blur or visibilitychange rows in the leak detector.

05

Your keyboard keeps behaving normally

The app never leaves a key stuck down, never delivers your keystrokes out of order, and never makes your machine feel slow.

The mechanism. It keeps a note of the keys it actually handed over, separately from the keys it held back — confusing the two is the whole bug that was fixed. A held-back key needs no release; a handed-over key always gets one. The keyboard interception runs on its own dedicated thread, so nothing the panel draws can delay a keystroke.

If it broke
Clicks opening context menus, pages zooming when you scroll, or the whole machine feeling sticky. Tap Control, Option, Command and Shift once each to clear it.

06

It is there when you need it

It responds. There is no state it can get into where it silently does nothing.

The mechanism. Two independent hotkey systems run at once — one needs a macOS permission you can revoke, the backup needs none and stays armed underneath. Every action is also in the menu bar item. Nothing can hang forever: asking the model has a two-minute deadline and taking a picture a thirty-second one, after which the app shows what it got, says plainly it was cut off, and returns to normal.

If it broke
The panel stuck on “Answering…” forever with nothing responding.

07

It tells you the truth about itself

Every other promise on this page is invisible to you. This one is not — it is the one you can check with your own eyes. VERIFY flashes the panel magenta, captures your screen through both routes that matter, and looks at the pixels where the panel is. It says PASS only if both routes came back clean, FAIL if it found the panel, and COULD NOT MEASURE — never PASS — whenever it did not actually read the pixels. It saves the evidence to disk so you can look yourself rather than trusting the verdict.

Try the interactive VERIFY on the overview →

What is deliberately not promised

Written down so nobody mistakes it for a bug, and so nobody quietly makes it worse.

  • Two identical monitors

    With two displays of exactly the same size, VERIFY’s size check cannot tell you which one it measured. It says so itself rather than guessing.

  • Other native software

    The keyboard, mouse and focus promises are about what a web page can observe. Another native app watching at the same low level is a different threat, and the app does not claim to defend against it.

  • Older agent transcripts

    The app tells the CLI not to save the conversation. Not every older version accepts that; when yours does not, the app still answers and says so in the footer.

Where these properties set a boundary, ouracceptable use policy sets out plainly where the app must not be relied on.