Skip to main content

Terminal Typing Test Application

Project description

TuxType Logo

TuxType

A beautiful, terminal-based typing speed test inspired by Monkeytype.

PyPI Python Version License


📖 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

TuxType 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

  1. Clone the repository:

    git clone https://github.com/0xMihirK/TuxType.git
    cd TuxType
    
  2. Create a virtual environment (optional but recommended):

    python -m venv .venv
    # Windows
    .venv\Scripts\activate
    # Linux/Mac
    source .venv/bin/activate
    
  3. 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


Download files

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

Source Distribution

tuxtype-1.0.1.tar.gz (74.9 kB view details)

Uploaded Source

Built Distribution

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

tuxtype-1.0.1-py3-none-any.whl (60.2 kB view details)

Uploaded Python 3

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

Hashes for tuxtype-1.0.1.tar.gz
Algorithm Hash digest
SHA256 eeed01fda5cba970b98ec85d7c2de7214e4bea6fba11e2fbd524adc0698e7e9d
MD5 1acda6170df2f54a771b0a407c5b69db
BLAKE2b-256 155d11acf0882131e1a230cc184d2fd7d16f05633c36c73f536be4fb4c2841ea

See more details on using hashes here.

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

Hashes for tuxtype-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a1110e8290be2bc9924b37d664ff1d5b94911a846bc29a212176ef76e95875a3
MD5 e01c98eccdef5245c3033b934b481b62
BLAKE2b-256 907efa80a9ebdb46e4815e582ac49ecf6e387f0d0479a65d0485e2471d170253

See more details on using hashes here.

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