Back to News
Advertisement
vvcf about 4 hours ago 23 commentsRead Article on vincentgregoire.com

RU version is available. Content is displayed in original English for accuracy.

Faceoff is a TUI app written in Python to follow live NHL games and browse standings and stats. I got the inspiration from Playball, a similar TUI app for MLB games that was featured on HN.

The app was mostly vibe-coded with Claude Code, but not one-shot. I added features and fixed bugs by using it, as I spent way too much time in the terminal over the last few months.

Try it out with `uvx faceoff` (requires uv).

Advertisement

⚡ Community Insights

Discussion Sentiment

92% Positive

Analyzed from 474 words in the discussion.

Trending Topics

#https#com#nice#api#games#terminal#github#different#sports#playball

Discussion (23 Comments)Read Original on HackerNews

jlongman36 minutes ago
nIce! Does it have player in-game stats like TOI and +/-?

This reminds me of that f1 tui… https://github.com/JustAman62/undercut-f1 or https://github.com/IAmTomShaw/f1-race-replay. The one I’m thinking of syncs with kodi for delayed playback “live” stats.

captn3m0about 1 hour ago
Link to the API Client is incorrect at the bottom: https://github.com/nhl-stats-api-client instead of https://github.com/liahimratman/nhl-api-client
divbzeroabout 4 hours ago
Related:

Playball – Watch MLB games from a terminal - https://news.ycombinator.com/item?id=45451577 - Oct 2025 (146 comments)

Playball: Watch MLB games from the comfort of your own terminal - https://news.ycombinator.com/item?id=37591070 - Sept 2023 (1 comment)

Playball: Watch MLB games from the comfort of your own terminal - https://news.ycombinator.com/item?id=21653981 - Nov 2019 (42 comments)

j45about 3 hours ago
Different sport though, but neat visualizations.
yuppiepuppieabout 2 hours ago
Nice! I was thinking about doing something like this but for cycling, however one of the biggest PIA about building products for sports is all the gating of data.

Does the NHL really provide an API for all games? That's nice...

vcfabout 2 hours ago
I had the same thought, went ahead when I found an existing Python module to access the API.
freedombenabout 4 hours ago
Nice, I've now created dozens of little personal tools like this now :-)

This is IMHO the killer AI feature for personal use. So many utlities I never would have spent time on are now within reach. Even just non-trivial bashrc aliases and functions

vcfabout 4 hours ago
Yeah, I completely agree. It's awesome to be able to build anything you want (as long as it's not too complex). I, too, have at least a dozen, and I usually don't share, but with the playoffs starting, I felt others could enjoy this one.
zawakinabout 2 hours ago
Same — similar pile accumulating, and GitHub has fallen way behind. I keep going back and forth on whether a monorepo is the right answer or if it'd just make the sprawl more legible without actually helping. How are you organizing yours?
embedding-shapeabout 3 hours ago
> It's awesome to be able to build anything you want (as long as it's not too complex).

That's the thing. It was always awesome, as long as it wasn't too complex. The only thing that changed for me what was "too complex".

cr125riderabout 3 hours ago
Super fun! Nice job shipping!
rangersny1about 3 hours ago
Nice! In practice, how far behind the TV broadcast does it end up being?
vcfabout 3 hours ago
Not too much, but it’s using a Rest API, so it also depends on the refresh rate (default 30 seconds, configurable with cli argument).
brewdad38 minutes ago
That’s not bad. One of my favorite times is college football season with a big game on say, ABC. You quickly learn who it watching OTA, who is watching on cable and who has YoutubeTV based on the different reaction times after a big play.
james-clefabout 3 hours ago
Wicked. Who is your team?
vcfabout 3 hours ago
Go Habs Go!
cyberaxabout 3 hours ago
What next? Perhaps a small scripting language to run on the side of the terminal?

You know, just to make some simple automations possible, nothing super-special.

_doctor_loveabout 2 hours ago
settle down
itsnh98about 3 hours ago
Go Habs!
j45about 3 hours ago
The missing interface from sports.
Advertisement
embedding-shapeabout 3 hours ago
> Acknowledgments - This project was inspired by Playball, a similar terminal application for following MLB baseball games.

Should've gone for something generalized that could handle a bunch of different games, instead of just another sport, so someone caring about multiple sports don't need multiple TUIs :)

bpevabout 2 hours ago
not terminal, but fwiw: https://plaintextsports.com
vcfabout 3 hours ago
Different sports have different ways to present the data. But most importantly, the data availability differs a lot between leagues, so there’s a benefit to having separate tools. I, for one, would not want to maintain an app for all sports.