A tool that reads your selected text in every application has to be specific about what happens to that text. “We take privacy seriously” is not specific. This is.

On your Mac

Data Location Persisted
Prompt profiles ~/Library/Application Support/Promptshot/profiles.json Yes
Preferences ~/Library/Preferences/cc.promptshot.app.plist Yes
API keys macOS Keychain Yes, encrypted by the OS
Selected text Memory only No
Rewrite results Memory only No
Rewrite history Not recorded

There is no local history feature, and that is deliberate. A searchable archive of everything you have written in every app is a genuinely dangerous artefact to have sitting on a laptop, and the feature request for it comes up often enough that it is worth saying plainly: we are not going to build it.

In transit

On the hosted backend, the selected text goes to our endpoint over TLS 1.3, is forwarded to the model provider, and the response comes back. We do not write the request or response body to disk, and we do not log it. What we do log is a request record containing the timestamp, a licence identifier, the model used, token counts, and latency — enough to bill correctly and debug a slow region, and not enough to reconstruct anything you wrote.

If you use your own API key, requests go directly from your Mac to the provider and we see nothing at all — not even the request record above. If you use a local model, nothing leaves the machine.

The permission dialog

On first launch macOS asks you to grant Accessibility permission. This is the broadest permission on the platform, and being asked for it should make you cautious. It is required because reading the current selection and replacing it are both Accessibility APIs; there is no narrower permission that covers them.

You can verify what we do with it. The relevant behaviours:

  • We read AXSelectedText only in response to your hotkey, never on a timer or on focus change.
  • We subscribe to selection-change notifications to drive the menu-bar indicator. That subscription reports that a selection exists, not its contents.
  • We never enumerate window contents, read text you have not selected, or record keystrokes.

Little Snitch or lsof will confirm the network side of that. The hosted endpoint is the only host we contact during a rewrite, and idle Promptshot makes no requests beyond a daily licence check.

If you are evaluating this for a company with a real threat model, the honest recommendation is the bring-your-own-key or local backend. Not because the hosted path is untrustworthy, but because it removes us from the diagram entirely, and a smaller diagram is easier to approve.

Deletion

There is nothing to delete on our side that relates to your text, because there is nothing stored. To remove everything local:

rm -rf ~/Library/Application\ Support/Promptshot
defaults delete cc.promptshot.app
security delete-generic-password -s cc.promptshot.app

To remove the billing records associated with your licence, email support@promptshot.cc and we will delete the account and its request logs within seven days.

Why write this down

Because the alternative is a privacy policy, and privacy policies are written to be legally sufficient rather than checkable. The claims above are all things you can verify yourself with tools you already have, which is a more useful kind of assurance than a paragraph about how much we value your trust.

← All posts