Skip to main content

typerace

TypeRacer-style typing races in your terminal. Type quotes from movies, TV, books, speeches and songs word by word, then see your speed over the race and speedcubing-style averages.

╭─ race ───────────────────────────────────────────────────────────────╮
│ you                                                                  │
│ ┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄▶┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┃          92 wpm │
╰──────────────────────────────────────────────────────────────────────╯
╭──────────────────────────────────────────────────────────────────────╮
│ It was the best of times, it was the worst of times, it was the age  │
│ of wisdom, it was the age of foolishness, it was the epoch of belief │
╰──────────────────────────────────────────────────────────────────────╯
╭──────────────────────────────────────────────────────────────────────╮
│ wor▌                                                                 │
╰──────────────────────────────────────────────────────────────────────╯
  • About 6,500 quotes, short to very long, mixed like TypeRacer. You won't see a quote again until you've done every quote of its length.
  • Word by word, like the website: the input box holds the current word and clears once it's right. Mistakes show red and have to be fixed.
  • Results: speed, accuracy, peak, pace through the race, a chart of your speed with typos marked, and your best single, ao5, ao12, ao25, ao50 and ao100, plus your last 12 races.
  • Lightweight: one Python file plus the quotes, no dependencies on Linux or macOS. Colours follow your terminal's theme.

Install

pipx install typerace          # or: uv tool install typerace

Homebrew (macOS, Linux):

brew install elliottkobelansky/tap/typerace

Debian / Ubuntu: download the .deb from the latest release, then

sudo apt install ./typerace_*_all.deb

Needs Python 3.9 or newer. On Windows, pipx install typerace also installs windows-curses.

Use

typerace                 # a random quote, mixed lengths
typerace short           # or medium, long, verylong
typerace --history       # recent races and your averages
Key
Ctrl+Backspace, Ctrl+W, Alt+Backspace clear the current word
Tab skip to a new quote
Esc quit (q also works on the results screen)
Enter race again from the results screen

If your terminal uses a Nerd Font, set TYPERACE_NERD_FONT=1 to get a car on the race lane instead of ▶.

How it's scored

  • Speed is (characters typed ÷ 5) ÷ minutes, the standard words-per-minute measure (a "word" is any 5 characters, spaces included). The timer starts at your first keypress and stops when you finish the last word. Typos aren't subtracted: you have to fix them, which costs time.
  • Accuracy is correct keystrokes ÷ all keystrokes.
  • Peak is your fastest stretch of at least 3 seconds (or 15% of the race).
  • Pace is your speed in the first quarter, the middle half and the last quarter of the race.
  • ao5 … ao100 are averages of your last 5 … 100 races, speedcubing style: the fastest and slowest 5% (rounded up) are dropped, so 1 each for ao5 and ao12, 2 for ao25, 3 for ao50 and 5 for ao100.

Your races are saved in $XDG_DATA_HOME/typerace (normally ~/.local/share/typerace).

Development

PYTHONPATH=src python3 -m typerace       # run from the source tree
python3 -m unittest discover -s tests    # tests (a full race is played in a pty)
sh packaging/build-deb.sh                # build dist/typerace_VERSION_all.deb
python3 tools/update_quotes.py           # refresh the quotes from Monkeytype

Releases: bump __version__ in src/typerace/__init__.py, then push a tag like v0.2.0. GitHub Actions builds the wheel, sdist and .deb, attaches them to a GitHub release, and publishes to PyPI.

Credits and licence

The quotes are Monkeytype's English quote collection, used under the GPL-3.0; see QUOTES.md. Each quote belongs to its original source.

typerace is licensed under the GNU General Public License v3.0 or later.

Metadata

Release files for typerace 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for typerace 0.1.0
File Size Uploaded
typerace-0.1.0.tar.gz 750.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for typerace 0.1.0
File Interpreter ABI Platform
typerace-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.5 MB

Release files / typerace-0.1.0.tar.gz

Download URL typerace-0.1.0.tar.gz
Size 750.0 kB
Tags Source
SHA-256 checksum
How to use checksums
11fa835829f5afe014b6792ec37301d065fd4f3fc8a56ba6751dc7d0223239e5
BLAKE2b-256 checksum
How to use checksums
af26b6f92f6bc29f9fa9a8aa452aabd2124467c28877a5855b310f78c4cf711a
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 Oct 13, 2026.

Transparency log

Release files / typerace-0.1.0-py3-none-any.whl

Download URL typerace-0.1.0-py3-none-any.whl
Size 750.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8de0fb6b541264f27ce912c7cde4938284d76f1321950070774dcc7de3bce4bf
BLAKE2b-256 checksum
How to use checksums
4a0157bd753d31265e56337db95b5e25aa7707423eb262c929ba42e1172fd5f2
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 Oct 13, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page