sportscli
Real-time sports data in your terminal — no browser, no app, no noise.
sportscli is a lightweight CLI tool that pulls live scores, standings, schedules, and player data directly into your terminal. Whether you want to check the Premier League table mid-debug, glance at a live cricket scorecard without leaving your workflow, or look up a chess player's rating while a build runs — sportscli keeps you in the terminal and out of the browser.
Built on free public APIs with no mandatory setup. Chess works out of the box. Cricket and Football need a one-time free API key that the tool will prompt you for automatically on first use.
Currently supports Chess (Lichess), Cricket (cricketdata.org), and Football (football-data.org), with the architecture designed so adding a new sport is a single self-contained module — no changes to existing code.
Requirements
- Python 3.10+
Installation
pip install sportscli
Works the same on Linux, macOS, and Windows. On Windows, make sure your Python Scripts directory is on your PATH.
Quick Start
sports # Welcome screen with all available commands
sports chess live # Live games on Lichess TV (no API key needed)
sports chess tournaments # Current and upcoming Lichess tournaments
sports cricket live # Live cricket scores (prompts for API key on first run)
sports football standings pl # Premier League table
Configuration
Chess
No API key required — Lichess is fully open.
Cricket
Free API key from cricketdata.org. You will be prompted automatically on first use, or set it manually:
sports config set cricket <your-key>
Football
Free API key from football-data.org. Set it with:
sports config set football <your-key>
Keys are stored in ~/.config/sportscli/config.json.
Commands
Chess (no key required)
sports chess tournaments # Current and upcoming tournaments
sports chess live # Live games by time control on Lichess TV
sports chess broadcasts # Major chess broadcasts and events
sports chess player <username> # Player profile, ratings, and recent games
Cricket
sports cricket live # Live match scores
sports cricket scorecard <match-id> # Detailed scorecard (get ID from 'cricket live')
sports cricket schedule # Upcoming matches
Football
| League code | Competition |
|---|---|
pl |
Premier League |
bl1 |
Bundesliga |
sa |
Serie A |
pd |
La Liga |
fl1 |
Ligue 1 |
ucl |
UEFA Champions League |
ec |
European Championship |
wc |
FIFA World Cup |
sports football live # All currently live matches
sports football standings pl # League table
sports football fixtures ucl # Upcoming fixtures
Config
sports config setup # Interactive wizard for all API keys
sports config set <sport> <key> # Set a single API key
sports config show # Show stored keys (partially masked)
Development Setup
git clone https://github.com/prrockzed/sportscli.git
cd sportscli
pip install -e .
Release Process
# 1. Bump version in pyproject.toml and sportscli/__init__.py
# 2. Clean and rebuild
rm -rf dist build *.egg-info
python -m build
# 3. Upload to PyPI
twine upload dist/*
PyPI does not allow re-uploading the same version — always bump before building.
Adding a New Sport
mkdir sportscli/sports/<sport>- Create
__init__.py,client.py,display.py,app.pyfollowing the existing pattern - In
cli.py:app.add_typer(<sport>_app, name="<sport>", help="...") - Done — no changes to any other existing file
License
MIT
Metadata
Release files for sportscli 0.5.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 | |
|---|---|---|---|
| sportscli-0.5.0.tar.gz | 20.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sportscli-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 46.7 kB
Release files / sportscli-0.5.0.tar.gz
| Download URL | sportscli-0.5.0.tar.gz |
|---|---|
| Size | 20.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d30385830be6cbe0c787efbcc11b433c7f2fa5b10bef69219f95fd02142e2b87
|
|
BLAKE2b-256 checksum How to use checksums |
e3783b5f1bd3d841e02cc979ac9292262dda0f9ae44c82c7f6eb4b103f6b9087
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jun 14, 2026.
Transparency logRelease files / sportscli-0.5.0-py3-none-any.whl
| Download URL | sportscli-0.5.0-py3-none-any.whl |
|---|---|
| Size | 25.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7342d21d8f3c38fa9844093a660e0aab4d00f36d3b9f5944447b33d1c8767f75
|
|
BLAKE2b-256 checksum How to use checksums |
f4f676b6100e50f57e99af9ed09597206e6d8d4d868abb987a144640a61571be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jun 14, 2026.
Transparency log