Privacy

What Keysi sends anywhere, and what it doesn't

Last updated with the 1.0.27 release.

The short version

Keysi reads the menu structure of whatever app is frontmost, on your Mac, to show you its keyboard shortcuts. That information never leaves your Mac. To warn you when another app's global hotkey would swallow one of those shortcuts, it also reads, without changing them, the hotkey settings that Raycast and Rectangle save on your Mac. That stays on your Mac too. Two network calls happen automatically, both described in full below, and nothing else does unless you turn it on yourself, or press Send on the feedback form. Crash diagnostics are off by default; if you turn them on in Settings, they're generated on-device by Apple's MetricKit and never transmitted anywhere automatically. Usage analytics, inside the app and on this website, are opt-in too; see Analytics below for exactly what's collected when you say yes.

Accessibility access

Keysi asks for Accessibility permission the first time it runs. This is what lets it read another app's menu bar structure via macOS's Accessibility API. Verbatim, from the permission prompt itself:

"Keysi needs Accessibility access to read the keyboard shortcuts of the app you're using. It never controls your keyboard or mouse without an explicit click on a shortcut row."

Keysi only ever simulates a click on your explicit action: clicking a shortcut row to run it. It never types on your behalf, never moves your mouse, and never records what you type into other apps. It does see that keys are pressed, which is how holding ⌘ works.

Keysi is closed source, so the security page lists every Accessibility call it makes, every network request and every file it reads, with commands to check each one on your own Mac.

The two network calls Keysi makes automatically

  1. License check. When you activate a license, or periodically revalidate one already active, Keysi contacts Gumroad's License API with your license key. ("Deactivate This Mac" itself is local only: it clears the license from this Mac's Keychain without contacting Gumroad.) Gumroad is the merchant of record for your purchase and processes this on Keysi's behalf; see their own privacy policy for how they handle payment and license data.
  2. Update check. Keysi periodically checks a public appcast feed (hosted on GitHub Pages) to see if a new version is available, using Sparkle. This is a standard, unauthenticated HTTP request for a static XML file, with no identifying information about you or your Mac is sent with it beyond what any HTTP request includes (like your IP address, visible to the hosting provider).

Nothing else Keysi does touches the network by default. The shortcuts it reads, the apps you use, your custom cheat sheets, and your settings all stay on your Mac, with one opt-in exception, covered next.

Analytics: always opt-in, off by default

Two separate analytics systems exist, covering two separate things: this website, and the Keysi app itself. Neither is on unless you actively turn it on, and turning either off again is one click.

This website uses Google Analytics to understand traffic: which pages get visited, what referred you here, and whether the "Buy" button gets clicked. Nothing from Google loads until you click "Accept" on the banner shown on first visit; clicking "Decline" (or simply ignoring the banner) means no Google request is ever made. Google's own privacy policy governs how it handles this data. You can withdraw consent at any time by clearing this site's data in your browser, which brings the banner back on your next visit.

The Keysi app has a "Share usage analytics" toggle in Settings → General, off by default. The last page of the welcome window offers the same choice once, as an unticked "Share anonymous usage data" box; ticking it turns on that same setting, and leaving it unticked leaves analytics off. If you turn it on, Keysi sends a small, disclosed set of anonymous events to PostHog (EU-hosted):

Nothing else. Never your license key, never the amount you paid or any payment detail, never the content of any document, message, or window, never anything from a custom cheat sheet, and never the menus Keysi reads, not even the name of a shortcut you triggered. Turning the toggle back off stops all future events immediately.

Feedback you send us

Keysi has a feedback form, in the menu bar, in Settings → General, and very occasionally offered by a one-line prompt. Nothing is sent from it unless you press Send, and the form shows you the exact payload first, line by line, above the button. This is the one thing Keysi sends that isn't covered by the analytics toggle: whether that toggle is on or off makes no difference here, because pressing Send is its own decision and it covers exactly one message.

What goes with it:

