馃 termitype
March 2, 2026 路 View on GitHub
馃 termitype
Feature-rich terminal typing test
Heavily inspired by a certain typing test you might know.
Installation
路
Usage
路
Mappings
路
Options
路
Development
路
Contributing
路
Roadmap
路
Acknowledgments
Installation
Quick Install
Install the latest pre-built binary for your platform (recommended):
curl -sSL https://raw.githubusercontent.com/emanuel2718/termitype/main/scripts/install.sh | bash
Binaries are available on the GitHub releases page.
Homebrew
brew tap emanuel2718/termitype
brew install termitype
Arch Linux (AUR)
yay -S termitype
From Crates.io
cargo install termitype
From Source
cargo install --git https://github.com/emanuel2718/termitype.git termitype
Usage
Basic Usage
# Start typing
termitype
# See available CLI arg options (all options can also be configured via the in-game menu)
termitype --help
Mappings
| Mapping | Mode | Action |
|---|---|---|
<C-Space> | Global | Toggle Menu |
<C-c> | Global | Quit Application |
<C-z> | Global | Quit Application |
<C-p> | Global | Toggle Command Palette |
<C-l> | Global | Toggle Leaderboard Screen |
<C-t> | Global | Randomize Theme |
<Esc> | Global | Toggle Menu |
<S-N> | Results | Restart |
<S-R> | Results | Redo last test |
q | Results | Quit Application |
m | Results | Switch to Minimal Variant |
n | Results | Switch to Neofetch Variant |
g | Results | Switch to Graph Variant |
<Up> | Results | Cycle to next ASCII Art |
<Down> | Results | Cycle to previous ASCII Art |
<Esc> | Menu | Go back |
/ | Menu | Start Search |
<C-y>/<CR> | Menu | Confirm selection |
<Space> | Menu | Toggle selection (if toggable item) |
<C-n>/<Down> | Menu | Next item |
<C-p>/<Up> | Menu | Previous item |
j/k | Menu | Next/previous (in normal mode) |
Options
| Option | Description |
|---|---|
-t, --time <SECONDS> | Test duration in seconds. Enforces Time mode |
-w, --words <"WORD1 .."> | Custom words for the test. Enforces Word mode |
-c, --count <COUNT> | Number (count) of words to type |
-n, --use-numbers | Include numbers in the test word pool |
-s, --use-symbols | Include symbols in the test word pool |
-p, --use-punctuation | Include punctuation in the test word pool |
-l, --language <LANG> | Language dictionary the test will use |
--theme <THEME> | The theme of the application |
--ascii <ASCII> | The ASCII art used in the Neofetch results |
--cursor <STYLE> | Cursor style variant: beam, block, underline, blinking-beam, blinking-block, blinking-underline |
--results <STYLE> | Results style variant: minimal, neofetch, graph |
--lines <COUNT> | Number of visible text lines [default: 3] |
--hide-live-wpm | Hide live WPM counter |
--hide-notifications | Hide notifications |
--no-save | Do not save tests results |
--reset | Resets everything back to default state |
Examples
# All of the options below can also be changed at runtime via the menu.
termitype -t 60 # Run a 60-second typing test
termitype -c 100 # Test will contain exactly 100 random words
termitype --theme "catppuccin-mocha" # Use catppuccin-mocha theme
termitype -l spanish # Use Spanish test words
termitype -spn # Enable symbols, punctuation, and numbers
termitype --results neofetch # Use neofetch inspired results
termitype --no-save # Do not save tests results
termitype --hide-notifications # Do not show notifications
Development
Prerequisites
- Rust 1.88+
- Cargo
Quick Start
- Clone the repository:
git clone https://github.com/emanuel2718/termitype.git
cd termitype
- Run the application:
# Development build
cargo run
# Release build
cargo run --release
Themes
Termitype includes a curated collection of themes sourced from the iTerm2 Ghostty Color Schemes Repo repository. Themes can be previewed and changed in real-time.
Contributing
Warning
TODO: write out the contribution guideline just in the case there's one person interested in this.
Roadmap
Upcoming Features
- Package Distribution: Release on Homebrew, AUR, nixpkgs, etc.
- User config file: Have a user editable config file in
$XDG_CONFIG_HOME/termitype/config.toml - Configurable Mappings: Custom mappings
- Custom ASCII arts: Allow usage of custom ASCII arts
- Custom theme: Allow setting custom themes with names
- Wordlist Improvements: Improve the quality and distribution of words
- Multiplayer: Race other people in realtime with private rooms of sort (will use websockets for this)
- Local Results Tracking: Track test results over time (best use case is to track highest WPM on specific modes) with opt-out option
License
This project is licensed under the GPL-3.0 license - see LICENSE for details.
Acknowledgments
- Monkeytype for the inspiration.
- Ratatui for the amazing TUI framework.
- iTerm2 Ghostty Color Schemes for the themes.