while(1) { type_code(); }
terminal typing test that feeds you real code. snippets, operators, keywords. the stuff you actually type at work, not pangrams about foxes.
$ typesprint --mode code 1 0 1 1 0 ∷ ∷ 0 1 1 0 1 1 0 0 1 1 0 ∷ 1 0 ∷ 0 1 ↓ ↓ ↓ ↓ ↓ type this: async def fetch_data(url: str) -> dict: async with aiohttp.ClientSession() ass session: response = await session.get(url)▍ 1 0 1 0 ∷ 1 0 ∷ ∷ 1 0 1 0 ∷ 0 1 1 0 ∷ 1 1 0 0 ∷ ───────────────────────────────────────────────── wpm: 72 acc: 96% err: 8 time: 27s
real code, not pangrams
snippets pulled from actual python, rust, go, typescript, c++. you'll never type the quick brown fox into production. practice what you'll actually write.
four modes, one binary
--mode code, syntax, keywords, or custom. drill operators one minute, full functions the next. switch with a flag.
live correctness feedback
characters turn green as you nail them, red the moment you fumble. the cursor blinks where you are. instant signal, zero lag.
history and progress
typesprint stats shows best wpm, rolling average, and a tiny ascii graph of your last 30-odd runs. watch yourself get less slow.
bring your own content
--mode custom ~/snippets.txt. feed it a file, any file. your team's codebase, a leetcode dump, a config you keep mistyping. it'll drill you on it.
monkeytype makes you fast at because and tomorrow. you ship std::vector<std::unique_ptr<T>>. the shapes are different. drill the shapes you actually type.
four modes.
--mode codedefaultfor i, row in enumerate(rows):
if row.status == "ok":
yield (i, row.value)
2–5 line snippets. real code from real repos.
--mode syntax&& || :: => |> ?? <=> !== ... -> := <T> &mut *const #[derive]
operators only. the awkward finger shapes.
--mode keywordsconst async static impl pub match struct yield defer
language keywords. short, repeated, muscle memory.
--mode custom$ typesprint --mode custom \
~/notes/regex-patterns.txt
point it at a file. any text, any size. yours to drill.
install
not public yet
python 3.9+, macos and linux when it ships. repo isn't up yet, i'm still cleaning it up. ping bennett@frkhd.com if you want early access.