Skip to main content

Terminal tool for watching hockey games

Project description

Faceoff

Faceoff Logo

A terminal user interface (TUI) application for following NHL hockey games in real-time.

Python License

Features

  • Live Game Schedule: Browse NHL games by date with easy navigation (previous/next day)
  • Real-time Updates: Auto-refreshing scores for live games
  • Game Details: View play-by-play, box scores, and scoring summaries for in-progress and completed games
  • Pre-Game Preview: View matchup data including goalie comparison and skater leaders for upcoming games
  • League Standings: View current NHL standings with multiple views (Wild Card, Division, Conference, League)
  • Player Stats Leaders: View top players in various statistical categories for skaters and goalies
  • Team Browser: Browse all NHL teams, view rosters, and team schedules
  • Player Profiles: View detailed player information, career stats, and game logs
  • Responsive Layout: Game cards automatically arrange based on terminal width
  • Local Time Display: Game times shown in your local timezone with timezone abbreviation

Installation

Using uvx (recommended)

uvx faceoff

Using pip

pip install faceoff

Then run:

faceoff

From source

git clone https://github.com/vgreg/faceoff.git
cd faceoff
uv run faceoff

Usage

Schedule Screen (Main Screen)

Key Action
Arrow keys Navigate between game cards
h Previous day
l Next day
t Jump to today
s View standings
p View player stats
m Browse teams
r Refresh
Enter Select game (for live/completed games)
q Quit

Game Screen

Key Action
b or Escape Back to schedule
r Refresh
Tab Switch between tabs (Play-by-Play, Box Score, Summary)
q Quit

Pre-Game Screen

Key Action
b or Escape Back to schedule
r Refresh
q Quit

Standings Screen

Key Action
Tab Switch between views (Wild Card, Division, Conference, League)
Up/Down or j/k Scroll standings
b or Escape Back to schedule
r Refresh
q Quit

Stats Screen

Key Action
Tab Switch between Skaters and Goalies
b or Escape Back to schedule
r Refresh
q Quit

Teams Screen

Key Action
Arrow keys Navigate between team cards
Enter Select team to view details
b or Escape Back to schedule
r Refresh
q Quit

Team Detail Screen

Key Action
Tab Switch between Roster and Schedule
Enter Select player to view profile
b or Escape Back to teams
r Refresh
q Quit

Player Screen

Key Action
Tab Switch between Info, Stats, and Game Log
b or Escape Back
r Refresh
q Quit

Screenshot

Faceoff Screenshot

Acknowledgments

This project was inspired by Playball, a similar terminal application for following MLB baseball games.

Built With

  • Textual - The modern TUI framework for Python that powers the user interface
  • nhl-stats-api-client - Python client for accessing NHL API data

Disclaimer

This project is not affiliated with, endorsed by, or in any way officially connected with the National Hockey League (NHL), any of its teams, or any of its affiliates. All NHL logos, trademarks, and data are the property of the NHL and its teams.

This application uses publicly available NHL API data for informational and educational purposes only.

Development

Setup

git clone https://github.com/vgreg/faceoff.git
cd faceoff
make install

Running Tests

uv run pytest

Linting

uv run ruff check src/

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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

faceoff-0.1.2.tar.gz (367.0 kB view details)

Uploaded Source

Built Distribution

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

faceoff-0.1.2-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

Details for the file faceoff-0.1.2.tar.gz.

File metadata

  • Download URL: faceoff-0.1.2.tar.gz
  • Upload date:
  • Size: 367.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for faceoff-0.1.2.tar.gz
Algorithm Hash digest
SHA256 1306faa0ecf8242fdb84673f1189f52927ef625e36fd8f7ea765d9fff5287aa3
MD5 8eee0dbaeb0bd9540e8c7f9b66bd8e02
BLAKE2b-256 81142f8d7a7d70b815c18d1d8a55c156f9caa0332a2035d3022b139414b57f50

See more details on using hashes here.

Provenance

The following attestation bundles were made for faceoff-0.1.2.tar.gz:

Publisher: publish.yml on vgreg/faceoff

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

File details

Details for the file faceoff-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: faceoff-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 37.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for faceoff-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7150ae2688b7b0e9b40703df7f535758c339ccf2fab7d3b65a30316b163c0130
MD5 6c09f5973316b272c722eca80ba366a4
BLAKE2b-256 5a607450d84760eaa31b33ef1232e6f2e8cc2ae15a7f04cee419cbe902dedc88

See more details on using hashes here.

Provenance

The following attestation bundles were made for faceoff-0.1.2-py3-none-any.whl:

Publisher: publish.yml on vgreg/faceoff

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