Last updated 12 September 2026
Privacy policy
WeType reads text from every application you type in, because it cannot predict your next words otherwise. This page says exactly what it sees, what it keeps, where, and how to get rid of it.
The short version
Nothing you type leaves your Mac. The language model runs locally. There is no account, and no server of ours ever sees a word you have written. The app makes four kinds of network request: downloading a model you chose, checking for updates and announcements, validating a licence key after you buy one, and sending eight anonymous product events that you can switch off.
Until version 1.1 this page said “no analytics and no telemetry”. That is no longer true, and quietly deleting the sentence would have been the wrong way to handle it. What changed, and exactly what is sent, is set out in full below — and you are asked about it on the last page of setup, before the app has finished a single sentence for you.
Your text stays on your Mac
No account, no server of ours that sees a word you write, and no third-party analytics SDK. The model runs in-process; the text you type is not transmitted anywhere.
Password fields are never read
Secure fields, credential-looking fields, and banking, payment and health sites are excluded before anything is read, not filtered out afterwards.
You can see and delete what it learned
Settings shows every sentence WeType has kept. Delete one, an app's worth, or all of it. Delete All WeType Data returns the app to a fresh install.
Signed, notarized, and open about updates
Every build is Developer ID signed and notarized by Apple. Updates are verified against a signing key before installing, and Sparkle's system-profile reporting is switched off.
What WeType reads
While it is enabled and not paused, WeType reads:
- The focused text field: its contents, where the cursor is, and its font and colour, so the suggestion can be drawn in the right place and the right size.
- The prose around that field: the message you are replying to, the subject line, the earlier lines of a note. This is what lets a suggestion respond to context rather than only continue your sentence. Turning off Use surrounding context in Settings means nothing around the field is read at all, not merely that it is left out of the prompt.
- Which app and window the field belongs to, and for web fields the site’s domain, so per-app settings and per-site rules can be applied.
What it never reads
- Secure fields. Password boxes, anything macOS marks as protected, and any field whose label or placeholder looks like a credential: “password”, “passcode”, “CVV”, “one-time code”.
- Apps where completion is switched off, including password managers. The check runs before the read, so a disabled app’s contents are never harvested in the first place.
- Fields on blocked sites. Banking, payment and health hosts are excluded by default, and you can add your own.
What WeType keeps
Everything below lives in ~/Library/Application Support/WeType/, readable only by you.
| What | File | Default | Retention |
|---|---|---|---|
| Sentences you have written, per app, used to suggest in your voice | typing-history.json | On, disclosed at first run | 90 days by default, configurable |
| Words and characters saved, per day | usage-stats.json | On | Until you delete it |
| Placement diagnostics, for debugging where the ghost text lands | diagnostics.jsonl | Off | Capped at 1 MB |
| Screenshots around the cursor, for pixel-verifying placement | shots/ | Off | 7 days, capped at 50 MB |
| Crash reports (the crash only, never your text) | crashes/ | Off | Until you delete them |
| Anonymous product events waiting to be sent | telemetry-queue.json | On | Deleted the moment they are sent |
Your settings live in the com.wetype.app preferences domain.
The typing history holds at most 40 sentences per app, each at most 240 characters, and only completed sentences, never the fragment you are in the middle of. Code fields are never used for style. You can read every stored sentence in Settings › Personalization › Show what WeType has learned, and delete them one at a time, one app at a time, or all at once.
Permissions, and why
- Accessibility: read the focused field’s text and cursor position, and insert accepted completions. There is no other API on macOS that can do either.
- Input Monitoring: notice the keys you type, so a suggestion can follow your typing and the accept key can be caught. WeType sees key events for the accept keys and for ordinary characters; it does not record them anywhere.
- Screen Recording (optional, off by default): used only by the placement-verification tooling and the opt-in screen-context feature. WeType works fully without it.
While running, WeType also sets the AXEnhancedUserInterface accessibility flag on Chromium- and Electron-based apps, which is the only way those expose their text fields. It restores the flag when you switch away and when you quit.
Insertion and your clipboard
Accepted text is inserted by putting it briefly on the clipboard and synthesising ⌘V, then restoring what you had. Two consequences worth knowing:
- Clipboard-history apps such as Maccy, Raycast, Paste and Alfred will record each accepted suggestion. If that bothers you, switch an app to Type directly in Settings › Per-App › Insertion.
- If you press ⌘C during the brief restore window, your copy winsWeType checks, and will not overwrite it.
Anonymous usage
WeType is a paid product with one developer and no funding. Without some measure of what happens after a download, the only visible numbers are sales — which say nothing about the people who installed it, never got a suggestion to appear, and quietly deleted it. This is the smallest thing that answers that question, and it is the only part of this policy that describes data leaving your Mac about you rather than about a file you asked for.
The identifier
One random UUID, generated by the app on its own first run and kept in your login Keychain. It is not your hardware serial, your MAC address, IOPlatformUUID, or a hash of any of those, and it is not derived from anything else on your Mac that another application could read. It correlates with nothing outside WeType. It is kept in the Keychain for exactly one reason: so that reinstalling the app is counted as one install rather than two.
Sent alongside it: the WeType version, the macOS version as major and minor only (“26.0”), your language but never your region (“en”, not “en-GB”), and arm64.
The events — all eight of them
| Event | When |
|---|---|
install | The first time WeType runs on this Mac. |
launch | At most once a day, so “did they come back” is answerable. |
onboarding_completed | You finish first-run setup — with whether each permission was actually granted, which is the difference between finishing setup and clicking past it. |
first_acceptance | The first suggestion you ever accept. |
trial_limit_reached | A trial day’s 100 words are spent. |
trial_expired | The five-day trial ends without a licence. |
checkout_opened | You open a checkout page, and which screen you opened it from. |
license_activated | You activate a key, with a SHA-256 hash of that key. |
Each event carries at most two extra values, and every one of them is a number or a word from a fixed list — trial, lifetime, menu, settings. There is no free-text field anywhere in the pipeline. That is not a promise someone has to remember to keep; it is the shape of the code. The app can only send values from a fixed Swift enumeration, and the server stores only properties on an allow-list, so transmitting a window title, a file path, a web address or a line of your writing would take a deliberate and conspicuous change in two separate repositories.
What is never sent
- Anything you type, and any suggestion WeType made.
- The name of any app, window, website or file.
- Your name, your email address, or anything you entered at checkout.
- Your IP address. The endpoint sits behind Cloudflare, which terminates the connection; the code behind it never reads or stores a connecting address.
The one exception to “nothing that identifies you” is deliberate and worth naming: when you activate a licence key, a SHA-256 hash of that key is sent. It is what ties an install to a purchase, and therefore the only way to know what fraction of people who install WeType go on to buy it. A hash cannot be turned back into a working key, and the key itself never leaves the app by this route.
Turning it off
The switch is on the last page of first-run setup, beside the sentence describing it, and again in Settings › Privacy › Anonymous usage. Turning it off stops all sending, deletes anything still waiting in the queue on your Mac, and erases the UUID — so no identifier is retained for a service you have declined. Delete All WeType Data does the same.
Payments
Purchases are handled by LemonSqueezy as merchant of record. They receive the details needed to take payment and issue a receipt, under their privacy policy. We never see or store your card details. When you activate a licence key, the app sends the key and a machine identifier to LemonSqueezy’s License API to check it is valid. Nothing about what you type is included.
Updates
WeType checks its update feed periodically over HTTPS and verifies every update against a signing key before installing it. The check sends nothing about you Sparkle’s optional system-profile reporting is explicitly disabled. macOS asks your permission before the first check.
This website
The site sets no cookies, runs no analytics, and embeds no third-party scripts or trackers. Fonts are served from this domain rather than a font CDN, so loading a page does not tell anyone else that you did. Following a checkout link takes you to LemonSqueezy, where their policy applies.
Deleting everything
Settings › Privacy › Delete All WeType Data removes every file listed above, the anonymous usage ID, and every setting, returning the app to a fresh-install state. Downloaded models are kept, because they are large and contain nothing about you. Delete those in Settings › Models. To remove the app entirely, see how to uninstall.
Questions
If something here does not match what you observe, that is a bug and worth reporting. Email support@wetype.tech. The behaviour described above is enforced in code in SurroundingContextPolicy, PersonalizationStore, AppDataLocations, CrashReporter, TextInjector, TelemetryClient and InstallIdentity.
Nothing you type leaves your Mac. Try it and see.
5 days free · 100 words a day · no card, no account