WPM = words per minute (5 chars = 1 word). Human avg 60–100, fast 120–150, robot 180+. Estimated time updates live.
⚙️ Advanced — fine-tune delays
Leave 35/110 + 6% for default human. Robot uses 5–15 ms, 0% long pauses automatically.
rare 1%2%often 10%
Occasionally mistypes a nearby QWERTY key, backspaces, then corrects — like a real human.
Settings persistence
All settings (profile, speed, typo, advanced) are saved on this phone and survive reloads until you restore.
Defaults: Human-like, 90 WPM, 35–110 ms, 6% long pause, typo off. Text box is not cleared.
How it works — backend typist.py:87 implements speed: WPM → ms/char, Human randomizes + long pauses, Robot uniform. Each key uses atomic Shift+key → release with guaranteed key-up (fix for zZ→ZZ / xX→XX). Pause remembers position via _pause_event.
Backend is not faked — UI sliders are sent to /api/type {mode,wpm,typo} and /api/estimate. Reports verified for aA zZ qQ xX mM.