Scratch

Privacy in the app

Scratch is local-first. Your buffers never leave your Mac. Scratch collects no off-machine telemetry — there is no analytics, no usage tracking, and no automatic crash reporting. The only outbound traffic the app makes is update checks.

For the legally binding statement, see the privacy policy. This page describes the same behavior in product terms.

What Scratch never sends

  • Buffer content. Not in diagnostic logs, not in update checks. The bitmap captured by capture text is processed locally and discarded. Rephrase with Apple Intelligence runs the model on your Mac — the buffer text never leaves the device.
  • Filenames or buffer titles.
  • Any field you type into the app.
  • An IP-derived profile or any identifier tied to your name or email.

Diagnostic logs — local only

Scratch keeps diagnostic logs on your Mac to make problems easier to track down. They are always on and never sent anywhere on their own.

  • Logs are rotating files under ~/Library/Application Support/Scratch/logs/.
  • They are kept for a set number of days, then deleted. Adjust the window with Settings → Privacy → Log retention (default 7 days).
  • Home-folder paths and email addresses are redacted before anything is written.
  • Buffer content is never logged.

Reporting a bug

Scratch sends nothing about itself on its own. To report a problem, email hello@austinblade.com with your Scratch version (Settings → About), your macOS version, and what you did versus what you expected. Attach a log file if it helps — Settings → Privacy → Open logs folder reveals them, and you can read them first.

See troubleshooting for what’s worth including.

Scratch is built by one person. Reports get read.

Update checks

When Settings → General → Check for updates is on (the default), Scratch checks downloads.bladeinstruments.com for new versions about thirty seconds after launch and every four hours after that. That host is a Cloudflare R2 bucket. Cloudflare receives standard HTTP request metadata — IP address, user-agent, the version of Scratch making the request — as the operator of the CDN. We don’t run analytics on it and don’t build a picture of who checked when. Turn the toggle off to stop background checks. You can still pull a check on demand from Help → Check for updates….

Turning it all off

If you want Scratch to make zero outbound network calls, turn off Settings → General → Check for updates. There is nothing else to configure — Scratch sends nothing on its own.

Where the local data lives

  • Buffers: ~/Library/Application Support/Scratch/buffers/ by default, or the folder you set in Settings → General → Buffer location
  • Settings: ~/Library/Application Support/Scratch/settings.json
  • Diagnostic logs: ~/Library/Application Support/Scratch/logs/ (rotating files, deleted after the retention window)

Delete any of these to reset that piece of state.