Skip to main content

Pytype - Terminal Typing Speed Test

A fast, minimal terminal-based typing speed test written in Python. Test your typing speed and accuracy right from your terminal.

Features

  • Real-time typing test with live WPM and accuracy feedback
  • Color-coded visual feedback - Green for correct characters, red for mistakes
  • Customizable test duration (default 60 seconds)
  • Simple terminal UI using Python's curses library
  • Cross-platform support (Linux, macOS, Windows with WSL)
  • Multiple test prompts to prevent memorization

Installation

From Source

git clone https://github.com/basanta-bhandari/Pytype.git
cd Pytype
pip install -e .

Quick Start

Run the typing test directly:

python3 main.py

How to Use

  1. Start the application - You'll see a welcome screen with instructions
  2. Press 's' to begin a 60-second typing test
  3. Type the displayed text as quickly and accurately as you can
  4. Use Backspace to correct any mistakes
  5. Test ends when you complete the text or time runs out
  6. View your results - See your WPM, accuracy percentage, and character count
  7. Press 'r' to retry or 'q' to quit

Controls

Key Action
s Start test
q Quit application
Backspace Delete last character
Enter Finish typing (optional)
r Retry after results
ESC Exit test

Metrics

  • WPM (Words Per Minute) - Calculated as characters typed / 5 / minutes elapsed
  • Accuracy - Percentage of correctly typed characters
  • Typed - Total characters typed

Requirements

  • Python 3.7 or higher
  • curses module (included on Linux/macOS)
  • windows-curses (automatically installed on Windows)

Installation by OS

Linux / macOS

python3 -m pip install -e .
typing-test

Windows

pip install windows-curses
python3 main.py

Dependencies

  • windows-curses (Windows only) - Terminal control library for Windows

Development

To contribute or modify the code:

  1. Clone the repository
  2. Make your changes
  3. Test with python3 main.py
  4. Submit a pull request

Known Limitations

  • Curses library behavior may vary slightly across different terminal emulators
  • Windows support requires WSL or the windows-curses package
  • Custom test durations are not yet available via CLI arguments

Troubleshooting

"The curses module is required" error on Windows:

pip install windows-curses

Terminal display issues:

  • Try resizing your terminal window
  • Ensure your terminal supports color output
  • Use a modern terminal emulator (iTerm2, Windows Terminal, GNOME Terminal, etc.)

No text appearing:

  • Check that your terminal width is at least 60 characters
  • Verify curses is properly installed

Feedback

Found a bug? Have a feature request? Open an issue on GitHub.

Future Enhancements

  • Custom test duration via CLI arguments
  • Difficulty levels (easy, medium, hard)
  • Score history tracking
  • Theme customization
  • Using Pypi for convinience

Metadata

Release files for Pytype-B1 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Pytype-B1 0.1.0
File Size Uploaded
pytype_b1-0.1.0.tar.gz 5.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Pytype-B1 0.1.0
File Interpreter ABI Platform
pytype_b1-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 10.3 kB

Release files / pytype_b1-0.1.0.tar.gz

Download URL pytype_b1-0.1.0.tar.gz
Size 5.0 kB
Tags Source
SHA-256 checksum
How to use checksums
6dd7b37be51afa3554df9356ba21177c7fbc922522d64c899dff9e333e771667
BLAKE2b-256 checksum
How to use checksums
dffaf50f68f7e182def1899f6d8778a4353e4aed5945f558b46999461596d035
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Release files / pytype_b1-0.1.0-py3-none-any.whl

Download URL pytype_b1-0.1.0-py3-none-any.whl
Size 5.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a093fd8d3c260cbf7f187965450e627282857c23ada84d14e3c6cbfe1691873a
BLAKE2b-256 checksum
How to use checksums
afcc080e609ca5ed8315fa4852ccadbfd0698be0bb035ea8e9c20444032cacdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page