wasi-master /wmkeyboard

A modern, privacy-first Android keyboard: offline intelligence, 600+ languages, themes, tools and an addon ecosystem.

★ 897⑂ 55👁 8⑃ 20● 1,175▤ 27◈ 45
KotlinMITCreated 2026-08-10wmkeyboard.app
897
stars
55
forks
8
watchers
20
prs
1,175
issues
27
releases
45
discussions

README

Private. Offline. Yours.

An open source multilingual Android keyboard with prediction, glide typing, transliteration,
emoji search and an 89-tool toolbox that all run on the phone and never phone home.











Install · Tour · Languages · Privacy · Builds · FAQ · Build · Read the docs



https://github.com/user-attachments/assets/3bd063a9-6701-4ccd-82ef-edd40a42b8e0



 Why I built this

A keyboard is the one app that sees everything you write. Your messages, your passwords, your
half-typed thoughts you deleted before sending. Somewhere along the way the popular keyboards
decided that was a business model. The prediction got better, and the price for that was a 
copy of your keystrokes getting sent to somebody else's server.

The keyboards that refused that deal were mostly forks of the same decade-old Android code. Good
bones, honest intentions, but no glide typing without a proprietary blob, no real toolbox, and
nothing for the language I actually type in. Bangla was an afterthought everywhere: either a
phonetic engine bolted on with no prediction, or a layout with no smart features behind it.

So I wanted a keyboard that did three things at once. Type Bangla the way Avro taught a whole
country to type it. Carry the features I reach for all day, clipboard, snippets, translate,
calculator, scanner, without leaving the text field. And keep all of that on the phone, where
it belongs. This is that keyboard. It is written from scratch in Kotlin and Jetpack Compose,
keyboard surface included, and the whole intelligence layer runs offline.

 A few screenshots


  
    
    
    
    
    
    
    
    
  


 It starts by understanding how you spell

Type a word the way it sounds in Latin letters, and the keyboard finds the word you meant.
Every one of these runs on the device, with no network and no delay.

| You type | You get | Engine |
|---|---|---|
| ami valo achi | আমি ভালো আছি | Avro-compatible Bangla phonetic, with a lenient index: asi, achi and achhi all reach আছি |
| namaste | नमस्ते | Hindi phonetic with a map of how people actually romanise Hindi |
| aap kaise ho | آپ کیسے ہو | Urdu phonetic, folding to the consonant skeleton the script itself spells with |
| vanakkam, nenu, 3arabi | Tamil, Telugu, Arabic script | Phonetic layouts for eleven more languages, Arabizi digits included |
| nihao | 你好 | Pinyin, including a T9 nine-key variant |
| konnichiwa | こんにちは | Romaji to kana with conversion candidates |
| xin chaof | xin chào | Vietnamese Telex |

The same prediction engine sits behind every one of them, so glide typing, autocorrect and
next-word suggestions work in Bangla exactly as they do in English. 

 The tour

The features the keyboard has

 Typing

- Prediction that learns, locally. A trie-lattice beam decoder shared by tapping and glide,
  n-gram context ranking, and on-device learning of your words, bigrams and trigrams. One tap
  clears all of it.
- Autocorrect you can argue with. Corrections are gated by a likelihood ratio 

Top issues

Discussions

Latest release

WM Keyboard 0.6.6 v0.6.6 2026-11-10
What's new in 0.6.6

Plugins now run Python instead of Lua. One-row boards come in 36 languages, Avro included, and a smart punctuation key reads the sentence and offers its mark in 58 languages. Keys can take Expressive Keyboard's materials and Keys Cafe's press splashes, a photo can be cut up across the keys, Parakeet can run on the Snapdragon NPU, and WM Keyboard can be the phone's digital assistant and its voice input.

 Typing and autocorrect

- Hold a word on the suggestion strip and pick Correct to… to teach autocorrect what it should become: type kagay, correct it to lagay, and the nex

Snapshot: 2026-11-11T15:31:17Z · Data license Apache-2.0 · JSON