Architecture
Stealth sits between the employee’s display and whatever is capturing it. Overlays are drawn on the device. Zoom, Teams, Meet, Loom, OBS, and other capture tools record the already-obscured frame.
A separate path talks to the license and policy service. That path never carries screen contents.
Boundary: screen pixels are never transmitted. Window titles are not read. Tab addresses are read only when an admin or user enables sensitive-tab rules, and they are not stored or uploaded.
Permissions
| Permission | Why | What it can see | Leaves the device? |
|---|---|---|---|
| macOS Accessibility | Place overlay windows on protected apps | Window positions and owning app identity — not window contents | No |
| macOS Automation (optional) | Sensitive-tab rules | Active tab URL in supported browsers | No. Used locally to decide blur. |
| Windows (no extra prompt for core blur) | Overlay protected windows | Window bounds and process identity | No |
| Network | License validation, team policy, updates | Email, license key, anonymous device id, policy version | Yes — those fields only |
Stealth does not request Screen Recording permission. It does not need to read the framebuffer to frost a window.
Network behavior
- License / policy:
https://stealth-license.adsbg6.workers.dev— validate, deactivate, silent MDM activate, team policy. Team keys re-check about every five minutes (fail-open on network errors). - Team portal: the same worker, from
getstealth.app/team.html, for magic-link login, seats, invites, and MDM token download. - Payments: Stripe Checkout and Customer Portal. We never see full card numbers.
- Email: Resend, from
[email protected]and support mail to[email protected]. - Website: Cloudflare Pages/CDN for getstealth.app. Google Analytics 4 on the marketing site only — not inside the desktop app.
- Updates: Mac checks
version.jsonon getstealth.app; Windows uses Microsoft Store updates.
There is no telemetry about which apps you protect, which URLs matched, or whether a screen share is in progress.
Data handling
| Data | Stored? | Where |
|---|---|---|
| Screen pixels / window titles / message contents | No | — |
| Tab URLs (if tab rules enabled) | No (evaluated locally) | Device only |
| Buyer / member work email | Yes | License KV, Stripe, Resend |
| License key, anonymous device id | Yes | License KV; key also in macOS Keychain / Windows credential store |
| Team policy (apps, URL rules, locks) | Yes | License KV; pushed to enrolled devices |
| Seat quantity, subscription status | Yes | Stripe + License KV |
| Billing metadata, invoices | Yes | Stripe |
| Website analytics (pages, clicks) | Yes, anonymized IP | Google Analytics |
| Pilot request form fields | Email only | Sent to support; IP used for short rate-limit |
Software supply chain
- Mac: Developer ID signed and notarized. Distributed as a DMG from getstealth.app.
- Windows: distributed through the Microsoft Store.
- Updates: Mac version file on the same site; Windows via Store. We do not ship unsigned blobs from the license worker.
- Vulnerability reports: [email protected].
Subprocessors
- Stripe — payments, subscriptions, invoices, customer portal.
- Cloudflare — website, DNS, CDN, Workers, KV for licenses and team records.
- Resend — license, invite, and transactional email.
- Google Analytics — marketing site only.
- Microsoft — Store distribution and (if you use Intune) your own MDM tenant, not ours.
Where Stealth fits
Already use data loss prevention (DLP)? Stealth complements your existing security controls by protecting sensitive information that’s accidentally visible during screen sharing and recording. It also works on its own — nothing else to buy or configure first.
What we don’t claim
Stealth is not SOC 2 or HIPAA certified. It is not a DLP suite, CASB, or secure workspace. It does not inspect files, email, USB, or clipboard. Full-display share is protected; sharing a single application window is not. That honesty is deliberate — a security review will find the limit anyway.
Enterprise packet
If you need a security questionnaire, W-9, order form, or DPA discussion, email [email protected]. We will not invent badges we don’t have.
Start with 10 devices
Run the policy on a pilot group before the security review has to cover 500 seats.
Start a 14-day team pilot