Skip to main content

A terminal-first typing game inspired by MonkeyType and TypeRacer.

Project description

⌨ TYPEFASTER

CI PyPI Python License: MIT

A terminal-first typing game inspired by MonkeyType and TypeRacer — race quotes, beat your ghost, climb leaderboards, and play live multiplayer with friends. Pure TUI, no browser, no GUI.

brew install Anoshor/typefaster/typefaster   # or: pipx install typefaster-cli
typefaster

Install

Homebrew (macOS / Linux)

brew install Anoshor/typefaster/typefaster

pipx (any OS with Python 3.11+) — fastest

pipx install typefaster-cli

Verify: typefaster version

Play (offline — no account, no internet)

Just run it:

typefaster

Keyboard-only menu:

  • Quick Race — a fresh random quote each time; race your personal-best ghost.
  • Time Attack — type for 30 / 60 / 120s (←/→ to change the duration inline).
  • Practice — pick a mode/ghost.
  • Daily Challenge — same quote for everyone each day, local leaderboard.
  • Stats / History / Profile / Leaderboard / Settings.

Live WPM, accuracy, progress, and an animated ghost bar. Backspace corrects mistakes (original errors still count, MonkeyType-style). All progress is saved locally in SQLite.

Direct commands too:

typefaster race                      # quote race
typefaster race --mode time --time 60
typefaster daily
typefaster stats   |   typefaster history

Play online (multiplayer lobbies)

It works out of the box against the public server — no setup. From the main menu pick Account to register/login, then Play Online:

Account      → Register / Login (password, GitHub, or Google)
Play Online  → ➕ Create a lobby  → share the join code
             → or type a friend's code + Enter to join

In the waiting room press R to ready; the server runs the countdown, sends everyone the same quote, shows live progress bars, and scores results authoritatively (with anti-cheat). Esc leaves.

Prefer the CLI?

typefaster register <name>      # or: typefaster login --github / --google
typefaster lobby create --name "Friday" --time 60
typefaster lobby join ABC123
typefaster leaderboard global   # global | daily | weekly

Self-host the server (optional)

The game ships pointing at a public server, but you can run your own:

git clone https://github.com/Anoshor/typefaster-cli && cd typefaster-cli
cp .env.example .env            # set TYPEFASTER_JWT_SECRET
make up                         # Redis + FastAPI server on :8000 (Docker)
typefaster config set-server http://localhost:8000

Deploy guides: docs/deploy-oracle.md (free 24/7 VM) · docs/deploy-fly.md · TLS + hardening in docs/SECURITY-REVIEW.md.

How it works

  • Client: Python · Typer (CLI) · Textual + Rich (TUI) · SQLite (local progress) · httpx + websockets (online).
  • Server: FastAPI · WebSockets · Redis · Pydantic — server-authoritative race timing and scoring.
  • Deep dive: docs/DEEPDIVE.md · architecture: docs/architecture.md.

Develop

make install     # editable install + dev deps
make play        # run it
make check       # ruff + mypy + pytest

Contributions welcome — see CONTRIBUTING.md.

License

MIT — see LICENSE. Crafted by Anoshor Paul.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

typefaster_cli-0.2.0.tar.gz (125.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

typefaster_cli-0.2.0-py3-none-any.whl (75.2 kB view details)

Uploaded Python 3

File details

Details for the file typefaster_cli-0.2.0.tar.gz.

File metadata

  • Download URL: typefaster_cli-0.2.0.tar.gz
  • Upload date:
  • Size: 125.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for typefaster_cli-0.2.0.tar.gz
Algorithm Hash digest
SHA256 27428ae6f698f5ce001183c9c03a4560ebe1c24479d873f4766675401481b800
MD5 cc1ffa34a5038aa2e618064e031fd19a
BLAKE2b-256 85c64f4af83f79e07fde36e4f06df6e03ab30e0ee8723c9fb57fb1f4d4a7f1fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for typefaster_cli-0.2.0.tar.gz:

Publisher: release.yml on Anoshor/typefaster-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file typefaster_cli-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: typefaster_cli-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 75.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for typefaster_cli-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d09722fb75dc6328be22e51ae29aea0ba31fdc729575de9e5bb116feab26f395
MD5 6ae50a9e22cef06791c4229d194de674
BLAKE2b-256 239b0995712152209c00b2f5cf307c677cd29ce5d28962f203235ae1e8f34e0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for typefaster_cli-0.2.0-py3-none-any.whl:

Publisher: release.yml on Anoshor/typefaster-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page