emanuel2718 c1b914ed1a
Some checks failed
CI / Test (push) Has been cancelled
CI / Build (push) Has been cancelled
CI / Cross-platform check (macos-latest) (push) Has been cancelled
CI / Cross-platform check (windows-latest) (push) Has been cancelled
chore: pre-compiled binaries section in readme
2025-07-13 13:05:12 -04:00
2025-07-04 18:14:29 -04:00
2025-07-04 18:14:29 -04:00
2025-07-13 13:02:51 -04:00
2025-07-12 13:35:54 -04:00
2024-12-29 10:29:44 -04:00
2025-07-13 12:30:27 -04:00
2025-07-13 12:30:27 -04:00
2025-07-13 12:30:27 -04:00
2025-06-16 08:40:00 -04:00

🦀 termitype

Crates.io Build Status License: GPL-3

Feature-rich terminal typing test

Heavily inspired by a certain typing test you might know.
Installation · Usage · Options · Development · Contributing · Roadmap · Acknowledgments


Termitype demo

Installation

From Crates.io

cargo install termitype

From Source

cargo install --git https://github.com/emanuel2718/termitype.git termitype

From Released Binaries

📦 Download prebuilt binaries from the latest release

Pre-compiled binaries are available for the following platforms:

Platform Architecture Download
Linux x86_64 (gnu) Download Latest
Linux x86_64 (musl) Download Latest
macOS Intel Download Latest
macOS Apple Silicon Download Latest
Windows x86_64 Download Latest

From Package Manager

🚧 Coming Soon 🚧
  • Homebrew: brew install termitype (planned)
  • AUR: yay -S termitype (planned)
  • Nix: nix-shell -p termitype (planned)
  • Windows: scoop install 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

Options

Option Description
-l, --language <LANG> Language dictionary to use
-t, --time <SECONDS> Test duration in seconds
-w, --words <"WORD1 WORD2"> Custom words for the test
--word-count <COUNT> Number of words to type
-s, --use-symbols Include symbols in test words
-p, --use-punctuation Include punctuation in test words
-n, --use-numbers Include numbers in test words
--lines <COUNT> Number of visible text lines (default: 3)
-T, --theme <THEME> Theme to use
--ascii <ART> ASCII art for results screen
--picker-style <STYLE> Menu style (quake, telescope, ivy, minimal)
--results-style <STYLE> Results display style (graph, minimal, neofetch)
--cursor-style <STYLE> Cursor style (beam, block, underline, blinking-beam, blinking-block, blinking-underline)
--show-fps Display FPS counter
--hide-live-wpm Hide live WPM counter
--hide-cursorline Hide menu cursor highlight
--hide-notifications Hide notifications
--monochromatic-results Use simplified results colors
--list-themes List all available themes
--list-languages List all available languages
--list-ascii List all available ASCII arts
--color-mode <MODE> Color support (basic, extended, truecolor)
--no-track Do not locally track tests results nor stats
--reset-db Reset and clears the content of the local database
-d, --debug Enable debug mode
-h, --help Print help
-V, --version Print version

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 --word-count 100             # Test will contain exactly 100 words
termitype -T "catppuccin-mocha"        # Use catppuccin-mocha theme
termitype -l spanish                   # Use Spanish test words
termitype -spn                         # Enable symbols, punctuation, and numbers
termitype --list-themes                # Show all available themes
termitype --results-style neofetch     # Use neofetch inspired results
termitype --picker-style telescope     # Use floating menu style
termitype --no-track                   # Do not locally track test results nor stats
termitype --hide-notifications         # Do not show notifications

Development

Prerequisites

  • Rust 1.70+
  • Cargo

Quick Start

  1. Clone the repository:
git clone https://github.com/emanuel2718/termitype.git
cd termitype
  1. Run the application:
# Development build
cargo run

# Release build
cargo run --release

# With debug logging
cargo run -- --debug

# Tail logs with something like this (MacOS example)
tail -f ~/Library/Application\ Support/termitype/termitype.log

# Tail logs with something like this (Linux example)
tail -f ~/.config/termitype/termitype.log

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
  • 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

Description
Another TUI typing game, inspired by a certain typing test you might know.
Readme GPL-3.0 3.3 MiB
Languages
Rust 99.7%
Nix 0.2%
Shell 0.1%