No telemetry

by Stonefruit · September 2026

What a Mac window snapper can see about you, and what Apricot chose not to.

A window manager on macOS is a high-trust app. To do its job it has to be able to move the windows of every other app on your machine, which means it has to hold the Accessibility permission — the one you grant in System Settings → Privacy & Security → Accessibility. That permission is broad. Any app with it can, in principle, read the title of the window you're looking at, see which app is frontmost, and script keystrokes to any other app.

Most window snappers don't do any of that. They ask, they get the permission, they move windows, and that's the end of it. But "most don't" isn't the same as "none can," and the App Store review process doesn't tell you what an app is or isn't doing after it runs — it tells you what it's allowed to do. So the answer to "what can this thing see about me" depends on the app you install, not the category.

This page is the honest scope for Apricot, Stonefruit's $3 window snapper: what it uses, what it doesn't touch, and how to check any of it without taking Stonefruit's word for it.

One-time purchase, no subscription. Universal binary (Apple Silicon + Intel), signed and notarized, needs Accessibility permission, requires macOS 14.4 Sonoma or newer.

What Apricot uses

Three Apple frameworks, plus the standard app plumbing. Apricot's published dependency list is none — Apple SDKs only.

Carbon — global hotkeys

The Carbon HotKey API is how a menubar app registers system-wide keyboard shortcuts. Apricot uses it to listen for ⌘⌥ plus an arrow, and for the corner chord's second keypress. Carbon is old — it predates Cocoa — but for global hotkeys it's still the endorsed path on macOS. It sees which registered chord fired. It is not a general keyboard tap.

Accessibility — moving windows

When a chord fires, Apricot asks the Accessibility API for the frontmost window of the frontmost app, reads its current frame, computes the new frame for the snap you requested, and sets it. Accessibility is the only permission Apricot requests, and moving that window is the only thing it's requested for.

SwiftUI + AppKit — the menu bar icon and Preferences

The apricot in your menu bar is a standard status item; Preferences is a plain SwiftUI form. When you change the modifier from ⌘⌥ to something else, that setting is stored in Apricot's own local preferences, in the standard macOS location. Nothing leaves your machine.

What Apricot doesn't do

The absences are the point:

One thing about this website

Everything above is about the app. This site is a separate thing, and it runs three measurement scripts: Cloudflare Web Analytics (a cookieless page-view counter), Vercel Web Analytics (page views, from our host), and Vercel Speed Insights (page-load timing). That's how Stonefruit knows anyone reads these pages at all, and how we know when a page is slow. None of them are on this page by exception — they're on every page, including this one. If you're running a content blocker you've already blocked all three, and nothing on the site breaks. Apricot itself opens no connections regardless of what this site does. We'd rather draw that distinction ourselves than have you find it in the network tab.

How to verify without trusting us

"No telemetry" is worth roughly zero if you have to take the vendor's word for it. Three things you can do on your own machine, to Apricot or to any Mac app, in a few minutes each. We're deliberately not telling you what you'll see — that's the point of running them.

1. Watch it with Little Snitch or LuLu

Little Snitch (paid) or LuLu (free, open-source, by Patrick Wardle) shows every outbound connection an app attempts, in real time. Install one, launch Apricot, use your snap chords for a while, and watch whether Apricot ever appears.

2. Inspect the linked frameworks

Every macOS binary lists what it links against:

otool -L /Applications/Apricot.app/Contents/MacOS/Apricot

Read the list. The names worth looking for are the ones that shouldn't be there on a window snapper — Firebase, Amplitude, Mixpanel, Sentry, Bugsnag, Crashlytics, Segment.

3. Read the Info.plist

The Info.plist declares an app's capabilities and permission requests:

plutil -p /Applications/Apricot.app/Contents/Info.plist

It will tell you the app's identifier and version, that it's a menu-bar app, and which permissions it declares a usage description for. Compare that list against what this page claims.

Why this matters at all

For most people, most of the time, it doesn't. A window manager that pings a version-check server once a week isn't going to leak your secrets, and most of the excellent free and paid snappers on macOS are excellent because their authors care about the platform. If "no telemetry" is a shrug for you, that's a reasonable place to be, and the comparison of Mac window snappers is a better page for you than this one.

But there's a specific kind of person who reads a menubar app's otool -L output before installing, or who runs everything behind Little Snitch on principle. For that person "we don't send anything" is a real feature and not marketing lint. Apricot is built for that person.

The other reason this matters is that scope is easier to keep than to reclaim. It's much easier to promise "no telemetry" today and mean it than to add analytics later and try to explain it. Apricot is small enough to hold that line. If it ever changes, this page changes with it.

The scope, in one sentence: Apricot uses Accessibility to move the frontmost window when you press a chord, and stores your modifier preference locally. Nothing else, and nothing leaves your machine.

Buy Apricot — $3 on Gumroad

← Stonefruit  ·  Apricot  ·  Compared to other snappers  ·  How it works  ·  2026