ttytype
A keyboard-first terminal typing test built with Textual. Run word-count, timed, public-domain quote, and private custom-text tests without accounts, telemetry, or network access.
Highlights
- Live raw and net WPM, accuracy, time, progress, and error feedback.
- Word, timed, quote, and custom-text modes.
- Responsive dark and light interfaces with redundant non-color cues.
- Optional local SQLite history, recent results, and personal bests.
- Keyboard-first operation on Linux, macOS, and Windows.
Quick start
ttytype requires Python 3.14 or newer. Install it from PyPI with uv or pipx:
uv tool install ttytype
# or
pipx install ttytype
Then launch it:
ttytype
See Getting started for source-checkout installation, terminal requirements, and a first-test walkthrough.
Documentation
- Getting started
- User guide and controls
- Scoring rules
- Configuration and storage
- Privacy
- Development
- Roadmap
- Changelog
The completed modern-TUI migration plan is retained as a historical record in
docs/archive/v0.1.0-plan.md. Roadmap entries are
ideas under evaluation, not promised features.
Privacy
ttytype is local-only. It has no accounts, networking, synchronization, telemetry, or analytics. Optional history stores aggregate scores and chart samples, never target text, typed text, custom text, or individual keystrokes. Read the full privacy documentation.
Development and contributing
Development uses uv, Ruff, strict Mypy, pytest, Hypothesis, and Textual Pilot. See Development for the quality gate and Contributing before opening a pull request. Please report security issues according to the security policy.
License
Released under the MIT License.
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 ttytype-0.1.1.tar.gz.
File metadata
- Download URL: ttytype-0.1.1.tar.gz
- Upload date:
- Size: 25.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cba628980b192f7872b18c1d465f77e2ee862d48372410a01e3a21cc6c040771
|
|
| MD5 |
22e2c2b1cc721a4ec9f4639582785cc2
|
|
| BLAKE2b-256 |
1a0a2c322e26ae44fc34ff439cabccef3d746edd0595c52ac991e4b06d551153
|
Provenance
The following attestation bundles were made for ttytype-0.1.1.tar.gz:
Publisher:
release.yml on jakeryderv/ttytype
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ttytype-0.1.1.tar.gz -
Subject digest:
cba628980b192f7872b18c1d465f77e2ee862d48372410a01e3a21cc6c040771 - Sigstore transparency entry: 2554791093
- Sigstore integration time:
-
Permalink:
jakeryderv/ttytype@db05e438a719850decea1efebae8574a50f37e99 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/jakeryderv
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@db05e438a719850decea1efebae8574a50f37e99 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file ttytype-0.1.1-py3-none-any.whl.
File metadata
- Download URL: ttytype-0.1.1-py3-none-any.whl
- Upload date:
- Size: 37.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b5a42f9b1877f8d71200edf3f1372000df420b16eac07cc524fdf5065d1f3cb
|
|
| MD5 |
af0427c64a83267e0fa73bbdbc18698a
|
|
| BLAKE2b-256 |
07a8bb9becae7df65ee588b249b3e8878e3f69d319746f4868431f92dc627b6b
|
Provenance
The following attestation bundles were made for ttytype-0.1.1-py3-none-any.whl:
Publisher:
release.yml on jakeryderv/ttytype
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ttytype-0.1.1-py3-none-any.whl -
Subject digest:
6b5a42f9b1877f8d71200edf3f1372000df420b16eac07cc524fdf5065d1f3cb - Sigstore transparency entry: 2554791121
- Sigstore integration time:
-
Permalink:
jakeryderv/ttytype@db05e438a719850decea1efebae8574a50f37e99 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/jakeryderv
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@db05e438a719850decea1efebae8574a50f37e99 -
Trigger Event:
workflow_dispatch
-
Statement type: