Legal

Privacy Policy

Last updated: 5 October 2026

Blurt is a macOS menu-bar dictation app. You hold your configured push-to-talk key, speak, and Blurt transcribes your voice, lightly formats the text, and types it into your active app. Where your audio is processed depends on which mode you use. This policy explains each one, what is stored, and who we share data with. It is written to match what the software actually does — please read the mode that applies to you.

1. Who we are

"Blurt", "we", and "us" refers to the maker of the Blurt app. The controller within the meaning of Art. 4(7) GDPR — the same person named in our Impressum — is:

Ivan Chabanenko
Lutherstraße 12
39112 Magdeburg
Deutschland / Germany
Email: support-blurt@chbnk.one

Blurt is run by an individual (Einzelunternehmen) and is not required to appoint a data protection officer. For dictation processed by ready, selected local speech and clean-up models, Blurt does not receive your audio or text, and you control the data on your device. For the managed Cloud plan, where audio passes through our server, Blurt is the data controller for that processing and the providers listed below act as our processors under Art. 28 GDPR.

2. The two modes — and where your voice goes

Blurt can transcribe your speech in two different ways. The mode in effect depends on your Mac and your settings.

2a. On-device (default on Apple Silicon)

Fully local dictation requires both speech and clean-up models to be installed and selected. In Blurt 0.3.27 and later, On-device mode never switches to cloud processing automatically. When both stages run locally, your dictation audio and text stay on your Mac. Local models are downloaded on demand to your Application Support folder. Versions before 0.3.27 could send transcripts to cloud clean-up when a local model was unavailable; update Blurt to use the explicit On-device mode.

That download is the one moment this mode uses the network, so here is who sees it. Blurt asks our own mirror first and falls back to Hugging Face, where the model files are published; whichever of the two serves the file sees the request your Mac makes for it, including your IP address, as any file download does. As this is written on 1 September 2026 the mirror is not switched on — it is described in the Cloudflare row of our processor list — so in practice the file comes from Hugging Face. Hugging Face is not our processor and is not on that list: it publishes the model to everyone, not to us on our instructions, and is an independent controller of its own server logs. Nothing of yours travels in that request — it asks for a file, and it is the same file for everybody who asks.

2b. Managed Cloud (Blurt Pro)

With the paid Cloud plan, Blurt handles transcription for you using our own keys. In this mode your audio is uploaded over TLS to Blurt's backend at api.blurt.me, which relays it to a third-party speech-to-text provider using Blurt's server-held keys. Which provider that is depends on the model you pick in the app:

The provider returns a transcript, which our backend returns to your Mac. Our backend relays the audio and does not store the audio file after the request completes. However, on this plan your audio and the resulting transcript do pass through Blurt's server and the third-party provider named above. We do not use your audio or transcripts to train any model, we do not authorise our providers to do so either, and we do not sell them. This plan requires an account (see Accounts & stored data).

On the Cloud plan, the resulting transcript text is then sent over TLS to a language-model provider to clean up filler words and punctuation, apply your chosen writing style, carry out spoken edit commands, and — if you use the Translate feature — translate it. That provider receives the transcript text only, not your audio, and returns the polished text to your Mac:

In Blurt 0.3.27 and later, On-device mode keeps formatting local. If a required model is missing, Blurt asks you to download it; it does not send the transcript to cloud clean-up automatically.

3. Processors we use

Depending on the mode and features you use, we rely on the following providers to deliver the service. Most of them are processors acting on our instructions under Art. 28 GDPR — Blurt is the controller, and they do not decide on their own what to do with your data. Not every entry below is that, and the ones that are not say so in their own words rather than hiding under this sentence: the sign-in providers, which are independent controllers for their own sign-in service, and our support mailbox, for which no processing agreement exists. We share only what each one needs for its function. We do not authorise any of them to use your content to train their models, and we do not sell your data.

Correction, 1 September 2026. Until this date the list below, and the processor page it points to, left out two companies that do receive personal data: Cloudflare, which holds the off-site copy of our database, routes our support mail and runs the panel we read tickets in, and Google, whose mailbox that support mail is delivered into. Both were already in use — nothing about where your data goes changed on this date, only what we tell you about it. They are named below and on the processor page now. The change log there records what was missing and for how long.

