Skip to main content
SpeakoFlow is local by default. There is no telemetry, no analytics, no account, and no “SpeakoFlow cloud.” The one service the developer runs is the feedback form, and it only receives what you choose to send. Your voice is transcribed on your own computer unless you pick a cloud speech service. The assistant contacts only the provider you chose: the built-in offline engine, a local server like Ollama or LM Studio, or a cloud provider with your own API key.

What leaves your device, and only when you set it up

Pick a local provider for the assistant and a local speech model, and the app never opens a connection beyond update checks, model downloads, and feedback you send yourself.

What stays on your device

Recordings and transcripts. Saved locally in the recordings folder, subject to your retention settings. You can delete them from the History page or open the folder from Settings → Privacy & data. Personal memory. Off by default. When on, stored entirely on your device in the settings file. The Assistant page under Memory lets you view, edit, export, or erase every note. Memory is advisory: it never overrides what you asked in the current message. It refuses to keep secrets, personal identifiers, or instruction-shaped text. History. Dictations, Flow generations, assistant conversations, and meetings are stored locally. Settings. All preferences stay on your device. Feedback drafts. A message you are writing in the feedback dialog, and the email you typed there, are kept on this device until you send them, so closing the dialog loses nothing.

Feedback you send

Feedback is the one thing that reaches the developer, and only when you press Send. The dialog shows exactly what goes:
  • The kind of feedback and your message.
  • Your email, only if you type one. It is used only to reply to you.
  • Up to three screenshots, only if you attach them. Each is shrunk and re-encoded first, which also strips hidden metadata such as a photo’s location.
  • The app version, operating system, processor type, and install type, only if Include app version and OS is ticked.
No logs, recordings, transcripts, settings, or identifiers are included. The report goes over HTTPS to feedback.speakoflow.com, a small service the developer runs on Cloudflare Workers. It becomes an issue in a private GitHub repository, with any screenshots stored as image files beside it. Your IP address is used only to limit how many reports one address can send a minute. It is not saved with the report or in the service’s logs, and it is never passed to GitHub. Reports are kept until the developer deletes them. To have yours deleted, send another message through the dialog asking for it, from the same email if you left one.

API keys

Provider API keys are stored in your operating system’s credential store: Windows Credential Manager, the macOS Keychain, or the Linux Secret Service, under the service name com.abhishekbarali.speakoflow. Keys are read into memory once at load and cached. The credential store is never hit in the hot path.
If the platform credential store is not available (a headless Linux box with no Secret Service, for example), the key stays in the settings file on disk in plain text. On such a machine, it is worth knowing.
API keys are never written to log files, in any build.

Log files

Release builds log only the length of transcripts and model replies, not their text. Settings contents (custom words, prompts, profiles, memory notes) are also suppressed. A log file you attach to a bug report does not contain what you said. See Debug & advanced.

Keyboard access

Global shortcuts observe your keyboard to detect the registered key combination. Nothing is logged or stored about what you type. On Linux, the handy-keys engine reads /dev/input/event* directly, which is why it needs your user in the input group. The Tauri engine (the default on Linux) uses the compositor’s global-shortcut API and reads nothing.

The full privacy policy

The complete privacy policy is in PRIVACY.md in the repository, versioned in Git so the full history is publicly visible.
Last modified on August 30, 2026