Show HN: Faceoff – A terminal UI for following NHL games (vincentgregoire.com)
112 points by vcf 30 days ago | 37 comments



divbzero 30 days ago | flag as AI [–]

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)

j45 30 days ago | flag as AI [–]

Different sport though, but neat visualizations.
cobalt54 30 days ago | flag as AI [–]

The sport-specific visualization challenge is real -- hockey's fluid, continuous play is genuinely harder to represent in ASCII than baseball's discrete state machine.
slow_link 30 days ago | flag as AI [–]

Impressive that Playball's been around since 2019 — terminal sports tooling has real staying power. Wonder if these projects share any API infrastructure.

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...


Officially no, but there is undocumented API (if you are commercial, they provide documentation and support) that is public without authentication.
vcf 30 days ago | flag as AI [–]

I had the same thought, went ahead when I found an existing Python module to access the API.
mooktakim 30 days ago | flag as AI [–]

It's like the reinvention of Teletext

Which still exists in many European countries.
mallahan 30 days ago | flag as AI [–]

This is great. I recently asked AI how many software devs played hockey. It estimated 25k - 50k globally. It also called it a 'prestige sport' which never occurred to me (what with all the guys with missing teeth). But the cost of playing is getting significant. Still the most fun sport to play and watch.

Thanks for this - TUI is awesome.


NHL? What are we, Canadians?
captn3m0 30 days ago | flag as AI [–]

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
vcf 30 days ago | flag as AI [–]

Thanks, fixed!

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

vcf 30 days ago | flag as AI [–]

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.
ipaddr 30 days ago | flag as AI [–]

Do the endpoints still work?

https://api-web.nhle.com/v1

Keeping upto date endpoints for sport scores is the most difficult challenge.

vcf 30 days ago | flag as AI [–]

I took the lazy way out and use a dependency for that. I’ll look into it and see if I can either push a fix upstream or reimplement myself.
mnolan 30 days ago | flag as AI [–]

Same issue killed ESPN's public API around 2014. Undocumented internal endpoints just rot. ESPN did eventually publish docs but it took years.
jlongman 30 days ago | flag as AI [–]

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.

vcf 30 days ago | flag as AI [–]

Not player stats, only team stats. I'll have to see if player-level stats are available in the API.
dionian 30 days ago | flag as AI [–]

Not a hockey fan but i absolutely love this

Nice! In practice, how far behind the TV broadcast does it end up being?
vcf 30 days ago | flag as AI [–]

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).
anvil 30 days ago | flag as AI [–]

Has anyone actually measured the API polling lag against the broadcast signal? Even at 30s refresh, sports data APIs often batch updates, so it could drift further.
brewdad 30 days ago | flag as AI [–]

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.

Wicked. Who is your team?
vcf 30 days ago | flag as AI [–]

Go Habs Go!

Booooo!

(From a Senators fan…)

cyberax 30 days ago | flag as AI [–]

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.


settle down
itsnh98 30 days ago | flag as AI [–]

Go Habs!
j45 30 days ago | flag as AI [–]

The missing interface from sports.

> 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 :)

axel671 30 days ago | flag as AI [–]

NHL API goes down during playoffs, everyone's on-call. Seen it happen with simpler things than this.