_              _
| | _____ _   _| |__  _ __
| |/ / _ \ | | | '_ \| '__|
|   <  __/ |_| | |_) | |
|_|\_\___|\__, |_.__/|_|
          |___/
practice the keys that slow you down

Adaptive typing trainer for your terminal_

keybr.com's adaptive algorithm, ported to the command line. keybr-tui times every key you press, finds the ones slowing you down, and builds drills aimed straight at them. A faithful port of the keybr.com engine that runs fully offline, with optional import of your keybr.com history.

crates.io version docs.rs CI MIT License

Quick install (Linux & macOS)

curl -sSf https://y0sif.github.io/keybr-tui/install.sh | sh
cargo install keybr-tui

Also available as a pre-built binary / crate / source build for Linux, macOS, and Windows.

Features

Adaptive text generation

Phonetic Markov chains generate pronounceable pseudo-words from your active letters. A faithful port of the keybr.com algorithm, not a wordlist or random characters.

Per-key confidence

Every keystroke's reaction time feeds an exponential moving average. keybr-tui scores each key against your target speed to know exactly where you're slow.

Progressive unlocking

Start with a handful of letters. New ones unlock from a frequency-ordered list only once your active set reaches confidence, so you're never overwhelmed.

Import from keybr.com

Download your data export from keybr.com and --import it. Your unlocked letters, per-key speeds, and focus key carry over exactly.

Local & offline

No network requests, ever. Stats and config live in plain files under your XDG directories. Your typing data stays on your machine.

Minimalist terminal UI

Built with ratatui and terminal-native ANSI colors. The interface gets out of your way during practice. Just text, WPM, and accuracy.

How the adaptive algorithm works

Letter scheduling.

You start with a small set of letters. The scheduler tracks per-key reaction time with exponential smoothing and computes a confidence score against your target speed.

Unlocking.

When all active letters reach sufficient confidence, a new letter is unlocked from a frequency-ordered list.

Focus key.

The weakest key in your active set becomes the focus key and appears more often in generated text until it catches up.

Text generation.

A Markov chain trained on English phonetic patterns produces pronounceable pseudo-words using only your active letters, biased toward the focus key.

Tracking.

At the end of each lesson, every key's mean latency updates its moving average, the same per-result smoothing keybr.com applies.

How keybr-tui compares

ToolTypeAdaptive?OfflineLocal stats
keybr-tuiTUIYes (Markov + confidence)YesYes (plain files)
keybr.comWebYes (origin algorithm)No (browser + account)Account
ttTUINo (wordlist)YesLimited
toipe / typerTUINo (wordlist)YesLimited
monkeytypeWebPartialNoAccount

keybr-tui sits at the intersection of adaptive and terminal-native: the keybr.com learning algorithm, offline, with your data in plain local files. Full breakdown in docs/comparison.md.

FAQ

What is keybr-tui?

A terminal-native typing trainer written in Rust with ratatui. It uses the adaptive phonetic Markov-chain algorithm from keybr.com to schedule practice around the keys you're weakest on.

How is it different from keybr.com?

It's a faithful port of the keybr.com adaptive algorithm to a terminal UI. Same learning, but fully offline, with stats in plain local files and no account, browser, or network requirement.

Can I import my keybr.com data?

Yes. On keybr.com, open your profile and click Download data to get a typing-data.json, then run keybr-tui --import typing-data.json. Your unlocked letters, per-key speeds, and focus key come out exactly as the website computed them.

Does it work offline?

Yes. keybr-tui never makes a network request. Text is generated locally and all metrics are written to local files.

Which terminals are supported?

Any modern emulator with a 256-color or true-color ANSI palette and a monospace font: Alacritty, Kitty, WezTerm, foot, iTerm2, Windows Terminal, GNOME Terminal, and more, on Linux, macOS, and Windows.

Is it free and open source?

Yes, MIT-licensed. Install with cargo install keybr-tui, the one-line script, or a pre-built binary. More in the full FAQ.