The table itself — what each provider receives, where it is located, and the transfer mechanism — is on our list of processors, which also carries the date of the last change and our promise to announce new providers normally 30 days in advance — and, where a failure or a security problem forces a faster swap, to update the list without delay and say why.

4. International transfers

Our servers and database are in Germany (Hetzner). Most of the processors listed above are, however, established in the United States and process the data they receive there or in other countries outside the European Economic Area. That means your dictation audio or transcript leaves the EEA whenever you use the managed Cloud plan.

Some of it leaves the EEA even if you never use that plan, and this policy said nothing about it until 1 September 2026. Your account lives in a database that is copied to off-site backup storage at Cloudflare once a day; a message you send to our support address is routed by Cloudflare and lands in a Google mailbox. Neither depends on which mode you dictate in — an on-device user with an account is in that backup like everyone else. The mechanism for the Cloudflare transfer is the one described below; for the support mailbox there is none, which the processor page states rather than covers up.

For each such transfer we rely on one of the two mechanisms the GDPR provides:

The United States does not offer a level of protection identical to the EEA: in particular, US authorities may have access rights that have no equivalent under EU law, and the enforcement routes available to you differ. We tell you this plainly rather than burying it. To keep dictation content on your Mac, install and select both local speech and clean-up models and check that the app shows both stages as local. Account and other service data described in this policy are separate from dictation content.

Which mechanism applies to a specific provider, and a copy of the clauses where we are allowed to share them, is available on request: email support-blurt@chbnk.one and we will answer in writing.

5. On-device dictation history

By default, Blurt keeps a history of your dictations on your Mac so you can review and re-copy past results. This history is stored locally on your device (using SwiftData, under ~/Library/Application Support). It holds up to the most recent 1,000 entries, and each entry includes the raw transcript, the cleaned-up text, the name of the app you dictated into, and a timestamp.

This history is stored unencrypted on your Mac and persists after you quit Blurt until it is cleared or rolls over past 1,000 entries. It stays on your device — Blurt does not upload your history. Because dictation can include sensitive content, you can control it:

Before you sign in, and if you never do. Blurt keeps this history — together with your Workspace documents and their edit history, your dictation statistics and your personal dictionary — on your Mac, filed under no account. The first time an account signs in on a Mac where no account had signed in before, Blurt copies these into that account's own storage on the same Mac, once. Signing in uploads none of it; the copy adds to what the account already has on that Mac and replaces nothing, the statistics are copied only if the account has none there yet, and the no-account copy stays where it was. An account that signs in on that Mac later receives none of it. Your settings — language, dictation key, microphone, models, appearance — are stored on the Mac, not in an account, and signing in does not change them.

6. Accounts & stored data

On-device dictation needs no account. An account — free, with a confirmed email address — is needed for the managed Cloud plan, both for its free cloud words and for Blurt Pro. The app asks you to sign in when you use the cloud, and you can also sign in from the first screen of its setup. Once you have an account, our backend (a PostgreSQL database, hosted in Germany) stores the following, depending on how you sign up and use the service:

We include no third-party analytics, tracking or crash-reporting SDKs in the app or on this website — no Google Analytics, no Firebase, no Sentry, no advertising or attribution kit, and our marketing and legal pages load no third-party resources. Checkout loads Stripe’s payment library and embedded payment fields directly from Stripe. That sentence is about other companies, and read on its own it would leave you with the wrong impression, so here is the other half plainly: Blurt does collect usage analytics and crash reports of its own. Both are off unless you switch them on, both are governed by the same single switch, neither contains any text or audio, and both are described in full in Section 7 — including that, with your yes and while you are signed in, the usage counts are linked to your account identifier (7c); crash reports never are. This website counts its visits with analytics we run ourselves, without cookies and without anything stored on your device — see Section 6f. And if you subscribe, the payments of your subscription are recorded in that same analytics of ours under your account identifier — never your name, email or card — and erased with your account: Section 6g.

6a. Connection metadata

When your app or browser connects to our backend, we process standard connection metadata — your IP address and User-Agent — server-side to operate the service securely and to prevent fraud and abuse (for example, rate-limiting). The website's static pages are served without request logging by our web server; how visits to them are counted is in Section 6f.

