BlogPrivacyWhat we keep, and what we do not
PrivacyAugust 1, 20267 min read

What we keep, and what we do not

A plain account of every place InkSpoke writes your words down, every place it sends them, and the two things it does on the network whether you like it or not.

Privacy copy in this industry tends toward the absolute. "Nothing ever leaves your device." "Zero network calls." Those sentences are easy to write and hard to keep, and a user with a packet sniffer can check them in about thirty seconds.

So here is the unglamorous version for InkSpoke: what is stored, what is sent, and where the edges are.

The dictation pipeline

If you select an on-device speech model and an on-device refinement model, dictation is genuinely local. Audio is captured, transcribed and rewritten on your machine. Unplug the network and it keeps working.

Choose a cloud model for either step and that step is a network request — your audio, or your transcript, goes to that provider. There is no third state. The important detail is that the decision is made from the model that actually resolves at request time, not from what is written in your settings file, because on a fresh install an unset model still resolves to a cloud default.

What gets written down

Every dictation is saved to a local database: the raw transcript, the refined text, and a compressed copy of the audio. That last one surprises people, so it is worth stating clearly — audio is retained for every dictation, and there is currently no switch to prevent it.

!
Retention defaults to no limit. History accumulates until you set a window under Settings → General, or clear it. If that is not what you want, it is a two-minute fix — but you have to know to make it.

History never syncs. It is not in the set of things cloud sync carries, and the History page says so on its face. It stays on the machine that produced it.

The two calls we make anyway

At every launch, regardless of which models you picked, InkSpoke does two things on the network:

  • Registers the device — a fingerprint derived from a stable hardware ID, plus the platform name. This happens before you sign in, and it is how a device gets an API key at all.
  • Checks for an update.

Neither has an in-app off switch today. We would rather write that down than let you find it yourself and reasonably conclude the rest of the page was written the same way.

If you need a genuinely air-gapped install, the honest instruction is to block the app at your firewall. Dictation with on-device models is unaffected.

Telemetry

There is none. No analytics library, no product-telemetry library, no automatic crash reporting — there is no usage endpoint on our platform for one of them to call. Logs are written to local files and stay there.

Diagnostic reports are the one exception, and they only move when you press the button. They are also deliberately limited to warning-level logs and above. That limit is not a nicety — the dictation pipeline logs your transcription at info level, so shipping info logs would ship everything you had said. The restriction is enforced in the collector rather than left to a filter.

What "encrypted sync" actually covers

Private Sync encrypts your content on your machine with a key we never receive, and it is available on every plan. It covers workspace entry content, your personal context and vocabulary, command parameters and app aliases.

It does not cover workspace names, tags, or entry titles. Those sync as plain text because the website renders them and the server matches on them. Hands-Free spoken phrases are also plaintext, and that one is a deliberate trade rather than an oversight: entries are addressed by an unkeyed hash of the phrase, so encrypting something as guessable as "open chrome" would not survive contact with a wordlist. We would rather label it readable than imply a protection a dictionary attack removes.

The practical rule: secrets belong in an entry body, not in a workspace name or an entry title.

Why write this down

Because the alternative is worse. A privacy claim that a user disproves in half a minute costs more than the claim ever bought, and it makes every accurate statement next to it look like marketing. The boundary above is less impressive than "zero network calls". It has the advantage of being true.


Keep reading

More from the notebook.