Lexo

Android keyboard · on-device

The model runs
on your phone.

Lexo predicts your next word with a 0.5B language model and transcribes your voice with an offline speech recognizer. Both run on the device. Nothing you type or say is sent anywhere, and you don't have to take that on faith.

Free tier stays free. One-time $9.99 unlock for neural suggestions and dictation, 30-day trial. No subscription, no ads.

Packet capture · while you type

Keystrokes 0

    - type below -

    Leaving the device 0 bytes

      - nothing -

      Illustrative, not a live capture of your machine. The real check takes two minutes: install PCAPdroid or NetGuard, type and dictate in Lexo, and watch the log stay empty. Turn crash reports on above to see the one thing that would appear if you enabled it in the app - it ships off.

      What's actually running

      Measured on the shipping build, version 1.0.3 (4199).

      • Suggestion model

        Qwen2.5-0.5B-Instruct, quantized to q8_0 - a 531 MB GGUF running through llama.cpp on CPU, 256-token context, four threads.

      • Why not bigger

        Qwen2.5-1.5B bought 1.1 points of next-word top-1 accuracy (19.0% → 20.1%) for roughly 2.4× the decode cost. The ceiling is the predictability of short informal text, not model size.

      • Speech recognizer

        NVIDIA Parakeet, ~0.6B, int8 ONNX through sherpa-onnx, with a silero voice-activity gate. Roughly 0.05 real-time factor on a Pixel 9 Pro XL - a ten-second window decodes in about half a second.

      • Transcript cleanup

        An ELECTRA-small tagger, int8, about 3 ms per turn. It tags tokens for deletion, casing and punctuation, then a rule pass handles spoken punctuation and numbers. It is not a second model rewriting your speech, and it fails open: uncertain means it leaves your words alone.

      • First-run download

        ~1.2 GB, once, over Wi-Fi, verified by md5. The models live in the app's private files directory, so app updates stay small and never re-download them.

      • Languages

        English, Spanish, Portuguese, Swedish, German and French for typing and prediction. English is meaningfully the strongest.

      • Built on

        The open-source FlorisBoard project. Lexo itself is closed source, which is a real objection for some people and worth saying plainly.

      Check it without trusting me

      The design point is that nothing you type or say leaves the phone. That's a claim, and claims should be checkable. Here's everything you need to check this one.

      Lexo declares exactly five permissions: RECORD_AUDIO for dictation, VIBRATE for haptics, POST_NOTIFICATIONS for download progress, plus INTERNET and ACCESS_NETWORK_STATE.

      INTERNET covers three things and none of them is your text. The one-time model download. Google Play billing, for the paid unlock. And anonymous crash reporting through Firebase Crashlytics, which is off unless you turn it on at Settings › Advanced › Other › Send crash reports. Crash reports carry stack traces, the device model and the app version. They never carry what you typed or what you said.

      So point PCAPdroid or NetGuard at Lexo. Past the model download, typing and dictating generate no traffic at all. If you turn crash reporting on, you'll see Crashlytics check in, and turning it back off stops that too. I'd rather tell you exactly what the capture looks like than promise silence and have you catch a heartbeat.

      The models are open weight - Qwen under Apache-2.0, the Parakeet recognizer under CC-BY-4.0 - and the runtimes are llama.cpp (MIT) and sherpa-onnx (Apache-2.0). There's nothing secret on the model side.

      What costs money

      Free, permanently

      $0

      • Next-word suggestions from a word-frequency prior plus your own vocabulary
      • A personal dictionary that never leaves the phone
      • Swipe typing, layouts, emoji, clipboard history, themes, one-handed mode

      One-time unlock

      $9.99

      • Neural suggestions from the 0.5B model
      • Offline voice dictation with cleanup
      • 30-day trial covering both, before you pay
      • Not a subscription. No ads, at either tier.

      Writing

      Notes on building this, with the measurements included.

      Where it's weak

      • Swipe typing is brand new. Glide shipped on 1 August, on by default. Gboard and SwiftKey have had a decade to tune theirs. Judge it during the trial rather than taking my word for it.
      • English is much stronger than the rest. Five other languages ship, and the gap is real. Qwen's tokenizer coverage moves this more than anything in the app code.
      • The download is big. About 1.2 GB before you can use the on-device models. That's the price of the models being on the device.
      • De-Googled ROMs are rough. Licensing and billing verification lean on Play services, so purchases can fail to activate on Huawei, Aurora, LineageOS and GrapheneOS. That's on me to fix.
      • Cleanup won't rewrite you. The dictation cleanup fixes disfluencies, casing and punctuation. It won't restructure a rambling sentence the way a generative pass could, because there isn't one.