Free · On-device · Android keyboard

Speak. It writes. Nothing leaves. And it's FREE.

WaveKey transcribes your voice, cleans it up and rewrites it with two AI models that run entirely on your phone. Free, with no subscription and no minute counter — there is no server to pay for. No account, no API key, and no network permission in the keyboard at all.

Free forever No account Android 7.0+ GPL-3.0
What makes it different

A keyboard that thinks on the device

Everything below happens between the microphone and the text field. There is no round trip, so there is no round trip to leak.

Free, and free of a meter

No subscription, no trial, no minutes to run out of, no tier that unlocks the good model. There is no server to bill you for — the models are on your phone, so the cost of dictating an hour is the battery it takes. Free software under the GPL, too: every line that touches your microphone is readable.

Dictate and edit at the same time

The microphone stays live while your words land in the field. A pause ends the sentence, not the session — so you can speak, watch it commit, fix a word with your thumb, and keep talking. The mic even opens the instant you press it, buffering audio while the model is still loading, so the first words of a cold start are never lost.

AI fix, one key away

A deterministic rules pass runs first — spacing, casing, duplicated words, terminal punctuation. Then the LLM takes a turn at the phrasing. A spectrum border runs around the key while it works, and pressing it again undoes the whole thing.

Fixing while you type

Finished sentences are quietly rescored against the words the decoder ranked second. When a better word wins, the swap is shown to you — lifted out and settled in its place — rather than slipped past you.

A clipboard you can scan

Clips are typed — link, image, phone, text — each with a glyph, a host or a file size, and how long it has left. Pinned clips wear the accent so permanence is visible.

Airplane mode changes nothing

After the one-time model download, WaveKey works identically with the radios off. That is the test: if a feature stops working offline, it was never on-device.

Built on HeliBoard

Typing, glide, layouts, dictionaries and themes are HeliBoard's, unchanged and battle-tested. WaveKey adds the voice and AI layer on top — and keeps it in its own modules, so it could be mounted in another keyboard entirely.

Two models, zero servers

One listens. One writes.

Downloaded once from settings, then never contacted again. Both run on the CPU of the phone in your hand.

Speech recognition

Parakeet TDT 0.6B

NVIDIA's transducer, int8-quantised, running under sherpa-onnx. It transcribes each utterance once — when you stop speaking — instead of streaming guesses that rewrite themselves under your eyes.

  • Runtimesherpa-onnx · ONNX int8
  • Download~482 MB · required
  • Runs inthe keyboard process
  • LicenceCC-BY-4.0
Rewriting

Qwen 3 0.6B

A mixed-int4 build on LiteRT-LM, isolated in its own :llm process behind an AIDL boundary — so a native out-of-memory takes the refiner down and leaves your keyboard standing.

  • RuntimeLiteRT-LM · mixed int4
  • Download~498 MB · optional
  • Runs ina separate process
  • LicenceApache-2.0

The refiner is optional. Skip it and you still get dictation and the full deterministic cleanup — and when the smart pass cannot run, the keyboard says so plainly instead of pretending it did.

Privacy

Not a policy. A process split.

WaveKey runs in three processes, and only one of them can reach the network. That boundary is asserted by a unit test, so it cannot quietly erode.

keyboard

The IME, audio capture and speech recognition. Everything you say is decoded here.

No network

:llm

Qwen 3 and nothing else. Isolated so a model crash can never take the keyboard with it.

No network

:ui

Settings and the one-time model download. The only place INTERNET lives.

Internet
ManifestProcessSplitTest — fails the build if a component holding INTERNET ever moves out of :ui. Audio is never written to disk, never uploaded, and the utterance buffer is cleared when the session ends.
Getting started

Four steps

Install the APK

Grab the release build, or clone the repo and run ./gradlew :app:assembleDebug. ABI splits produce one APK per architecture.

Enable WaveKey

It appears in Android's keyboard list. Enable it, then switch to it from the input-method picker.

Download the speech model

Open WaveKey's settings and fetch the Parakeet pack — about 1 GB on disk. The mic key stays inert until it is installed.

Press the mic and talk

Optionally add the Qwen 3 refiner for the smart rewrite tier. Then turn the radios off and watch nothing change.

Free to use. Free to read.
Free of a meter.

No subscription, no account, no per-minute cap — and the source of every line that touches your microphone, under the GPL.

✦ Free forever · no subscription · no account · Android 7.0+