typdoting
v0.3.0
Published
A focused typing trainer for your terminal
Maintainers
Readme
typ.ing
A calm, keyboard-first typing trainer that runs in your terminal. It includes timed word, quote, code, number, symbol, Readwise, and custom-text sessions with live WPM and accuracy feedback.
This is an unofficial community CLI and is not affiliated with ZSA Technology Labs or Readwise.
Run it
OpenTUI currently requires Bun 1.3 or newer. With Bun installed:
npx typdotingYou can also install it globally:
npm install --global typdoting
typ.ingOptions
-m, --mode <mode> words, quotes, code, numbers, symbols,
readwise, or custom (default: words)
-l, --language <id> en, fr, de, es, javascript, typescript,
python, rust, or go
-t, --time <secs> test duration from 5 to 300 (default: 30)
--file <path> practice a local UTF-8 text file
--text <text> practice supplied text
--seed <number> deterministic text selection
-h, --help show help
-v, --version show the versionFor example:
npx typdoting --mode code --time 60
npx typdoting --mode code --language rust --time 60
npx typdoting --mode words --language fr
npx typdoting --file ./chapter.txtInside the trainer, use F1–F5 to choose words/quotes/code/numbers/symbols and F6–F9 to select 15/30/60/120 seconds before typing. Press Ctrl+L to connect Readwise without leaving the TUI, Tab to restart, Escape to reset, and Ctrl+C to quit.
Readwise
Like the original typ.ing website, the CLI can turn your Readwise highlights into personal typing practice. Connect once:
npx typdoting loginThe login opens Readwise's access-token page, validates the token through Readwise's official API, and stores it in your user config with owner-only permissions. Then run:
npx typdoting --mode readwiseYou can also press Ctrl+L while the trainer is open. Paste the token into the masked prompt and press Enter; the TUI validates it, saves it, loads your highlights, and switches directly to Readwise mode.
Use typ.ing whoami to check the connection or typ.ing logout to remove the saved token. You may provide READWISE_TOKEN instead of saving a token locally.
Development
npm install
bun run check
bun test
bun run build
bun dist/cli.jsThe typing engine and argument parser are separate from the UI so they can be tested without a terminal renderer.
Publishing
After updating the version in package.json and src/options.ts:
npm login
npm publishThe package publishes the typdoting, typ.ing, and typ-ing executable aliases.
License
MIT
