Skip to content

hwyll/typtea

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

typtea

Minimal terminal-based typing speed tester with support for dozens of programming languages



Features

  • Terminal-based typing with WPM and accuracy tracking
  • Multi-language support including English and 30+ programming languages
  • Infinite word generation with smooth 3-line scrolling display
  • Minimalist TUI built with Bubble Tea and Lipgloss
  • Embedded language data for easy distribution
  • Accurate metrics following standard typing test calculations

Supported Languages

Bash C C++ C#
Crystal CSS Emacs English 1k
Erlang Go Haskell HTML
Java JavaScript JSON Julia
Lisp Lua OCaml Perl
PHP PowerShell Python R
Ruby Rust SCSS SQL
Swift TeX TypeScript Vala
Vimscript Wolfram YAML Zig

Installation

Via brew

brew install hwyll/tap/typtea

Via go install

go install github.com/hwyll/typtea@latest

Build from Source

git clone --depth=1 https://github.com/hwyll/typtea
cd typtea/
go build
sudo mv typtea /usr/local/bin/
typtea -h

Usage

Basic Commands

# Start a 30-second English typing test (default)
typtea start

# Start a 60-second typing test
typtea start --duration 60

# Start a Rust keywords typing test
typtea start --lang rust

# Combine duration and language
typtea start --duration 45 --lang javascript

# List all available languages
typtea start --list-langs

# Get help
typtea --help
typtea start --help

During the Test

  • The test starts when you begin typing
  • Backspace to correct mistakes
  • Enter to restart after completion
  • Esc to quit the application

Development

Prerequisites

Go 1.19+

Setup

git clone https://github.com/hwyll/typtea.git
cd typtea
go mod tidy
go build
./typtea start

Adding New Languages

  1. Create a JSON file in internal/game/data/ with the format:
{
  "name": "Language Name",
  "words": ["word1", "word2", "word3", ...]
}
  1. Rebuild the application to embed the new language data

Dependencies

License & Attribution

Original work © 2025-present Ashish Kumar
Fork modifications © 2026-present hwyll

Forked from ashish0kumar/typtea

LICENSE  

About

minimal terminal typing tester

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%