Smassh: A TUI Typing Test That’ll Make You Ditch MonkeyType (Yes, Really)
You know the drill: you want to practice typing, but the browser version of MonkeyType feels like overkill. You open a tab, wait for a page to load, and try not to get distracted by notifications. What if you could just stay in your terminal, press a key, and start typing?
Enter Smassh — a TUI (Terminal User Interface) typing test that’s basically MonkeyType but for the command line. No browser, no fuss, just your terminal and a nerd font icon drop.
What It Does
Smassh is a lightweight typing test you run in your terminal. It shows you a list of words (or a custom phrase), and you type along. It tracks your speed (WPM), accuracy, and even gives you a nice chart at the end. The interface is clean, colorful, and powered by nerd font icons so it looks sharp even in a dark terminal.
The whole thing is written in Python and uses the curses library under the hood. It’s self-contained, fast, and works on Linux, macOS, and even Windows (with some terminal setup).
Why It’s Cool
Most terminal typing tests are either bare-bones or look like they fell out of 1995. Smassh isn’t. Here’s what makes it stand out:
- Nerd font icons — The interface uses glyphs for things like the timer, WPM counter, and accuracy percentage. It’s a small touch, but it makes the TUI feel polished and modern.
- Custom word lists — You can use the built-in dictionary, or load your own from a file. Great for practicing code syntax or domain-specific terms.
- Configurable — Change the number of words, time limits, or even the color scheme via a simple config file.
- No internet required — Once installed, it works completely offline. Perfect for coding on a plane or in a coffee shop with spotty Wi-Fi.
- Lightweight — It’s one Python file with minimal dependencies. You can install it with
pipand forget about it.
For developers, this is a great way to warm up your fingers before a big coding session, or to practice typing without leaving your terminal.
How to Try It
Getting started is simple. You’ll need Python 3.7+ and a terminal that supports nerd fonts (like Kitty, Alacritty, or WezTerm).
Install via pip:
pip install smasshRun it:
smassh