LocalType
A keyboard that keeps your words on your phone.
LocalType suggests your next word, fixes typos and learns how you write, all on the phone. Where the phone can run one, an on-device language model suggests words that fit what you are writing.
Android 8 or later · version 0.4.5 (build 15) · 55 MB
Early access. English only for now.
New in 0.4.5: choose a light or dark theme in settings, and the settings screen is tidier once the keyboard is set up. 0.4.4 added emoji that replace the words they match (“thumbs up” becomes 👍) and an optional number row.
Updating from 0.4.2 or earlier? Those builds were signed with a temporary key, so Android won't install 0.4.3 over them. Uninstall the old version first, which also clears the words it learned. From 0.4.3 on, new versions install over the top, and Updates in the app's settings tells you when one is out.
What it does
- Suggestions that learn. Three sit above the keys, the likeliest in the middle. They match your capitalization, and they get better as it learns the words you use together.
- Typo fixes that know where you tapped. Typos are fixed when you press space, using where your finger actually landed, so a tap on the edge of a key counts as a near miss for the one beside it. It fixes up to two slips in a word, three in long ones, when one word clearly fits, and offers closer calls as a suggestion. Press delete right away to keep what you typed; a word you go back and edit is never changed again. It knows about 133,000 words, so rare and unusual spellings are left alone.
- Proofread a sentence. Hold the sparkle and the model checks the sentence you are writing for spelling, grammar, capitals and punctuation. The changes are highlighted: tap ✓ to apply them, ✕ to skip.
- A full keyboard. Symbols, caps lock, a Send or Search key that matches the app, and colors that follow your wallpaper, in light or dark to match your phone or set in Theme. Turn on Number row to keep 1 to 0 above the letters; hold a number for its symbol.
- Accents and IPA. Hold a letter and slide to pick from accented letters and IPA symbols, like é, ñ, ə or ʃ.
- Emoji where they fit. Type “coffee” or “thumbs up” and ☕ or 👍 waits in the last suggestion slot. Tap it to swap the words for the emoji; press delete right away to get them back. Hold it for related emoji (“hands” also offers 👐 🤲 👏 🫶). Switch it off in settings if you would rather have three words.
- Quick paste. Copy something and a clipboard icon appears at the left of the suggestions for a couple of minutes. Tap it to paste.
- Your words, your call. Swear words are suggested until you turn them off. You can read the list of words it has learned and forget any of them.
- Works with TalkBack. Every key can be explored and typed with a screen reader.
On-device language model
The full version can use a language model that runs entirely on the phone. Where Android shares Gemini Nano with apps, such as the Pixel 9 and 10 with Google Play services, it uses that. Everywhere else, open LocalType and tap Download Gemma 4 E2B: a one-time 2.4 GB download from Hugging Face, over Wi-Fi unless you say otherwise. It resumes if it is interrupted, and it is checked before use.
By default it suggests words when you pause, and works a word ahead so the next suggestions are ready. One icon at the left of the suggestions shows what it is doing: a sparkle to ask for words, an hourglass while it thinks, and a refresh arrow once its words are showing, which asks for different ones. To keep it manual, turn on Suggest only when I tap. Keep model loaded holds it ready and uses about 2 GB of memory.
The model runs in its own process, so if it stops, the keyboard carries on with its own suggestions. Its answers are remembered for the words you use, so the same spot fills instantly next time. Automatic suggestions pause on Battery Saver, below 20% battery and when the phone is warm; tapping the sparkle and proofreading always work. Tested on a Pixel 9a and a Pixel 10 running GrapheneOS.
For the extra careful: LocalType Sandboxed (3.3 MB) is the same keyboard with the same typo fixes, but no language model and no internet permission, so Android itself keeps it offline. It can't check for updates; come back to this page for new versions.
Get started
- Install. Open the downloaded APK and allow your browser to install apps if asked.
- Turn it on. Open LocalType and follow its two steps: allow the keyboard in Android settings, then switch to it. Hold the space bar to switch keyboards again whenever you like.
- Add the model, if you like. In the full version, tap Download Gemma 4 E2B. On GrapheneOS, make sure Network is allowed for LocalType first.
Install one version at a time. Handy gestures: double-tap shift for caps lock, tap space twice to end a sentence, hold delete to erase quickly.
Your data and your choices
What you type stays on the phone: suggestions, learning and the language model all run there. LocalType goes online only when you ask: for the optional model download from Hugging Face, and when you tap Check for updates. Neither sends anything you type. Google's ML Kit library, which connects to Gemini Nano, can send Google statistics about how that feature is used. LocalType Sandboxed has no internet permission at all.
It saves which words you use after which, along with recent model answers, in private app storage. Misspellings are never learned. Password fields get no suggestions at all, and nothing typed in incognito fields is saved. Forget learned words in the app clears the lot.
Release files and licenses
The word list comes from FrequencyWords (OpenSubtitles 2018) under CC BY-SA 4.0. Recognized words come from SCOWL, Copyright 2000-2018 Kevin Atkinson and contributors, used under its permissive licence (notice included in the app). The optional model is Gemma 4 E2B for LiteRT-LM under Apache 2.0. On-device inference uses Google's LiteRT-LM and ML Kit.
By Luke Steuber. Android packages: dev.localtype.keyboard and dev.localtype.keyboard.local (Sandboxed). From 0.4.3 both are signed with a release key, certificate SHA-256 87:32:E1:75:65:9C:05:91:6D:D8:1F:CA:5D:D6:27:2F:F2:20:4C:CF:07:52:16:FB:F1:6A:89:AE:F6:66:3E:F5. Earlier previews were debug-signed.