Skip to main content

A beautiful CLI typing test to practice your typing speed

Project description

⌨️ typing-cli

A beautiful and fast CLI typing test — right from your terminal.

Practice your typing speed with real-time WPM tracking, accuracy stats, animated pixel-art F1 car, multiple languages, and color themes.

PyPI version Python 3.10+ License: MIT

  __               _                        ___ 
 / /___  ______  (_)___  ____ _        ____/ (_)
/ __/ / / / __ \/ / __ \/ __ `/  ____ / __/ / / 
/ /_/ /_/ / /_/ / / / / / /_/ /  /___// /_/ / /  
\__/\__, / .___/_/_/ /_/\__, /        \__/_/_/   
   /____/_/            /____/                     

🚀 Installation

Copy-paste this in your terminal — it installs the app and configures PATH automatically:

Windows (PowerShell):

python -c "import urllib.request as u; exec(u.urlopen('https://raw.githubusercontent.com/lecoffre/typing-cli/main/install.py').read())"

macOS / Linux:

python3 -c "import urllib.request as u; exec(u.urlopen('https://raw.githubusercontent.com/lecoffre/typing-cli/main/install.py').read())"

Then restart your terminal and type typing-cli.

Alternative

pip install typing-cli

If the command is not found after install, you can always run:

python -m typingtest

From source

git clone https://github.com/lecoffre/typing-cli.git
cd typing-cli
pip install -e .

▶️ Usage

typing-cli

If the command is not found, you can always run:

python -m typingtest

The app launches in your terminal. Start typing!

🔄 Update

pip install --upgrade typing-cli

⌨️ Keyboard Shortcuts

Shortcut Action
Tab Restart test
Escape Back / Quit
Ctrl+T Change theme
Ctrl+L Change language
Ctrl+M Switch mode (words/code)
Ctrl+H View score history
Ctrl++/- Zoom in/out
Ctrl+Q Quit

🌍 Languages

Built-in:

  • 🇬🇧 English (200 most common words)
  • 🇫🇷 French (200 most common words)

🎨 Themes

  • Midnight — deep dark blues (default)
  • Forest — earthy greens
  • Sunset — warm amber tones
  • Ocean — cool cyan palette
  • Mono — minimal grayscale

📊 Features

  • Real-time WPM & accuracy tracking
  • Per-character coloring (correct / incorrect / cursor)
  • Animated pixel-art F1 car reflecting your speed
  • Gamification: streak, combo, milestones, rank system
  • Code typing mode
  • Score history with date, WPM, accuracy
  • Multiple languages & themes
  • Splash screen with ASCII art
  • Clean, extensible architecture

🛠️ Development

git clone https://github.com/lecoffre/typing-cli.git
cd typing-cli
pip install -e .

# Run directly
python -m typingtest

🤝 Contributing

Contributions are welcome! Feel free to open issues and pull requests.

  1. Fork the repo
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit (git commit -m 'Add amazing feature')
  4. Push (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

typing_cli-0.1.1.tar.gz (22.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

typing_cli-0.1.1-py3-none-any.whl (28.2 kB view details)

Uploaded Python 3

File details

Details for the file typing_cli-0.1.1.tar.gz.

File metadata

  • Download URL: typing_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 22.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for typing_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5b401ef29d82f2b163209d68495401aa05d7f892a4987eee99462235f93747a6
MD5 39107609a4df29c7459f47b508652e79
BLAKE2b-256 06ad588da236ee361254ef3805bf7773e7d48069cb5eda9ed495edfc32658930

See more details on using hashes here.

Provenance

The following attestation bundles were made for typing_cli-0.1.1.tar.gz:

Publisher: publish.yml on lecoffre/typing-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file typing_cli-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: typing_cli-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 28.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for typing_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2f97ef8292bfb5388da74e671f6f77d85d68a7a567f70387e7132414f76e06cb
MD5 b60dfb4d3504edaffa40e3051ee91c1b
BLAKE2b-256 58b2b6aa68d59dc29dac5b951bade11bb8968ec9e54cb3caf556993820b114d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for typing_cli-0.1.1-py3-none-any.whl:

Publisher: publish.yml on lecoffre/typing-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page