Skip to content
WM KeyboardWM Keyboard
Accessibility

Privacy policy (Google Play edition)

The formal policy for the Google Play and GitHub builds: what WM Keyboard collects (nothing, beyond a name a tipper asks to have listed), what stays on your device, what optional tools send where, and what Google's own libraries report.

Effective 20 October 2026. This policy covers the WM Keyboard Android app (com.wasimaster.wmkeyboard) and this documentation site. WM Keyboard is written and published by Wasi Master, an individual developer.

The rest of this section explains the same subject in more depth and with screenshots. This page is the short, formal version, the one the Play listing links to.

WM Keyboard collects nothing. There is no account, no advertising, no tracking, and no analytics or crash reporting that this project receives. What you type is processed on your device and stays there. The one thing the app ever sends to a server of this project is a name you typed yourself, after you chose to tip and asked to be listed, with a message if you wrote one; see Tips.

One caveat: some features are built on Google’s ML Kit and on Google Play services, and those libraries send their own diagnostics to Google when you use the features they power. That is Google’s collection, not this project’s, and it is spelled out in full under Google components inside the app.

The app does not sell, rent or share personal information. Apart from a tipper’s chosen name, it does not receive any in the first place.

The keyboard writes several things to its own private app storage. None of it is transmitted anywhere by the app.

  • Learned words and word pairs. Words you use that were not already in a dictionary, plus the bigrams, trigrams and skip-grams (the word two or three back paired with the one that followed) used to predict and rank the next word.
  • Clipboard history, if you have the clipboard tool enabled, along with anything you pinned.
  • Typing statistics, such as counts of keystrokes and words, if you have statistics enabled.
  • Your settings, themes, layouts, snippets and personal dictionary entries.
  • Downloaded data, such as dictionaries, emoji keyword packs and voice models.

You can delete all of it. Learned data is one confirmed tap on the app’s Privacy screen, and clipboard history and typing statistics each have a clear action of their own on the storage screen under About. Uninstalling removes everything the app ever wrote.

Password fields, and any field an app marks as sensitive, are excluded from learning, suggestions and clipboard capture automatically. Incognito mode pauses learning and clipboard history everywhere for as long as it is on. Suggestions keep working, because they are read out of data that is already there rather than written to it.

What leaves your device, and only when you ask

Section titled “What leaves your device, and only when you ask”

Typing itself never uses the network. A set of optional tools do, each one only while you are actively using it:

ToolWhat it sendsTo
Translatethe text in the panel. Nothing, when the engine is set to On deviceGoogle Cloud Translation
Web and image searchyour queryBrave Search, or Tavily if you add a Tavily key
GIF and sticker searchyour queryKLIPY, GIPHY, and the Internet Archive’s GifCities if you turn it on
Dictionaryone wordkaikki.org, en.wiktionary.org, api.dictionaryapi.dev, api.urbandictionary.com if you turn it on, in the order you set
Synonyms, from the word menuone wordapi.datamuse.com, kaikki.org, api.dictionaryapi.dev, in the order you set
Encyclopediayour queryWikipedia
Weathera location you enteredOpen-Meteo
Currency and crypto ratesnothing identifyingopen.er-api.com, api.coinbase.com and their fallbacks
Photo backgroundsyour search termsUnsplash, Pexels
AI writing toolsthe text you ran an action onthe provider you chose, using your own API key
AI chat’s Deep research and Summarizethe search queries the model planned, and an ordinary request for each page read; the pages’ text then goes to your AI provider with your questionyour web search provider, and the websites of the pages read
Grammar check, with LanguageTool switched onthe text in the field, its language, and your LanguageTool username and key if you set them. Never a password field or text typed in incognito. Nothing at all with Harper, the defaultapi.languagetool.org (LanguageTool’s public server), api.languagetoolplus.com with a Premium account, or a LanguageTool server you run yourself
Sticker generator, with an online engine switched onyour prompt in English with the style’s words, the seed, the picture size and count, and your key for that service. Nothing at all with On this phone, the defaultthe engine you picked: image.pollinations.ai or gen.pollinations.ai, aihorde.net, api.openai.com, generativelanguage.googleapis.com, api.x.ai, api.stability.ai, api.bfl.ai, external.api.recraft.ai, api.replicate.com, fal.run, api.together.ai, router.huggingface.co, api.cloudflare.com, or a Stable Diffusion, ComfyUI or OpenAI-compatible server you entered; the pictures are fetched back from that service’s storage
Voice typingyour speech audioAndroid’s own speech service, unless you use the offline Whisper option
Language and model downloadsnothing about you, except that a gated on-device AI model (the two Gemma 3 builds) is fetched with the Hugging Face token you entered for itGitHub, Hugging Face, and Mozilla for the Firefox Translations models

