Terminal Typing Test Application
Project description
TuxType
A beautiful, terminal-based typing speed test inspired by Monkeytype.
📖 Description
[!CAUTION] Vibe Code Alert: This project is 95% vibe coded and was built overnight as a fun side-project. It's fun and easy to test your typing skill anytime in your terminal.
TuxType is a modern, feature-rich terminal typing test application built for developers and keyboard enthusiasts who prefer the command line. Inspired by the aesthetics and functionality of Monkeytype, it brings a premium typing experience directly to your terminal.
Whether you want to improve your WPM, track your progress over time, or just enjoy a distraction-free typing session, TuxType has you covered with offline capability, detailed statistics, and extensive customization.
✨ Features
- Multiple Modes:
- Words: Type a set number of words (10, 25, 50, 100, etc.).
- Time: Type for a fixed duration (15s, 30s, 60s, 120s).
- Comprehensive Statistics:
- Real-time WPM, Accuracy, and Burst tracking.
- Detailed post-test analysis including raw WPM, consistency, and error breakdown.
- Interactive Charts: Visualize your performance history.
- Rich History & Progress:
- Local database stores all your test results.
- Track Personal Bests for every mode and language combination.
- View daily activity and streak counters.
- Customization:
- Themes: Choose from Dark (default), Light and Dracula.
- Language Support: English and generic Programming syntax.
- Modifiers: Toggle punctuation and numbers.
- Modern TUI: Built with Textual and Rich for a responsive, mouse-supported terminal interface.
- SSH Compatible: Works seamlessly over SSH connections for remote typing tests.
📸 Demo
🛠️ Tech Stack
- Python - Core logic.
- Textual - TUI framework for the sophisticated interface.
- Rich - Beautiful terminal formatting and styling.
- Click - Command-line interface creation.
🚀 Installation
From PyPI (Recommended)
pip install tuxtype==1.0.0
From Source
-
Clone the repository:
git clone https://github.com/0xMihirK/TuxType.git cd TuxType
-
Create a virtual environment (optional but recommended):
python -m venv .venv # Windows .venv\Scripts\activate # Linux/Mac source .venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt python tuxtype.py
💻 Usage
Quick Start
Run the application with the default settings (50 words, English):
tuxtype
Command Line Options
You can launch TuxType with specific configurations directly from the proper command line:
# Start a 60-second time trial
tuxtype --mode time --time 60
# Practice with 100 words including punctuation
tuxtype --count 100 --punctuation
# Programming mode
tuxtype --language programming
# View all available options
tuxtype --help
Note through the UI, you can access the Settings screen to change these preferences persistently.
⚙️ Configuration
TuxType automatically saves your preferences and test history.
- Config File: Located at
data/tuxtype.config. - Database: Test history is stored in a SQLite database in the
data/directory.
You can modify settings like Themes, Behavior (min wpm, stop on error), and Visuals (caret style, live stats) mainly through the in-app Settings menu.
📂 Code Structure
TuxType/
├── src/
│ ├── app.py # Main application class & theme handling
│ ├── main.py # CLI entry point
│ ├── core/ # Core game logic
│ ├── screens/ # UI Screens (Menu, Test, Results, Settings, etc.)
│ ├── widgets/ # Reusable UI components (Graphs, StatsDisplay)
│ ├── database/ # Database manager & models
│ └── utils/ # Config & logging utilities
├── data/ # Storage for local DB and config files
├── img/ # Assets (Logo, Demo GIF)
└── tuxtype.py # Convenience launch script
🤝 Acknowledgements
- Monkeytype for the heavy inspiration on design and functionality.
- Textualize for building the amazing libraries that power this app.
📄 License
This project is licensed under the MIT License. See the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tuxtype-1.0.1.tar.gz.
File metadata
- Download URL: tuxtype-1.0.1.tar.gz
- Upload date:
- Size: 74.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eeed01fda5cba970b98ec85d7c2de7214e4bea6fba11e2fbd524adc0698e7e9d
|
|
| MD5 |
1acda6170df2f54a771b0a407c5b69db
|
|
| BLAKE2b-256 |
155d11acf0882131e1a230cc184d2fd7d16f05633c36c73f536be4fb4c2841ea
|
File details
Details for the file tuxtype-1.0.1-py3-none-any.whl.
File metadata
- Download URL: tuxtype-1.0.1-py3-none-any.whl
- Upload date:
- Size: 60.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1110e8290be2bc9924b37d664ff1d5b94911a846bc29a212176ef76e95875a3
|
|
| MD5 |
e01c98eccdef5245c3033b934b481b62
|
|
| BLAKE2b-256 |
907efa80a9ebdb46e4815e582ac49ecf6e387f0d0479a65d0485e2471d170253
|