12 Keys by CoAsT

2665

= book · cook · cool  — one key sequence, three words.

Twelve keys. One thumb.
Nothing leaves your phone.

T9 predictive typing for Android, with a row of engineering keys — Esc, Tab, Ctrl, arrows and the symbols a shell actually needs. Built for a folding phone you are holding in one hand.

Android 11+ · sideload · no account, no tracking, no permissions

Real dictionary, real ranking — 6,000 words from the app itself. Tap next to cycle, 0 for a space.

The argument

It is not nostalgia. It is millimetres.

Android measures layout in dp, and a dp is a physical unit by definition: 160 dp = 1 inch, on every device ever made. So this is arithmetic, not taste.

A folded phone's cover screen is about 60 mm wide. Put a QWERTY top row across it and each of the ten keys gets 6.0 mm. Now measure what you are aiming with: an adult thumb pad is 20–25 mm.

QWERTY — TEN KEYS ACROSS 60 MM THUMB PAD · 20 MM · TO SCALE 6.0 mm each 12 KEYS — THREE ACROSS 60 MM 4 5 6 20.1 mm each
Both strips are the same 60 mm. The gold circle is the same thumb, drawn twice at the same scale. On QWERTY it covers three keys at once; on twelve keys it covers exactly one.

And the keys never change size

Unfold the phone and the keys stay exactly as they were. Most keyboards make keys a percentage of screen width, so opening a folding phone silently doubles every key and throws away the muscle memory you spent a week building. Here the spare width goes to the hand you are not typing with — and the engineering keys move over there, where your thumb can never hit them by accident.

Measured, not claimed

Half the keystrokes of a 1999 phone.

Every figure below came from replaying 20,000 words of real prose through the engine, one key at a time, against baselines. KSPC is keystrokes per character — lower is better, and 1.0 is a perfect typist hitting one key per letter.

Held-out prose: the word frequencies were built from different documents, so the engine had never seen these. It guesses the intended word first 80.7% of the time. In a terminal, where half the words are hostnames and flags, that falls to 65.5% — the number quoted here is the one for writing, not for coding.
MethodKSPCvs multi-tap
Multi-tap — a 1999 phone2.05
Full-length T9 — a 2001 phone1.27−38%
12 Keys1.03−50%
Perfect QWERTY typist1.00−51%

The honest caveats. Keystrokes are not speed — reading a suggestion costs attention that hitting a known key does not, and real-thumb words-per-minute has not been measured, so there is no speed claim here. Roughly one word in seven still has to be spelled out because it is not in the dictionary yet. A keypress is answered in 0.02 ms against a 16.6 ms frame budget, which is the one number with room to spare.

The engineering row

Keys a phone keyboard forgot.

A stock keyboard buries |, ~, / and $ two taps deep, and has no Esc, no Tab, no Ctrl and no arrows at all. Fine for texting, useless over ssh.

EscTabCtrlAlt /-|~$:= ()[]{}<> ^A^X^C^V^Z

Real key events

Ctrl-C sends an actual keycode with an actual modifier, so it interrupts a process. A keyboard that merely types the character 0x03 interrupts nothing.

Code mode

In a terminal, URL bar or email field the keyboard promotes engineering vocabulary — kubectl, systemctl, raidz2 — and stops capitalising your commands.

Slang and swearing

Typeable, always. Never completed into from a short prefix unless you have typed it before — so it cannot guess its way into an obscenity, and it never blocks one either.

Emoji, three ways

Type :) or <3 and it becomes one. Type "love" and it is offered beside the word. Or open the picker.

Privacy

A keyboard sees everything you type.

Every password, every card number, every message you deleted before sending. It all passes through the keyboard before it reaches the app that asked for it. When you enable any keyboard, Android warns you about exactly this. That warning is correct.

12 Keys requests no permissions. None at all.

In particular it has no INTERNET permission, so it cannot open a network connection — the operating system refuses, no matter what the code says or who audited it. That is the strongest form of the promise Android allows, and you can verify it in ten seconds without reading a line of our code.

A build step checks the final manifest and fails the build if a permission ever appears. It was tested by deliberately adding INTERNET and watching the build stop.

There is no account, no sync, no analytics and no crash reporter. Words you teach it stay on the phone, learning halts entirely in password fields, and "forget everything" deletes rather than hides.

Beta

Get it on your phone.

Version 0.3.0. Android 11 or newer. This is a real beta — it is being used daily and it still has rough edges.

1 · allow the install

On Samsung, turn Auto blocker off first (Settings → Security and privacy). It silently blocks sideloading and says nothing useful when it does.

2 · open the app

The setup screen walks you through enabling it and takes you straight to the right system screens. Each step ticks green on its own once done.

No overlay permission is requested. Other keyboards ask for one; an input method already gets its own window, so this one does not need it.