It goes to the same EU-hosted PostHog project as the opt-in analytics, as a single event with a random one-off identifier. Two messages sent from the same Mac cannot be linked to each other, or to anything the analytics toggle collects, and no profile is built from them.

What never goes with it, whatever the boxes say: the app you were using, any menu Keysi has read, anything Shortcut Coach has recorded, your diagnostic log, and your licence key.

A short excerpt of what you write may be quoted in an issue on Keysi's own development tracker, so the problem you reported can be tracked until it's fixed. That tracker is private, readable only by whoever works on Keysi, and your message is not published anywhere. Email addresses, file paths under your home folder, links and anything shaped like a licence key are stripped out of the excerpt even so, and your reply address is never included in it at all.

The public roadmap is built from those private issues, but nothing you wrote is copied onto it. Each request there has a title and description written by the developer, and a count of how many messages asked for it. It never shows who asked, what they said, or any of the details listed above.

What's stored locally

Shortcut Coach keeps a count, on your Mac only, of which menu commands you pick with the mouse that already have a keyboard shortcut, and how often you later press that shortcut instead. It also times how long your own menu trips take, so the progress figures Keysi shows you are measured rather than guessed. That counting continues on the free tier, even though the coaching itself is part of Keysi Pro. It is what lets Keysi show you real numbers about your own habits if you ever look. None of it is transmitted anywhere; it lives in ~/Library/Application Support/Keysi/. Turning off "Suggest shortcuts when you click with the mouse" in Settings → Coach stops the counting entirely, and "Reset Statistics" on that same pane deletes what has been collected.

So that an app's shortcuts appear instantly the first time you bring Keysi up after it starts, it also keeps a copy of the menus it has read, on your Mac only, in MenuCache.json in that same folder: menu command names and their shortcuts, for up to 12 apps, each dropped after 30 days. It leaves out the menu items that are your own content rather than a command, such as the list of open windows in the Window menu and the names in Open Recent. "Reset Statistics" in Settings → Coach deletes this file's contents too.

It also counts, in ShortcutlessPicks.json in that same folder, the menu commands you choose with the mouse that have no keyboard shortcut, so Settings → Coach can suggest one: the app, the menu, the command's name, and the dates of your clicks from the last 30 days. Older clicks are dropped. It never records the menu items that are your own content, such as open windows and Open Recent, and never anything from a web browser's menus. Keysi only suggests a combination; adding it in System Settings is up to you. The same switch stops this counting, and "Reset Statistics" deletes it.

If you send feedback while you're offline, the message waits in ~/Library/Application Support/Keysi/ and goes out the next time Keysi starts with a working connection, or is discarded after a fortnight, unsent. Anything you start writing and don't send is kept in the same place, so closing the window doesn't throw it away; it stays on your Mac until you send it or delete it yourself. Keysi also remembers, on your Mac only, whether it has already asked you for feedback, so that it doesn't ask again.

Your license state, trial state, and preferences (hold delay, hotkey binding, menu bar icon visibility, and so on) are stored locally on your Mac, in the standard macOS locations for app preferences and keychain items, and are never uploaded anywhere by Keysi itself.

Custom cheat sheets

Any custom JSON cheat sheets you add live in ~/Library/Application Support/Keysi/Sheets/ on your own Mac. Keysi never uploads or shares the contents of that folder with anyone.

Syncing between your Macs

Settings → Sync is off until you turn it on. When it is on, Keysi copies your custom cheat sheets, favorites, hidden shortcuts and your appearance and trigger settings into a folder that you choose — your iCloud Drive, Dropbox, or any other folder — and reads what your other Macs put there. Whatever service owns that folder carries the files between your Macs, under its own terms; Keysi itself makes no network connection for this and has no server that sees them. Your license, trial state, analytics choice, Coach statistics and window positions are never copied. Turn it off, or delete the files, and Keysi stops. “Export Settings” and “Import Settings” do the same with a single file you save and open yourself.

Questions

If anything here is unclear, or you want more detail on a specific behavior, reach out. Contact details are on the press page.