A typing test that runs in your terminal. Practice typing in different languages and programming syntax without opening a browser.
- Support for 200+ languages including English, Spanish, French, German, Russian, Chinese, Japanese, and more
- Programming language word sets (Go, Python, JavaScript, Rust, C++, Java, TypeScript, etc.)
- Configurable word count and display options
- Live WPM and accuracy tracking
- Terminal UI built with Bubble Tea
- Keyboard shortcuts for quick navigation and restart
- Go 1.21 or higher
- Terminal with ANSI color support
-
Clone the repository:
git clone https://github.com/ypatel2022/ttt.git cd ttt -
Install dependencies:
go mod tidy
-
Run the application:
go run ./ttt
- Run
go run ./ttt - Navigate with arrow keys
- Press Enter to start a typing test
- Start typing the words shown
- Press Tab to restart or Escape to go back
- Arrow keys or k/j: Navigate options
- Enter or Space: Select
- Ctrl+C: Quit
- Just start typing the displayed words
- Tab: Restart test
- Escape: Back to menu
- Ctrl+C: Quit
- Arrow keys: Navigate settings
- Enter: Change setting
- Escape: Back to menu
Settings are stored in config.yaml:
language: english.json # Language/word set to use
num_words: 10 # Number of words per test
show_accuracy: true # Display accuracy percentage
show_wpm: true # Display words per minuteThe languages/ directory has 200+ language files:
- Natural languages: English, Spanish, French, German, Russian, Chinese, Japanese, Arabic, Hindi, etc.
- Programming languages: Python, JavaScript, Go, Rust, C++, Java, TypeScript, etc.
- Specialized sets: Medical terms, commonly misspelled words, contractions
- Fun stuff: Lorem Ipsum, Pig Latin, Klingon, Toki Pona
Language files sourced from MonkeyType
{
"name": "english",
"noLazyMode": true,
"orderedByFrequency": true,
"words": ["the", "be", "of", "and", ...]
}# Build for current platform
go build -o ttt ./ttt
# Cross-compile for other platforms
GOOS=linux GOARCH=amd64 go build -o ttt-linux ./ttt
GOOS=windows GOARCH=amd64 go build -o ttt-windows.exe ./ttt
GOOS=darwin GOARCH=amd64 go build -o ttt-macos ./ttt- Bubble Tea - TUI framework
- Lipgloss - Terminal styling
- Viper - Configuration management
Want to add a language or fix something? Cool!
- Fork the repo
- Make your changes
- Test it out
- Submit a pull request
To add a language, just create a JSON file in the languages/ directory following the existing format.
MIT License - see LICENSE file.
- Built with Charm terminal tools
- Language datasets from MonkeyType
Happy typing!


