This covers the ScrinkleScribe application on Windows and macOS, and this website. Every factual claim below was checked against the source it describes.
The short version
ScrinkleScribe turns your speech into text on your own computer. There is no account. There is no analytics, no crash reporting and no update check. Transcription runs on a model on your disk, on both platforms, in every configuration. No speech of yours is ever sent anywhere.
Three things do leave your machine, and each is listed in full below: a license check, the downloads that install the app, and one optional feature that is off by default and sends the text of your dictations to a provider you choose.
What stays on your computer
Your audio. Captured while you hold the hotkey, transcribed locally, then discarded, with one exception you control. While dictation history is switched on, the app saves the most recent recording as last_recording.wav, overwritten by the next dictation, and keeps a copy of recordings shorter than 3 seconds in a short_clips folder, newest 20 only. Those exist because short misheard commands were impossible to diagnose without them. Setting history retention to 0 stops both from being written at all.
Your transcripts, in history.jsonl, one line per dictation. Each line holds the time, the dictation mode, the name of the application the text was sent to, what the speech model heard, the cleaned text that was typed, the length in seconds, a confidence score, the name and sample rate of the microphone, and for a voice command the number of characters that were selected. Kept for 30 days by default; you can change that or set it to 0 to keep nothing.
Your settings, in config.json.
Your license key, and an API key if you add one, in your operating system's own protected store: Windows Data Protection (DPAPI) files on Windows, the Keychain on macOS. They are bound to your user account and that machine, so a copy taken elsewhere cannot be read.
A diagnostic log, scrinklescribe.log, which rotates at 2 MB and keeps one previous file. It is timings, device names and counts. When the app fits a dictation to the sentence you are in, it records how many characters it found either side of your cursor, and whether you were mid-sentence, not the text itself. If a modifier key gets stuck, the log names the key involved. The app does not log what you type, and it does not log what you dictate.
One exception, on macOS only, and it is being removed: a transcript the app refused as too doubtful is still written to that platform's log so the refusal can be explained. On Windows it is not; the log records the length and nothing else.
"Delete dictation history now" in the menu deletes the history file, the saved recording and the short clips together. It does not clear the log file (scrinklescribe.log or the one rotated copy beside it). On Windows that no longer matters for your words, because nothing you dictated is written there; on macOS, until the exception above is removed, a refused transcript can survive the button. Either way, if you want the log gone, delete it yourself; it is in the same folder. We would rather say so than let the button imply more than it does.
Everything in this section is on your disk and none of it is sent to us. Uninstalling the app and deleting its folder removes all of it.
What the app reads while you dictate
A small amount of text around your cursor. To make a dictation continue the sentence you are already in (capitalization, spacing, whether you were mid-sentence) the app reads the text next to your cursor through the operating system's own accessibility interfaces (UI Automation on Windows, the Accessibility API on macOS). At most 60 characters before the cursor can be passed to the cleanup step, never more than the length of what you just dictated, trimmed to a word boundary, and nothing at all for short dictations. The same reading is used to check that a voice undo would remove your dictation rather than your own typing.
If you are using a local cleanup engine, which is the default, that text never leaves your machine. If you have switched on the online cleanup engine, it is sent to your provider along with the dictation (see below).
Your keyboard, for the hotkey only. Push-to-talk needs to see a key being held, so the app installs a system-wide keyboard hook on Windows and an event tap on macOS, and macOS will ask you to grant Accessibility permission for it. It watches for the hotkey and for stuck modifier keys. It does not record, store or transmit what you type.
Your clipboard, when it pastes. Some applications can only be typed into by pasting. When the app does that it takes a snapshot of your clipboard first (text, images, copied files, formatting) and puts it back afterwards. One feature deliberately leaves the dictation on the clipboard, because that is what it is for.
Your microphone, only while you are dictating. Not before, and not on a dictation the app refuses. You can revoke microphone access at any time in your system settings.
Every network request
1. The license check: three calls, and only three
Our payment provider, Polar, issues and checks license keys. The app talks to Polar directly:
| When | What is sent |
|---|---|
| You activate a key on a computer | The license key, our organization id, and a device label: your computer's name and operating system |
| Each time you start the app | The license key, our organization id, and the activation id Polar gave back |
| You choose Deactivate | The license key, our organization id, and the activation id |
No audio and no text is sent with any of them. The device label is deliberately your computer's name and nothing derived from your hardware (no serial number, no MAC address), and you see that label in Polar's own portal when choosing which computer to free. Each request also carries the app's version number in its user-agent header, and, like any web request, lets Polar see your IP address.
The check runs once when the app starts, on a background thread. There is no repeated polling. If Polar cannot be reached, the app keeps working for 14 days on its last successful check.
2. Installing the app, and the models
Installation and first run download what the app needs. These are one-time and they are not us collecting anything, but each one shows your IP address to the host it fetches from:
- the
uvinstaller and the llama.cpp binaries, from GitHub - the Python packages the app runs on, and the CUDA runtime on an NVIDIA machine, from PyPI
- the speech model, and on macOS the local cleanup model, from the model host (Hugging Face)
After that the app works with no internet connection at all, apart from the license check.
The Windows installer also suggests LM Studio as a way to run the cleanup model. That is separate software by another company, under its own terms, and nothing about it is covered by this policy.
3. The online cleanup engine: off by default, and the one real exception
ScrinkleScribe cleans up a raw transcript (punctuation, filler words, capitalization) and that step can run either on your machine or through an online AI provider. The local engine is the default. If you choose the online engine:
- the text of every dictation is sent to the provider you picked, over the internet, and so is the short piece of text at your cursor described above. Those are your words leaving your machine.
- it uses your own API key with your own account at that provider. The request goes from your computer to them. It does not pass through us, we never see it, and we have no key or account there.
- your audio is still never sent. Transcription stays local in every configuration.
- what the provider does with your text is governed by their policy, not ours. They may log it or retain it. Read their terms; we cannot promise anything on their behalf.
Nothing is sent until you have chosen that engine, supplied your own key and confirmed a dialog that says what will be sent and to whom, on both platforms, once per provider. Switching back to a local engine stops it immediately, and the on-screen pill tells you which engine cleaned each dictation.
What there is none of
No analytics. No telemetry. No crash reporting. No update check: the app never contacts us to ask whether a new version exists, which also means it cannot tell you when one does. No account, and no sign-in of any kind.
Buying a license
Polar is our merchant of record. When you buy, Polar collects your name, email, billing details and payment information to take the order and charge the right tax, under its own privacy policy. We receive your name, your email address and what you bought, so we can deliver your key and support you. We never see your card number.
We use your email address for your order, your license and support. We do not sell or share your personal data.
The website
This website serves static pages. There is no analytics script, no advertising pixel and no cookies, so there is no consent banner to click. Whoever hosts the files keeps ordinary server logs. Buy buttons take you to Polar's own checkout page, which is covered by Polar's privacy policy. If any of that ever changes, this paragraph changes with it.
Support email
If you email support, we keep the email so we can answer it and recognize you if you write again. Ask and we will delete it.
Your data and your rights
Nearly everything of yours exists only on your own computer, which makes most of this simple: delete it in the app, or uninstall and delete the folder. For the two things that exist elsewhere, your purchase record and any support email, write to support@scrinklescribe.com and we will tell you what we hold, send you a copy, or delete it. Some order records have to be kept for tax and legal reasons. Depending on where you live you may have further rights under laws such as the GDPR or the CCPA, and we will honor them.
Children
ScrinkleScribe is a tool for work. It is not directed at children under 13 and we do not knowingly collect their personal data.
Changes
If this policy changes we will post the new version on this page and update the effective date. If a change ever affects what leaves your machine, the app will tell you before it takes effect.
Contact
Scrinkle Labs, support@scrinklescribe.com