6b. Lawful basis (GDPR)

Where GDPR applies, we rely on:

We do not rely on consent for dictation. The macOS microphone permission is a system permission granted to the app on your own Mac — it is not a GDPR consent, and withdrawing it stops the app from recording rather than changing our legal basis. Where we ever do ask for consent for something optional, you may withdraw it at any time with effect for the future (Art. 7(3) GDPR), without affecting the lawfulness of what happened before.

6c. Is providing data required?

Providing an email address is a contractual requirement for an account: without a confirmed email address we cannot create the account, let you use the managed Cloud plan or its free cloud words, bill you, or send you the statutory contract confirmation. You are under no obligation to provide it — the consequence of not doing so is that you can use Blurt on-device only. Dictation content stays on your Mac only when speech and clean-up both run locally. In Blurt 0.3.27 and later, selecting On-device prevents automatic cloud fallback. Earlier versions could use cloud clean-up when the local model was unavailable.

6d. No automated decision-making

We do not carry out automated decision-making, including profiling, that produces legal effects concerning you or similarly significantly affects you within the meaning of Art. 22 GDPR. The AI models Blurt uses transcribe and tidy your words; they do not evaluate, score or decide anything about you.

6e. Retention

6f. Counting visits to this website

We count how this website is used with OpenFrog, analytics software we run ourselves on our own server at Hetzner in Germany — the same machine that serves these pages. Your browser loads it from blurt.me and sends to blurt.me; no analytics company is involved, nothing is shared with anyone else, and nothing is used for advertising. No cookies, no local storage and no similar technology are stored on or read from your device, so there is nothing to accept.

