Privacy policy

Everything stays on your Mac.

Gisti handles your clipboard and your screen. That demands a stricter standard than a marketing promise. This page is specific on purpose.

The principle

All data is stored locally on your Mac. Gisti has no accounts, no sync service, no telemetry, and no analytics – not "disabled by default", but not implemented in the code at all.

What is stored on disk

Notes, clipboard history, screenshots, OCR text, chats, and the embeddings index live in a local SwiftData database, inside Gisti's sandboxed App Store container:

~/Library/Containers/com.gisti.app/Data/Library/Application Support/com.gisti.app/

Settings → Storage → Location opens it directly in Finder. It's your file – back it up, export it (Settings → Storage), or delete it. Gisti keeps no copy anywhere else.

What is never collected

Not just a claim on this page

Everything above is written on the app's own website, by the person who wrote the app. The App Store privacy label is not: it is declared by me and then reviewed by Apple against the app that was submitted. For Gisti it reads "Data Not Collected" – "the developer does not collect any data from this app" – and you can read it yourself in the App Privacy section of the App Store listing.

AI is opt-in

AI features are off until you configure a provider. Your choice defines where content goes:

API keys

If your endpoint requires a token, it is stored in the macOS Keychain. It is sent only to the address you entered, over TLS, and appears in no logs or config files.

Network requests

Gisti's own code goes to the network in three cases, all of them yours to control:

That is the whole list. Gisti never checks for updates or phones home. It's distributed on the Mac App Store, which delivers and installs updates on its own, outside the app's code.

Clipboard and screenshots

Clipboard content and screenshots never leave the device except by your explicit action: an AI request you invoke, an export, or a share. Apps you add to the ignored list are never recorded at all.

Passwords are skipped without any setup. A copy marked org.nspasteboard.ConcealedType or TransientType – the cross-app nspasteboard.org convention that 1Password, Bitwarden, KeePassXC and Apple Passwords use – is recognised by its type before its content is read, and the copy is skipped entirely: it reaches neither the history, nor the previews, nor the search index. AutoGeneratedType, which marks content produced by a clipboard utility rather than by you, is skipped the same way, and managers that use a private marker of their own instead are covered by the type list in advanced.yaml.

Screen recording and screenshots

Gisti asks for the macOS Screen Recording permission because macOS requires that permission for any screen capture at all, including a single still screenshot – which is the only thing Gisti does. Gisti does not record your screen: no video, no audio, no capture in the background, on a timer, or while you are away. A capture happens only when you press ⇧⌘X (or choose Screenshot in the menu) and then select a region or a window. One still image is taken at that moment; nothing is captured before it or after it.

A capture produces, on your Mac and nowhere else: the image as a PNG file, the date and time, the name of the app that was in front (a label in your library), and the text recognized in the image so you can search it. Recognition runs on the device through Apple's Vision framework. If you turn on semantic search, an embedding computed on the device is stored alongside it.

This data exists for your own reference and for nothing else. It is never sent anywhere – Gisti has no server to send it to – and it is never shared with third parties, sold, or used for advertising, analytics, or training any model. It leaves your Mac only by an action you take on a specific item: exporting it, sharing it, or invoking an AI action after you have configured an endpoint. With a local model (Ollama, LM Studio, MLX) even that stays on the machine.

Screenshots are kept until you delete them. Settings → Storage → Auto-delete can remove them after 30 days, 90 days, or a year, and Settings → Screenshots → Max images caps how many are kept. Deleting a screenshot deletes both the database record and the PNG file.

Permissions

Browser extensions

The Gisti Web Clipper extension (Safari and Chromium browsers) follows the same rules as the app: no analytics, no tracking, no remote code. It reads a page only when you explicitly save it, and the extracted content goes to the Gisti app on the same Mac, via the browser's native messaging channel, never over the network.

This website

gisti.app is a static site on Cloudflare Pages. No analytics, no cookies, no fingerprinting, no external fonts or scripts. It remembers three things, all of them in your own browser's localStorage and none of them ever sent anywhere: your theme choice, which tab of the documentation sidebar you had open, and which steps of the getting-started path you ticked off.

If you write to hi@gisti.app – a bug report, a question, a note about how you use Gisti – your message sits in a normal mailbox and nothing about it is stored anywhere else: no mailing list, no ticket system, no analytics. Ask and it is deleted.

Closed source, open architecture

Gisti's source code is not public. Privacy is enforced by design rather than by audit: data is written only to the local database, network calls exist only for the purpose above, and telemetry mechanisms are not present in the code. There is no "I promise not to enable it"; there is nothing to enable.

Questions: hi@gisti.app.

Esc

Type to search every page of the manual.