← Back

Privacy

Last updated 8 September 2026

Sharpy is a macOS app that keeps a record of what you were doing, on your own Mac. Your snapshots, summaries and indexes never leave it. The only thing that goes anywhere is a question you choose to ask, and the context Sharpy selected in order to answer it.

What Sharpy captures

Your frontmost window’s text, its title, and — in browsers — the page URL, a few times a minute. Never video, and never keystrokes. Sharpy reads through the macOS Accessibility API: the same text macOS already exposes to screen readers and other assistive technology. If a screen reader can read it, Sharpy can capture it — an email thread, a pull request, a Slack channel, a document, a terminal session, a page on a website.

In a browser the reach is deliberately narrower than that. Sharpy captures the page you are on and leaves out the browser’s own furniture — the tab strip, the toolbar, the address bar, the bookmarks sidebar — because that furniture is identical in every window of that browser and would otherwise put the names of sites you merely had open into your own record. The window title and the page’s URL are still captured, as their own fields.

Password fields, secure text inputs, and any field an app marks as secure are skipped at the Accessibility API level. Sharpy never sees them.

What is masked before the database sees it

Masking runs in the privacy gate, on every candidate before any write. What is masked is never on disk. It is not stored and then filtered on the way out.

Card numbers
13–19 digit sequences with separators, validated by a Luhn check, become [CARD ••••1234].
Security codes
3–4 digits next to a CVV, CVC or CVN label become [CVV].
National ID numbers
The ddd-dd-dddd pattern becomes [SSN].
IBANs
A country code, two check digits and the account identifier, mod-97 validated, become [IBAN ••1234].
API keys and tokens
Shapes such as sk-…, AKIA…, ghp_… and JSON Web Tokens become [SECRET].

You can add your own patterns as additional masks for anything the built-in rules do not catch.

What is never captured at all

Some windows produce no snapshot whatsoever. These built-in exclusions cannot be switched off:

  • Password managers — 1Password, Bitwarden, Keychain Access, the system password manager and other password vaults, matched by bundle identifier.
  • Banking and payment sites and apps, matched by bundle identifier and domain pattern.
  • Sign-in pages — URLs containing /login, /signin, /oauth, /password or /2fa, and hosts beginning login., auth., sso., accounts. or id..
  • Private-browsing windows, detected by window-title heuristics such as “Private Browsing” and “(Incognito)”. This one is best-effort, not guaranteed, and it is described that way inside the app too.

You can add your own apps, domains and window-title patterns to that list in the app’s Ignore List, and you can pause capture from the menu bar for fifteen minutes, an hour, until tomorrow, or indefinitely. Anything you add is yours to remove; the built-in rules above are not.

The focused-field rule. If your cursor is in a secure field, or inside an app or domain on the exclusion list, the whole screen state is dropped — not just that one field. Nothing from a banking, sign-in or password-manager window is stored, even indirectly.

Where everything lives

One SQLite file, in your own home folder, readable only by your user account:

~/Library/Application Support/Sharpy/sharpy.sqlite

That is the only storage. There is no cloud copy and no sync. Nobody but you has a copy of it, and nothing about it is uploaded anywhere.

What leaves your Mac when you ask a question

Asking Sharpy a question sends the question and the context Sharpy selected for it, and nothing else. Model calls travel through Sharpy’s gateway, a stateless service on Google Cloud Run that holds the model keys so that none of them live on your Mac, and on to a model provider. The gateway stores no prompt, no completion and no part of your memory: it forgets each request the moment the provider answers.

Model providers keep prompts and completions for up to 30 days for abuse monitoring, unless zero-retention approvals are in place. Sharpy does not claim zero retention. That sentence appears in the same words inside the app, and it will stay there until the approvals are actually granted.

Signing in is what makes the model-backed features work; everything that runs locally — capture, the timeline, search, the Ignore List, the privacy controls, the time ledger — works without an account. Accounts are held in Supabase. What is stored about an account is your identity (email and name), the Macs registered to it and their public keys, your subscription state, and usage counts aggregated by day and month. Not prompts, not completions, not memory.

Connecting a third-party app such as GitHub, Slack or Gmail is optional and off until you do it. Those connections are brokered by Composio, and you can revoke any of them at any time.

The microphone and screen recording

Sharpy asks for both during setup, and uses neither one today. Setup finishes without them, and both stay off until you grant them.

  • Microphone. Intended for a hold-to-talk voice input that is not built yet. When it exists, Sharpy will hear you only while the shortcut is held, and the audio will never be stored.
  • Screen recording. Intended for reading what the Accessibility API cannot — a canvas, a video-call window, an app that exposes nothing to assistive technology. Also not built yet. It stays off unless you turn it on, and it would still not be video: Sharpy never records video.

Both permissions can be granted late or taken back at any time on the app’s Privacy page.

Deleting, exporting, and how long things are kept

You decide how long snapshots are kept: forever, or 3, 6, 12 or 24 months. The app’s Privacy page also deletes by date range, by app, by domain or by person, and each of those shows you exactly how many snapshots match before you press Delete.

Export writes everything to one JSON file. That file is clear text and is not encrypted, so keep it where you would keep a password manager export.

“Erase everything” removes the lot, behind a typed confirmation. Deleting your Sharpy account is a separate action and leaves the memory on your Mac untouched; erasing the memory on your Mac leaves your account alone.

This website

getsharpy.com is a static site. It sets no cookies, runs no analytics, has no accounts and no forms, and there is nothing on it to log you in to. Its typefaces are served by Google Fonts, which means your browser makes a request to Google’s font servers when the page loads; nothing else on the page contacts a third party. If you email the address on the front page, that message goes to a mailbox and is not added to any list.

Changes to this page

When Sharpy’s behaviour changes, this page changes with it, and the date at the top moves.

Who to ask

Sharpy is published by Assylkhan Sarsenbayev. Questions about this page, or about your data, go to info@sharpsana.com.