Metadata-Version: 2.4
Name: ttyping
Version: 1.0.8
Summary: A minimal terminal typing test — English & Korean, monkeytype-inspired
License: Apache-2.0
License-File: LICENSE
Keywords: monkeytype,terminal,textual,tui,typing
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Games/Entertainment
Requires-Python: >=3.10
Requires-Dist: textual>=0.63.0
Description-Content-Type: text/markdown

# ttyping ⌨️

![](./screenshot.png)

A minimal, monkeytype-inspired terminal typing test for English and Korean, built with Python and [Textual](https://github.com/Textualize/textual).

`ttyping` provides a clean and focused typing practice environment directly in your terminal. It tracks speed (WPM) and accuracy, saving results locally for history viewing.

## ✨ Features

- **Multi-language Support**: Practice English (Qwerty, Dvorak, Colemak) and Korean (2-set, 3-set).
- **Finger Practice**: Target specific finger groups to improve muscle memory.
- **Accuracy Focused**: Optional target accuracy mode that restarts on mistakes.
- **Local History**: Keep track of your speed (WPM) and accuracy over time.

## 🚀 Installation

Install using `uv` (recommended):

```bash
uv tool install ttyping
```

## 🎮 Usage

Run the app without arguments to start English practice:

```bash
uvx ttyping
```

## ⌨️ Keybindings

| Key | Action |
|-----|--------|
| **e, k, w, h, o, q** | Main Menu shortcuts (English, Korean, Weak, History, Options, Quit) |
| **Tab** | Restart the test |
| **Esc** | Go back to previous menu |
| **Ctrl+C** | Quit the application |
| **Space** | Proceed to the next word |
| **Enter** | Select menu option or complete word |

## 🛠️ Tech Stack

- **Language**: Python 3.10+
- **TUI Framework**: [Textual](https://github.com/Textualize/textual)
- **Styling**: [Rich](https://github.com/Textualize/rich)
- **Data storage**: `~/.ttyping/results.json`

## 📄 License

Apache-2.0