What is recorded: the page visited (its address without anything after ? or #, except utm_* campaign tags, and its title), the referring site, browser and operating-system family, device type, and the country your connection comes from — plus these steps, each with nothing more than what is listed: a Download button pressed (which one), the Pro button on the pricing page pressed (monthly or yearly), and on checkout the payment form shown, submitted, completed or failed (the plan, whether it is the free trial or a paid start, and for a failure the kind of error Stripe or the network reported — never its message). Nothing you type into the payment form, no email address, no name and no account identifier is recorded, and the visits are not linked to your Blurt account.

Your IP address is not stored. While a visit is being counted our server uses it for two things and then drops it. It looks up the country the address belongs to in a database file kept on that same server (IP Geolocation by DB-IP, licensed CC BY 4.0) — no one is asked, your address goes nowhere else, and only the country is kept: no region, no city. And to group the pages of one visit, OpenFrog computes a hash of your IP address and browser identifier with a key that changes every day and is deleted after two days at most; after that a visit cannot be traced to you or linked to visits on other days. The counts are kept for 25 months; like the rest of our data, they are copied to our off-site backup (Cloudflare R2, see Section 3), where a copy lasts at most 14 days.

Lawful basis: our legitimate interest in knowing whether the site and checkout work (Art. 6(1)(f) GDPR). You may object at any time (Art. 21 GDPR) by writing to the address in Section 14; a content blocker that blocks /of/ on this site stops the counting in your browser altogether, and the site works the same without it.

6g. Payment events of a subscription

If you subscribe to Blurt Pro, our server records the payments of that subscription in the same analytics software, OpenFrog, on our own server at Hetzner in Germany. Nothing happens in your browser or in the app for this: Stripe tells our server about a payment, and our server writes it down. It goes from our server to OpenFrog through blurt.me, on the same machine, and through no other company; nothing is shared with anyone and nothing is used for advertising.

What is recorded, and nothing else: that a subscription started (after the free trial, or at once), renewed, ended, that a charge failed, or that money was refunded — each with the plan (monthly or yearly), the amount in euros, whether it began with the free trial, for a failed charge which attempt it was, and for an ended subscription the kind of reason Stripe reports (cancelled by you, payment failed, disputed, or another of Stripe's fixed categories). Each event is filed under your Blurt account identifier, a random code, so that the payments of one subscription can be told apart from another's. Your name, email address, card or billing address, Stripe's identifiers and anything you typed when you cancelled are never recorded. These events are not combined with your visits to this website, which are not linked to your account (6f). They are combined with the app's usage counts only if you said yes to those and are signed in (7c) — withdrawing that yes erases the usage counts, not these. No decision about you is taken on them.

Lawful basis: our legitimate interest in knowing what the service earns, how many subscriptions continue, and why they end (Art. 6(1)(f) GDPR). You may object at any time (Art. 21 GDPR) by writing to the address in Section 14. They are kept for 25 months and then deleted automatically. When you delete your account, they are erased with it: our server asks OpenFrog to delete everything filed under your account identifier, and payments Stripe reports after the deletion are no longer recorded. Copies in our off-site backup (Cloudflare R2, see Section 3) last at most 14 days. Your invoices and payment records themselves are a different matter: they stay with Stripe and in our billing records for as long as tax law requires (6e).

7. Usage analytics and crash reports — optional, and off unless you switch them on

Blurt can send us two kinds of diagnostics: counts of how the app is used, so that we can see which features earn their place, where dictation is failing people and what leads people to subscribe, and a report when Blurt itself crashes, so that a fault which hits people in Berlin is something we find out about rather than something we hear about when they leave. Both are off until you say yes. We ask once, in the app; if you say no, we do not ask again, and nothing about Blurt behaves differently either way.

One switch governs both. That is deliberate: two switches would mean two consents to keep in step, two paragraphs here, and eventually a difference between what one of them says and what the app does. The ask in the app names both, the row in Settings names both, and turning it off turns both off. Sections 7a and 7c–7e below are about the usage counts; Section 7f is about the crash reports and says everything that is true of them, including where they go. Section 7b — what is never sent — and Section 7d — the lawful basis and how to withdraw — apply to both.

What changed after Blurt 0.3.31. Up to version 0.3.31 the usage counts went to our own backend database, were never linked to your account and were deleted after 90 days. Later versions send them to OpenFrog, the analytics software we run ourselves on the same server (7e), and — while you are signed in — link them to your Blurt account (7c). Because that is not what anyone agreed to before, a later version asks again anyone who had said yes, and collects nothing from them until they answer. If you said no, you are not asked again. What 0.3.31 and earlier sent stays as it was described then: in our own database, not linked to your account, deleted 90 days after we received it, and erasable as 7d says.

7a. Exactly what is sent

Counters, drawn from a fixed list. Every event name, every property and every property value is a token from that list, built into the app — there is no field in the app's events in which a sentence could be carried even by mistake. The complete list is:

Each event also carries: the random identifier this install generated for itself (see 7c), the app's version and build number, macOS as major.minor only — never the patch level, your interface language, your plan tier (free / trial / Pro) and your Mac's processor architecture. Our server adds the country your connection comes from, looked up as it is for this website's visits (6f): in a database file on the same server, your IP address going nowhere and not kept. While you are signed in, one further event links the install identifier to your account identifier (7c).

7b. What is never sent — in either kind of report

Nothing you dictate. No audio, no transcript, no cleaned-up text; no personal word rules; no Workspace document titles or contents; no names of the apps or windows you dictate into; no file names; no microphone name; no clipboard contents; not even which keys you use for push-to-talk (only that you changed them).

This applies to a crash report exactly as it applies to a usage count, and it is worth saying how, because a crash report is the place where such things usually leak. Nothing in one is free text: every value is either a number or a name drawn from a fixed alphabet. The one line a crash report would most obviously want — the error message the system prints, which on macOS often quotes the object that went wrong — is deliberately dropped in full, because it is assembled from arbitrary values and one of those could be something you said. Stack frames name functions in Blurt's own code; frames from macOS or from any other application are discarded, and no file path from your Mac is ever included, so your home folder and your user name cannot appear.

No email address and no name, ever. Your account identifier — the random code of 6g, not your email — appears in the usage counts only as 7c describes: while you are signed in, and only because you said yes to exactly that. A crash report never carries it. Your IP address reaches our server because every internet connection does; it is used to look up the country (7a) and to rate-limit, and is never written down.

7c. The identifier, and the link to your account

A random UUID the app generates on your Mac at the moment you switch analytics on. It is not your account identifier, not the per-Mac identifier behind the free-trial device marker described in Section 6, and not derived from either. Switching analytics off destroys it; switching it back on later creates a brand-new one, so it cannot follow you across a change of mind.

While you are signed in, it is linked to your account. The app sends one event saying "this install identifier belongs to this account identifier", once per install and account. From then on everything that identifier sent — including counts from before you signed in — and the payment events of your subscription (6g) are one record in our analytics, which is what lets us see, for example, whether people whose first dictations failed went on to subscribe. Nobody's name or email is in that record, and no decision about you is taken on it. When you sign out, the app starts a new identifier, linked to nobody until someone signs in — so what happens on this Mac afterwards is not filed under your account. The identifiers used before a sign-out are remembered on your Mac for one purpose only: so that withdrawing (7d) erases what they sent too.

A crash report does not carry any of this, or any other identifier. Not the UUID above, not your account, not your device — nothing. Two crashes from the same Mac are not knowable as the same Mac. That is why 7f says a crash report cannot be looked up or erased individually: there is no identifier in it to look one up by.

7d. Lawful basis, and how to withdraw

Consent — Art. 6(1)(a) GDPR, together with § 25 Abs. 1 TDDDG for storing that identifier, and for writing a crash report, on your own device. Nothing is collected before you agree. You may withdraw at any time with effect for the future (Art. 7(3) GDPR) in Settings › Data & Privacy › Usage analytics and crash reports — the same one click it took to give, which is what the law asks of us and what we would want anyway.

Withdrawing also deletes what was already sent: the app asks our server to erase everything recorded under every identifier it used while you had said yes — including those from before a sign-out — and the link of each to your account, then destroys the identifiers. If our server cannot be reached at that moment, the app keeps asking, at every launch, until it can. The payment events of your subscription (6g) are not usage counts and are not erased by this; they go with your account. The same erasure is available on its own, as Erase sent data, if you want the record removed but would like to keep helping; you then continue under a new identifier.

For crash reports, withdrawing does two things at once. Blurt stops watching for crashes — the handlers come off, so nothing is written even to your own disk — and any report still waiting on your Mac is deleted, rather than merely left unsent against the day you might change your mind. What was already sent has no identifier attached to it (7c), so there is nothing to look up and nothing left that is about you.

7e. Where the usage counts go, and how long they are kept

To OpenFrog, analytics software we run ourselves on our own server at Hetzner in Germany — the same software and the same machine as this website's visit counts (6f) and the payment events (6g). The app sends to blurt.me, which hands the events to OpenFrog on that same machine. No analytics company is involved at any point: no Google Analytics, no Firebase, no Sentry, no Amplitude, no advertising or attribution SDK of any kind, and switching this feature on engages no new provider.

The events are kept for 25 months and then deleted automatically — or earlier, when you withdraw or press Erase sent data (7d), or delete your account, which erases them together with the payment events filed under it. Like every other part of our data they are copied to our off-site backup (Cloudflare R2, see Section 3), where a copy lasts at most 14 days. The request to erase them passes through Cloudflare's network on its way to OpenFrog on our server; it carries the install identifier and nothing else.

Blurt 0.3.31 and earlier sent the same counts to our own backend in Germany instead — the same server and PostgreSQL database as the rest of the service — not linked to any account. There, individual events are deleted automatically 90 days after we receive them; before they go, each day is folded into a plain daily total — how many times each event happened that day, and how many installs were seen — which carries no identifier of any kind and is kept as an anonymous statistic.

Correction, 1 September 2026 (about that database). Until this date the paragraph about it read "there is no third party in this at all", and said the feature adds nobody to our list of processors. The second half is right and stands. The first half went a step too far: these rows sit in the same database as everything else, and that database is copied to off-site backup storage at Cloudflare once a day, so a third party does hold a copy of them — for the ordinary reason every other row is copied, and on the terms now set out on the processor list. What the sentence was reaching for is true and is what it now says: nobody but us processes your usage counts as analytics.

7f. Crash reports

Nothing is sent at the moment of a crash. A program that has just failed is the last program that should be opening a network connection, so Blurt does not. It writes a few hundred bytes to a file on your own Mac and lets itself close. The next time you start Blurt, that file is sent and then deleted. If it cannot be sent — you are offline, or our server is down — it waits, for at most 14 days and never more than five reports at a time, and is then deleted unsent.

Here is the whole of what one contains. Not a summary of it — the whole of it:

There is no sixth item and there is no field for one. In particular there is no message and no reason: the human-readable line macOS prints when an app crashes is assembled from whatever objects were involved, and one of those could hold something you dictated, so it is dropped in full rather than filtered. It is the single most useful line in a crash report and we do not take it. There is also no identifier of any kind — not your account, not your device, not even the random analytics identifier from 7c — and no IP address is recorded with it.

Where it goes. The app sends it to our own backend in Germany, the same server everything else in this policy goes to. Our backend then forwards it to our own crash panel — the same place our server's own faults are recorded and counted, which is what lets us see "this broke forty times today" instead of guessing. That panel runs on Cloudflare's Workers platform, so we will say plainly what does and does not travel that last hop: what reaches the panel is the list above and nothing else, it arrives from our server rather than from your Mac — so the connection carries our server's address, never yours — and it carries no identifier, so nothing that arrives there can be connected to you, to your account or to your Mac, by us or by anybody. No personal data of yours travels that hop.

How long. In the panel, an individual crash event is deleted once it is 14 days old — the panel clears out what has aged past that each time a new report reaches it. What remains after that is the group it belonged to: a crash class, the place in our code, and how many times it has been seen — a running total with no identifier in it, kept as an anonymous statistic.

Withdrawing. See 7d. Turning the switch off stops Blurt watching for crashes at all, and deletes any report still waiting on your Mac. There is no way to erase an individual crash report after it has been sent, and no way for us to find yours among the others, for the reason given in 7c: it has no identifier to find it by.

8. Your rights

Subject to applicable law (including GDPR and CCPA), you have the right to access (Art. 15), rectification (Art. 16), erasure (Art. 17), restriction (Art. 18), data portability (Art. 20) and to object to processing based on legitimate interests (Art. 21). For data held in your account, you can:

Where GDPR applies you also have the right to lodge a complaint with a supervisory authority (Art. 77 GDPR). For us that is the Landesbeauftragte für den Datenschutz Sachsen-Anhalt, Otto-von-Guericke-Straße 34a, 39104 Magdeburg, Germany (datenschutz.sachsen-anhalt.de) — but you may complain to the authority in your own country of residence instead.

We do not sell or "share" personal information as those terms are defined under US state privacy laws. To exercise any right, use the in-app controls or email support-blurt@chbnk.one. We answer within one month (Art. 12(3) GDPR).

9. Permissions and why

Blurt does not read your screen contents, does not log keystrokes, and does not monitor your typing.

10. A note on sensitive content

Because Blurt inserts whatever you dictate, transcribed text may briefly pass through the macOS clipboard during insertion, is saved to your on-device history unless you turn that off, and — when a cloud processing stage is used — may be sent to a third-party API for processing. If you are using the managed Cloud plan, avoid dictating passwords or other secrets you do not want transmitted to a third party. To keep dictation content local, install and select both local speech and clean-up models and verify the effective route in Blurt. Privacy Mode separately skips history; it does not select a processing route.

11. Children

Blurt is not directed to children. You must be at least 16 years old to create a Blurt account or to use the managed Cloud plan (Art. 8 GDPR; Germany has not lowered that age). Separately, under §§ 106 ff. BGB a person under 18 needs their parent's or guardian's agreement to enter into a paid subscription. If we learn that we hold data of a child under 16 without the required authorisation, we delete it.

12. Security

All transmission to our backend and its processors uses TLS. Passwords are stored only as scrypt hashes; refresh tokens are stored only as hashes; the backend and database run in Germany. The full description of our technical and organisational measures is on our security page, and it is also the annex to our data processing agreement for business customers.

13. Changes

The current version of this policy is always available at blurt.me/privacy.html. If we make material changes, we will update the date above. New processors are announced on the processor list normally 30 days before they start receiving data; where an outage or a security problem forces a faster change, the list is updated without delay, with the reason.

14. Contact

Questions about privacy? Email support-blurt@chbnk.one.