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
- Start the application - You'll see a welcome screen with instructions
- Press 's' to begin a 60-second typing test
- Type the displayed text as quickly and accurately as you can
- Use Backspace to correct any mistakes
- Test ends when you complete the text or time runs out
- View your results - See your WPM, accuracy percentage, and character count
- 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
cursesmodule (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:
- Clone the repository
- Make your changes
- Test with
python3 main.py - 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)
| File | Size | Uploaded | |
|---|---|---|---|
| pytype_b1-0.1.0.tar.gz | 5.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|