A letter gives you its shifted twin
The exclamation mark on the 1 key, a capital A on the
a key, without disturbing the Shift you already had waiting.
From the opt-in usage counters, republished daily as of September 8, 2026. The series is public.
Built by a wheelchair user with muscular dystrophy, because the keyboards that ship with Windows and Linux were not good enough to get through a working day.
The window floats above your others and never takes focus, so every click lands in the app you clicked last: a browser, an editor, a terminal, a game, a remote desktop. Each key reaches the operating system exactly as a physical keypress would. No setup, no account, no training period.
hwllo, hitting W instead of the E you meant
hello is still the first suggestion. The engine merges a word-frequency
model of your own vocabulary with a spatial model of the keys around the one you
actually hit, which is what makes it usable when your pointer is not precise.
The layout forgives the same misses that the engine does. Every key owns half the gap around it, so a click landing between two keycaps types the one you aimed at instead of nothing, and nothing anywhere on the keyboard needs a drag, a hold or a double-click.
This demo runs a real prediction pass on every keypress, so it needs JavaScript. The screenshots below show the same keyboard, and the download is unaffected.
This panel runs the same approach the application does, in your browser: nothing you type here is sent anywhere. It is Python, MIT licensed, and the prediction engine is documented rather than hidden.
Every other on-screen keyboard treats your pointer as a single blunt finger. This one puts a second full set of actions on the right button.
The exclamation mark on the 1 key, a capital A on the
a key, without disturbing the Shift you already had waiting.
A plain click makes Ctrl sticky for one keystroke; a right-click locks it held, so Ctrl+C then Ctrl+V is four clicks with no chord and no re-tapping.
Show more of a word, less of it, fix its spelling, or remove it for good. It stops guessing wrong the moment you say so.
Any of the twenty-four can fire a shortcut chord, type a phrase, or take a name that means something to you. F13 through F24 included, which almost no keyboard on your desk can send.
The second button is a shortcut, never the only door. If you drive the cursor by dwell-clicking, with an eye tracker or through a switch, a right-click may not be a gesture you have, so every one of these actions is also reachable on a plain left-click.
The keyboard its author uses to write every line of it. Every screenshot is the real application against a demo vocabulary, never anybody’s actual typing.
Prediction runs on your machine. Your vocabulary, your word pairs, your saved numbers and your snippets are files in your own config directory: no model upload, no cloud round-trip, no large language model, just an n-gram model and some arithmetic.
Learning pauses automatically when focus reaches a password field, with a manual override in the title bar. The number learner rejects long digit runs outright, so card and Social Security numbers are never stored. The diagnostic log records lengths and outcomes, never characters.
Dictation is the one exception. Audio goes to Deepgram while the microphone is open, and at no other time. Off by default, inert without your own key, never written to disk, and a password field cancels a run outright.
Releases are published on GitHub. The Windows installer is signed by OK Studio Inc. and updates itself; the Linux build is an AppImage you can run from anywhere.
Windows may show a blue “Windows protected your PC” screen on first install. That is normal for newer applications: click More info, check the publisher reads OK Studio Inc., then Run anyway.
This keyboard catches what makes its author’s day miserable and misses everything
about yours, so
Discussions and
the issue tracker are both
open and both read, and neither needs a line of code. If you would rather read the
code, it is MIT licensed, and python run.py takes a clone to a running
keyboard.
Design documents Index of every design document How a click becomes a real keystroke Why the project is built this way
Anyone who cannot comfortably use a physical keyboard but can move a cursor: muscular dystrophy, ALS, spinal cord injury, cerebral palsy, arthritis, RSI, or a head pointer, eye tracker, joystick or switch-access setup. Also a touchscreen or kiosk with no keyboard attached.
It types into whatever application has focus, so anything that accepts keyboard input accepts Alpha-OSK. It reads the pointer state without capturing it, so dwell-click and switch-access utilities keep working alongside it.
Settings → Smart Typing → Input, and set Compatibility Mode to “Always On”. Auto-detect covers the common editors and remote-desktop clients; anything else needs the override. Games read the keyboard by polling, so each key is held briefly rather than tapped, which covers the Unreal Editor and packaged Unreal games.
On Windows, %APPDATA%\alpha-osk\. On Linux,
~/.config/alpha-osk/. Settings → Data & Privacy → Data
Backup writes all of it to one zip. Importing on a new machine restores everything
without a restart, and keeps a rescue copy, so a mistaken import is one click to
undo.
Your typing, no, and the keyboard itself is free. Your voice, only if you switch on dictation and supply your own Deepgram API key, and only while the microphone is open. That usage is the only money involved anywhere, you pay Deepgram directly, and it is optional.
There is an opt-in statistics client in the build. It is off until you switch it on, and opting in sends nine integer counters a week: never content, never word frequencies, never your IP or hostname. Those counters are summed across installs and republished as a dated CSV, which is where the two figures at the top of the home page come from.