Skip to main content

Follow the FIFA World Cup 2026 from your terminal — fixtures, live scores, goal alerts with sound.

Project description

Terminal Eleven

The 2026 World Cup, in your terminal. Built for people who can't watch it any other way.


Here in India, most of the matches kick off between 11:30 PM and 7:30 AM. The final is at 12:30 AM. And as far as anyone can tell, no broadcaster has bought the Indian rights yet. China is in the same spot.

So roughly two billion football fans get to follow the biggest tournament on the planet by refreshing tabs. Or just... not.

I'm one of them. This is what I built so I could still follow the games without keeping a phone awake at 4 AM.

What it does

Four screens, all keyboard-driven, all dark-theme.

Groups. All twelve groups in a responsive grid. Click any team to open its profile — captain, coach, nickname, confederation, best-ever World Cup finish, and how it did in Qatar 2022.

Fixtures. Every group-stage match grouped by date, with kickoff times converted to your local timezone. So you can tell at a glance whether Brazil v Morocco lands in your evening or your 3 AM.

Live Score. Today's matches in a table. Pick one with Enter.

Match Detail. Big block-font scoreline, current minute, goal scorers under each team, yellow and red cards, and a live stats grid (possession, shots, shots on target, passes, pass accuracy, fouls, corners). Polled from ESPN every 60 seconds and patched in place — no flicker, no full redraw.

The reason I actually wanted this

Open a match in a terminal tab. Switch to your editor. Forget about it. When something happens, the app tells you:

  • a Game Boy-style victory stinger when a goal goes in,
  • a desktop notification with who scored, what minute, and the new scoreline,
  • one referee whistle at half-time,
  • three referee whistles at full-time.

Works on macOS, Linux and Windows without any extra audio library to install — just Python plus the system audio tool each OS already ships with (afplay, paplay / pw-play / aplay, winsound). Run it on your laptop, run it over SSH on a server, run it on the office Linux box. As long as the machine can make a noise, you'll know when Argentina scores.

That's the part I wouldn't have got from any other app.

Install

From PyPI:

pip install terminal-eleven
terminal-eleven

Or from source:

git clone https://github.com/Anubhav9/Terminal-Eleven
cd Terminal-Eleven
pip install -e .
terminal-eleven

Quit with q. Back out of any screen with b or Esc. Move with arrow keys, select with Enter.

How it gets the data

ESPN has an undocumented but very reliable JSON endpoint behind the live-score pages on espn.com. We fetch it with httpx from a Textual async worker, parse the bits we care about (score, status, key events, boxscore), and only emit sound + a toast when the new snapshot actually differs from the previous one — so a single goal makes exactly one celebration noise, not one per refresh.

The 72 group-stage fixtures and their ESPN event IDs are checked into the repo (terminal_eleven/static_data/fixtures/group_stage.csv), so everything except the live view works fully offline.

A note on prior art

If you want a general football TUI that does 65+ leagues year-round, look at golazo. It's mature, polished, and the reason I knew this kind of thing was even possible in a terminal.

Terminal Eleven is narrower on purpose. It runs for four weeks of your year, knows exactly which 48 teams and 72 matches matter, and has the half-time / full-time audio cues I wanted. That's the whole pitch.

Credits

  • Victory stinger: GB Victory Stinger by Bogart (OpenGameArt)
  • Referee whistles: Whistles by dklon, CC-BY 3.0 (OpenGameArt)
  • Group-stage fixture data parsed from the Wikipedia article.
  • Live match data via ESPN's public scoreboard / summary endpoints.
  • Built on Textual and httpx.

If this helps you make it through a 4 AM goal-scoring update, a GitHub star is the nicest way to say thanks. It also helps the next person searching for "how do I watch the World Cup from India" find this instead of nothing.

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

terminal_eleven-0.1.0.tar.gz (217.6 kB view details)

Uploaded Source

Built Distribution

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

terminal_eleven-0.1.0-py3-none-any.whl (233.0 kB view details)

Uploaded Python 3

File details

Details for the file terminal_eleven-0.1.0.tar.gz.

File metadata

  • Download URL: terminal_eleven-0.1.0.tar.gz
  • Upload date:
  • Size: 217.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for terminal_eleven-0.1.0.tar.gz
Algorithm Hash digest
SHA256 11468bc56f864b23bb36b0bc1f759b402e52a0af0fdd3af7c780f14a3fbc9f80
MD5 e2c5ece70a7aaff08e7247951a2f5fe5
BLAKE2b-256 aeaf7f32c2fa2b60a8d9d026915e2bf25bfad6540573c0feb69dcf81ea352847

See more details on using hashes here.

File details

Details for the file terminal_eleven-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for terminal_eleven-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5977243f7bbb06424ae96382e56cc93cea278f7f8a477bd7c65027359b31efef
MD5 500bd7ac4de9faf252ee234d921957cf
BLAKE2b-256 4341fce6f07a4044ba7cb6078157b1c9697c8d1224038fb93abdafbb1e8f6503

See more details on using hashes here.

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