InkSpoke is offline-first, but "offline-first" is a design stance, not a promise that the app never opens a socket. This guide draws the line precisely, because a vague privacy claim is worse than none.
The dictation pipeline
This is the part most people mean when they ask whether InkSpoke is local. If you select an on-device speech model and an on-device refinement model, then your audio and the resulting text never leave your machine. Transcription runs through Whisper locally; refinement runs through a local model. Nothing is uploaded, and the feature works with your network cable unplugged.
If you select a cloud speech model or a cloud refinement model — including the built-in InkSpoke option — then the relevant audio or text is sent to that provider for that request. That is the entire trade: accuracy and speed in exchange for the data leaving the device.
What contacts the network regardless
Two things happen at every launch that are not covered by your model choice, and there is currently no setting to turn either off:
| On launch | What is sent | Can you disable it? |
|---|---|---|
| Device registration | A device fingerprint derived from a stable hardware ID, plus the platform name | No — it runs before sign-in, and only skips once a device key is already cached |
| Update check | A version query to the update feed | No in-app toggle |
Telemetry and crash reporting
There is none. InkSpoke ships no analytics, product-telemetry, or automatic crash-reporting library at all — there is no usage endpoint on the platform for one to call. Application logs are written to local files and stay there until you choose to send a diagnostic report.
What is written to disk
Your settings, and a local SQLite database holding dictation history, workspaces, vocabulary, and voice commands:
| Platform | Location |
|---|---|
| Windows | %APPDATA%\InkSpoke\ |
| macOS | ~/Library/Application Support/InkSpoke/ |
| Linux | ~/.config/InkSpoke/ |
API keys are the exception — they are never written to the settings file in readable form. How they are protected differs by platform, and the differences are worth knowing:
| Platform | How keys are protected |
|---|---|
| macOS | The system Keychain |
| Windows | An encrypted file, using the OS data-protection API tied to your user account |
| Linux | The Secret Service keyring, via secret-tool |
Verifying it yourself
Don't take our word for it. Point a network monitor at the app and dictate:
- 01Pick on-device modelsChoose a local Whisper model for speech and a local model for refinement, so nothing in the pipeline is expected to leave.
- 02Start a monitorLittle Snitch or LuLu on macOS, the Windows Resource Monitor network tab, or
ss -tp/ Wireshark on Linux. - 03Dictate a few sentencesYou should see no outbound traffic during transcription or refinement.
- 04Restart the app and watch againNow you will see the device registration and update check described above. That is expected, and it is the honest limit of the offline claim.