All downloads

LocalType

A keyboard that keeps your words on your phone.

LocalType is a small, plain Android keyboard. Nothing you type is sent anywhere, there is no account, and typing uses no Google service or model. It fixes typos in a way you can undo, suggests your next word, takes dictation, and keeps IPA symbols, accents, emoji and your saved text a tap away.

Android 8 or later · version 0.5.15 (build 35) · 59 MB
Early access. English only for now. Free, with no ads.

New in 0.5.15: Voice input. A microphone key beside the emoji button takes dictation through Android’s on-device speech recognizer, on phones that have one. Dictated words are never learned or logged. It is new in this build and still being tested.

Updating an early preview?

Builds through 0.4.2 used a temporary signing key. Uninstall those before updating; this clears learned words. From 0.4.3, updates install over the existing app. Use Updates in settings to check.

LocalType below the sentence “See you at the park tomorrow”. The strip shows an undo arrow, the words morning and night, and a calendar emoji.
I typed “tomorow”. It was fixed at the space, and the arrow on the left puts it back.
LocalType below the words “See you at the”. The strip offers office, park and beginning.
Three suggestions for the next word, from the model built into the app.
The letter e held down. A panel above it shows the IPA symbols ɛ, ə, ɘ and ɜ, and the accented letters é, è, ê, ë, ē, ę and ė.
Hold a letter for its accents and IPA symbols.
The emoji panel in place of the keys: a search button, category tabs and a grid of faces.
The emoji grid, with search.

Install

  1. Open the downloaded APK. Allow your browser to install apps if Android asks.
  2. Open LocalType and follow the walkthrough to enable and select the keyboard.
  3. Try typing. Hold space to switch keyboards; reopen Setup walkthrough under About whenever needed.

Your words stay on your phone

Suggestions, corrections and learning all run on the phone. Nothing you type is sent anywhere, and there is no account to make. LocalType’s own code goes online only when you ask it to: to download the optional proofreading model, or when you tap Check for updates. The one part of the app that could use the network unasked is a Google library for the optional proofreading, described at the end of this section.

  • It learns only real words you finish. Misspellings are never learned, password fields get no suggestions, and nothing typed in an incognito field is saved.
  • The word pairs it has learned are listed in settings. Remove one line, or tap Forget learned words to clear everything it has learned.
  • Typing uses no Google service and no Google model. The suggestions come from a model I trained myself, and the word lists are in the app.
  • What you dictate is never learned or logged. Android asks for the microphone the first time you tap the mic key, not before, and your voice goes to Android’s on-device speech recognizer, which on a Pixel has no network permission.
LocalType settings, Learned words: six word pairs such as “see → you” and “park → tomorrow”, each with a count and a remove button, above a Forget learned words button.
What it learned from the sentence above, in settings.
What about the Google code inside the app?

Voice input is separate from typing: on a Pixel, Android’s on-device speech recognizer is a Google system service. Proofreading is optional, and it can use Gemini Nano or Gemma. To offer that, the app includes two Google libraries, ML Kit and LiteRT-LM. Ordinary typing never calls them, but ML Kit starts with the app and can send Google statistics about how the Gemini Nano feature is used. Android’s own network counters on my two test phones show how little that is: apart from the Gemma download I asked for, the app made three exchanges of a few kilobytes each in the eight and five days since it was installed, the size of an update check, and none in the last three days. The counters cannot say which code made them. To rule it out, switch off LocalType’s Network permission where your phone offers that, as GrapheneOS does: typing, correction and suggestions work the same without it.

A plain keyboard, with the tools within reach

  • Typo fixes you can undo. Clear slips are fixed when you press space. Press delete right away, or tap Undo, to keep what you typed.
  • IPA symbols and accented letters. Hold a letter and slide to the one you want.
  • Voice input. Tap the microphone key beside the emoji button and speak; tap it again, or any key, to stop. It uses Android’s on-device speech recognizer, on phones that have one. New in 0.5.15 and still being tested.
  • Emoji, clipboard and Saved text. A full emoji grid with search, a paste button for what you just copied, and Saved text for the things you type again and again.
  • A list of the word pairs it has learned. Read it, trim it or clear it.
  • TalkBack. Every key can be explored and typed with a screen reader.
  • The usual comforts. Light and dark themes, a number row if you want one, and pads for numbers, phone numbers, email and web addresses.

What it leaves out: glide typing, GIFs and stickers, and languages other than English. If you depend on one of those, LocalType is not for you yet.

How well it fixes typos

I typed the same 100 invented sentences into LocalType and Gboard on two Pixels, using scripted taps scattered a little around each key. In an ordinary text field, with the taps scattered 14 and 23.5 pixels, LocalType fixed 134 and 127 of 200 planted typos where Gboard fixed 103 and 106. At 33 pixels it was 110 against 100, too close to tell apart. Both sometimes turned a typo into the wrong word: 15 against 10 at the tightest scatter, then 15 against 21 and 26 against 38. These counts are from the Pixel 9a; the Pixel 10 matched them to within two words.

In a separate probe on 150 human-written phrases, next-word suggestions were level. So was the delay between a tap and the letter reaching the text field, to within 3 ms at the median. Scripted taps are not human typing, and I have not yet measured typing speed with real fingers. The benchmark page has the method, the tables and the limits.

Where the suggestions come from

The three suggestions above the keys come from Chime, a 2 MB model I trained myself on public text with checked licences. It is built into the app, needs no download and runs on the phone. It is not Gemma or Gemini. You can try it in a browser on the Chime page, where the weights, the training code and the method are linked.

If you also want sentence proofreading, LocalType can use Gemini Nano on phones that offer it, or a 2.4 GB Gemma download. Both run on the phone and both stay off until you ask. The keyboard is complete without them.

Release files

APK checksums. Android package dev.localtype.keyboard, signed from 0.4.3 with 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. Licences and sources are on the details page. By Luke Steuber.