A minimal terminal typing test — English & Korean, monkeytype-inspired
Project description
ttyping ⌨️
A minimal, monkeytype-inspired terminal typing test for English and Korean, built with Python and 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) and Korean (2-set, 3-set).
- Custom Content: Type from internal word lists, sentences, or your own text files.
- 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.
- Premium Aesthetics: Clean UI with a monkeytype-inspired color palette.
🚀 Installation
Install using uv (recommended):
uv tool install ttyping
Or with pip:
pip install ttyping
🎮 Usage
Run the app without arguments to start English practice:
ttyping
CLI Options
| Argument | shorthand | Description |
|---|---|---|
--lang [lang] |
Set language/layout (en_qwerty, ko_2set, etc.) |
|
--file [path] |
Practice using a custom text file | |
--words [n] |
Set number of words (max 1000) | |
--time [s] |
-t |
Set test duration in seconds (overrides words) |
--target-accuracy [n] |
-a |
Set target (0-100); restarts on drop below |
history |
View past results directly |
⌨️ Keybindings
| Key | Action |
|---|---|
| e, k, w, h, o, q | Main Menu shortcuts (English, Korean, Weak, History, Options, Quit) |
| Tab | Restart the test |
| Esc | Quit or Go Back |
| Space | Proceed to the next word |
| Enter | Select menu option or complete word |
🛠️ Tech Stack
📄 License
MIT
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 ttyping-0.1.1.tar.gz.
File metadata
- Download URL: ttyping-0.1.1.tar.gz
- Upload date:
- Size: 78.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b72309cccf2d5ee79ccb462570289dbc49b98209d02b431cde324d0ad573922
|
|
| MD5 |
e9452113bed91b73d8368cc481f5be5a
|
|
| BLAKE2b-256 |
2010dd5a6be44cfef42ae3d79b20ce8bf8e1edf37a8fc436e51cb26a5064c397
|
Provenance
The following attestation bundles were made for ttyping-0.1.1.tar.gz:
Publisher:
pypi.yml on partrita/ttyping
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ttyping-0.1.1.tar.gz -
Subject digest:
2b72309cccf2d5ee79ccb462570289dbc49b98209d02b431cde324d0ad573922 - Sigstore transparency entry: 1056664481
- Sigstore integration time:
-
Permalink:
partrita/ttyping@c5c1274b45e4322808dbfc36edd1c2d5452034a1 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/partrita
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@c5c1274b45e4322808dbfc36edd1c2d5452034a1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ttyping-0.1.1-py3-none-any.whl.
File metadata
- Download URL: ttyping-0.1.1-py3-none-any.whl
- Upload date:
- Size: 49.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32f6ec22f1436ce6d45988c00316aef6f57faf0b3404440c51292f8d41463aac
|
|
| MD5 |
6ecf1e92b3182b097d3f51b9e855d516
|
|
| BLAKE2b-256 |
c268026f403d939fee62651479eaf8cf9960e5b8dd502efa6c60968549e71baa
|
Provenance
The following attestation bundles were made for ttyping-0.1.1-py3-none-any.whl:
Publisher:
pypi.yml on partrita/ttyping
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ttyping-0.1.1-py3-none-any.whl -
Subject digest:
32f6ec22f1436ce6d45988c00316aef6f57faf0b3404440c51292f8d41463aac - Sigstore transparency entry: 1056664557
- Sigstore integration time:
-
Permalink:
partrita/ttyping@c5c1274b45e4322808dbfc36edd1c2d5452034a1 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/partrita
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@c5c1274b45e4322808dbfc36edd1c2d5452034a1 -
Trigger Event:
push
-
Statement type: