Tuna

Privacy and Local Processing

Tuna is built to keep your command input private by default.

In practice, that means Tuna’s servers are not meant to retain the content you are working with inside the launcher.

What Tuna Tries Not To Collect

Tuna does not intentionally collect:

  • search queries
  • clipboard contents
  • dictation transcripts
  • file contents

That is the basic privacy boundary to keep in mind.

Local Working Memory

Features like clipboard history and Shelf are part of Tuna’s local working memory on your Mac.

They exist so you can reuse things without pushing that content to Tuna’s servers.

Saved clipboard content is authenticated and encrypted at rest with a random key stored in macOS Keychain. This is defense in depth against direct reads of Tuna’s history files on an unlocked volume; FileVault alone does not provide that boundary after login. It is not protection from software that has compromised your Mac or user account and can access Tuna’s memory or Keychain. The encrypted database still exposes limited metadata, including entry count, approximate sizes, identifiers, and capture times. Migration removes Tuna’s old plaintext files and SQLite sidecars, but neither Tuna nor macOS can promise secure erasure from SSD storage or backups.

See Clipboard History and Shelf for the workflow side of that.

Talk Mode

Talk Mode is designed around local-first transcription paths.

The key idea is that dictation should feel like a way to feed text into Tuna without turning your speech into a cloud workflow by default.

Networked Features Still Exist

Some Tuna features naturally involve the network.

Examples include:

  • app downloads and update checks
  • purchases and license activation
  • optional app telemetry and app crash/error reporting when telemetry sharing is enabled
  • extensions that connect to outside services
  • user-configured remote AI providers for prompts or dictation post-processing

When you use those features, the relevant service still has to handle that request.

Remote searches such as GIPHY send the query and interaction analytics directly to the provider; Tuna’s service does not receive them. Check an extension’s setup and privacy notes before enabling it.

For brokered OAuth connections such as Notion and Spotify, Tuna’s server temporarily holds the OAuth session and returned access or refresh tokens so the app can complete the secret-backed exchange. Sessions expire 15 minutes after creation and cannot be retrieved after expiry. The app retrieves completed credentials once with a separate bearer token, after which the server removes the session and the app stores the credentials in macOS Keychain. Unretrieved expired sessions are deleted by a cleanup job scheduled every five minutes; they may remain stored beyond expiry if the job has not run or is delayed. Later Spotify token refreshes also pass the saved refresh token through Tuna’s server to Spotify because Spotify requires a client secret.

So the right way to think about Tuna privacy is not “nothing ever touches the network.” It is “your command content is not the thing Tuna is trying to collect.”

For AI prompts, Apple/on-device providers run locally when available, localhost presets talk to the server you run on your Mac, and remote endpoints receive the prompt input you choose to send.

Practical Rule Of Thumb

If you are choosing between Tuna features, the private path is usually the one that keeps the work inside:

  • local search
  • local text handling
  • local clipboard history
  • local dictation engines

If you need the legal version of this, read the Privacy Policy.