Smassh: A TUI typing test inspired by MonkeyType, now with nerd font icons
GitHub RepoImpressions701
View on GitHub
@githubprojectsPost Author

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 pip and 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).

  1. Install via pip:

    pip install smassh
    
  2. Run it:

    smassh
    
  3. Choose a mode:

    • Press w for words mode (default 15 words).
    • Press t for time mode (30/60/120 seconds).
    • Press c for custom text mode (paste or load a file).
  4. Type away — Hit enter when you’re done, and Smassh shows you your stats with a nice bar chart.

That’s it. No config files needed to get started, but you can tweak things in ~/.config/smassh/config.toml if you want.

Final Thoughts

Smassh won’t replace a full typing tutor, but it’s a fantastic little tool for developers who live in the terminal. It’s fast, looks good, and respects your time. No ads, no tracking, no bullshit.

If you’re like me and you sometimes just want to type a few words to wake up your fingers before opening Vim, Smassh is a no-brainer. Plus, showing off a TUI with nerd fonts is a low-key flex in any dev meetup.

Give it a try. Your terminal deserves a little workout.


Found this useful? Follow @githubprojects for more dev tools and open source finds.

Back to Projects
Last updated: June 6, 2026 at 10:21 AM