Four of these can fire without you opening a tool under default settings. They are the weather smart chip, the currency smart chip, automatic language data downloads, and the dictionary tool’s look-up-at-cursor. Each has its own switch. Network policy documents every one of these in full, including what is cached and for how long, and Permissions covers what each Android permission is for.

When you use one of these tools, your data is handled by that service under its own privacy policy, not this one. The app ships no key for the AI providers: those only work if you supply your own.

The Google Play build can take a tip through Google Play billing, under About › Supporters. Google Play handles the payment, under Google’s privacy policy. This project never sees your card, your Google account or your email address.

If you type a name to be listed, then once Google Play confirms the payment the app sends that name, the message you typed (if any) and the purchase receipt (the product and Google Play’s purchase token) to wmkeyboard.pages.dev/api/play-tip. The site asks Google whether the receipt is a real, paid order and, if it is, adds the name, the message, the word “Tip”, the tier’s list price in US dollars and the date to the public Supporters page. The app’s own list shows the name only. With Stay anonymous on, or the name left empty, nothing is sent. Until the site has answered, the app keeps the name and receipt on your device and tries again when you next open Supporters, for up to 30 days. To have a name removed, email the address under Contact.

Backups are optional and written to the destination you choose. That can be local storage, a cloud drive you connect, a WebDAV server, an S3-compatible bucket, an SFTP, SMB or FTP server you run, a Git repository you own, or a folder in your own mail account. By default the file is plain JSON. Turn on a backup passphrase and it is encrypted with AES-GCM under a PBKDF2-HMAC-SHA512 key. Nothing is uploaded anywhere by default and no copy is sent to the developer. See Backup and restore.

WM Keyboard is not directed at children and collects no data from anyone, including children. The only thing ever received is the name and message a tipper chose to have listed, described under Tips, and both are removed on request.

Three Google components the app uses report to Google on their own, without going through any code here. They cannot see what you type, and this project receives nothing from them. None of them can be switched off from inside the app either, so your only choice is whether to use the feature.

  • ML Kit powers handwriting input, OCR, QR and barcode scanning, the document scanner, sticker background removal and on-device translation, in every build but F-Droid’s. Google states that its SDK sends device information (make, model, OS build, available ML accelerators), this app’s package name and version, a per-installation identifier, timing and error information, and the size and settings of what was processed. That happens whenever you use one of those features. Google describes it as diagnostics and usage analytics, encrypted in transit and not passed to third parties. The content of the image, ink or document is not part of it.
  • Downloadable fonts. Some scripts’ default keyboard font, and every Google font in the theme editor, are fetched by Google Play services’ font provider. It receives the font name and this app’s package name.
  • Google Play libraries in the Play Store build check for app updates, fetch the on-device AI runtime when you first use it, and take a tip through Google Play billing if you choose to leave one.

Connecting Google Drive as a backup destination adds a Google sign-in and ordinary Drive API calls, and only if you connect it.

The first and the third are specific to this edition: the F-Droid build has no ML Kit, no Play libraries and no Google sign-in compiled into it at all. Downloadable fonts are the exception, since that request goes to a system provider rather than to code the app bundles, so the F-Droid build makes it too. See Privacy policy (F-Droid edition).

The app bundles open-source libraries and data (dictionaries, emoji annotations, fonts). None of them phone home. The full list, with licences, is in the app under About, Licences and attributions.

If this policy changes, the effective date at the top changes with it, and the history of every edit is public in the repository.

Questions about this policy: arianmollik323@gmail.com, or open an issue at github.com/wasi-master/wmkeyboard/issues.