TermTypr
Practice your typing right in the terminal. Track your speed, see where you improve, and have fun doing it.
What it does
- Three game modes: random words, full phrases, or racing your own ghosts
- Live feedback: WPM and accuracy update as you type
- Stats & charts: see your history, personal bests, and trends over time
- Customizable: set the word count per game, switch themes, add your own words
- Runs anywhere: works on any terminal with Python 3.10+
Install and run
pip install termtypr
termtypr
That's it. The main menu lets you pick a game mode and start typing.
Games
- Random Words: type a batch of random words as fast and accurately as you can
- Phrase Typing: type full phrases and quotes to build flow
- Race a Ghost: race a keystroke-perfect replay of one of your best runs
Your best phrase runs are saved as ghosts automatically (change that in
Ghost Settings, Ctrl+P). Press R on a phrase result to rematch its ghost.
CLI commands
termtypr # Launch the app
termtypr stats # Quick stats from the command line
termtypr add-words word1 word2 # Add your own words to the pool
termtypr list-words # See all available words
Development
Setup Development Environment
git clone https://github.com/SteMazzO/termtypr.git
cd termtypr
uv run termtypr
Run Tests
uv run pytest -v
Contributing
Contributions are welcome - see CONTRIBUTING.md.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Acknowledgments
- Inspired by MiType, 10FastFingers, and TypeRacer
- Text samples from Typeracer Data
- Built with Textual by Textualize
Changelog
See CHANGELOG.md for version history and release notes.
Metadata
Release files for termtypr 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| termtypr-1.0.0.tar.gz | 585.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| termtypr-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.2 MB
Release files / termtypr-1.0.0.tar.gz
| Download URL | termtypr-1.0.0.tar.gz |
|---|---|
| Size | 585.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6009615a4b75d9f5d0404c084756c594bdd5971a2f45f8ff1b1fb7c0d15968c7
|
|
BLAKE2b-256 checksum How to use checksums |
6db5846a432a8efe6a092d9300e92a9bdfe30f44c367c3c8c19cfcefef214a02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / termtypr-1.0.0-py3-none-any.whl
| Download URL | termtypr-1.0.0-py3-none-any.whl |
|---|---|
| Size | 600.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
80b85cff49d977de4e4ad154e6769f0de0b09d7d680394f92f3cf9bc6a5e6c44
|
|
BLAKE2b-256 checksum How to use checksums |
3a2ced144c64b6535ec583e500cff6dadc8463b581ea49bee258436a3cf4af22
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency log