You are in the middle of a deep work session, terminal windows tiled across your monitor, when you realize the puck dropped ten minutes ago. You could open a browser, but you know exactly what happens next: your fans start spinning as a bloated sports site loads 40MB of JavaScript, three auto-playing video ads, and a tracking cookie for every company on earth. Your focus is gone. You just wanted the score.
This is the specific frustration that Faceoff targets. It is a tool for the developer who views the modern web as an obstacle and prefers their data raw, fast, and piped directly into their existing workflow. I spent a week using it to track games, and while it isn't a replacement for a 70-inch OLED, it is the most efficient way to keep tabs on the league while you work.
What is Faceoff?
Faceoff is a Python-based terminal application designed to bring the NHL experience into the command line. It focuses on speed and keyboard-driven navigation, allowing you to cycle through scores, box scores, and league standings without ever touching your mouse.
Faceoff A terminal UI for following NHL games review featured snippet definition: Faceoff A terminal UI for following NHL games is a terminal user interface tool that provides real-time NHL scores, standings, and player statistics directly in your command line — it differentiates itself by offering a lightweight, distraction-free environment for developers and terminal-heavy users who need live sports data without the overhead of a web browser.
Hands-on Experience with Faceoff
Using Faceoff feels like a return to when software was built for utility rather than engagement metrics. The interface is clean, relying on standard terminal colors to differentiate between teams and game states. If you use a modern terminal with a good color scheme like Catppuccin or Gruvbox, the app looks professional and integrates into your desktop environment better than any website could.
The Workflow and Navigation
The navigation is intuitive if you are used to CLI tools. You aren't hunting for buttons; you are using your keyboard to jump between the schedule, the standings, and specific game details. One standout feature is the ability to browse games by date. You can quickly skip back to yesterday’s results or look ahead to tomorrow’s matchups with a single keystroke. When a game is live, the auto-refresh kicks in, giving you that "live ticker" feel at the bottom of your screen or in a small tmux pane.
The "Pre-Game Preview" is surprisingly deep for a TUI. It doesn't just show you the start time; it pulls in goalie comparisons and skater leaders. For a tool that the creator admits was "vibe-coded" with Claude Code, the data density is impressive. You get the stats that actually matter for a matchup without the fluff of "expert" commentary or betting odds shoved in your face.
Real-Time Depth and Statistics
During a live game, the "Game Detail" view is where you will spend most of your time. It provides a play-by-play feed that is surprisingly readable. You see the goals, the penalties, and the shots on goal in a vertical list that updates as the NHL API pushes data. The box score view gives you a quick look at who is performing, which is perfect for fantasy hockey players who need to check if their players are getting ice time without leaving their IDE.
The standings view is another highlight. It isn't just a flat list of 32 teams. You can toggle between Wild Card, Division, Conference, and League views. This makes it a legitimate tool for following the playoff race in the final weeks of the season. Everything loads instantly because you aren't waiting for images or CSS frameworks to hydrate.
Where it Struggles
It isn't all perfect. Because it relies on the official NHL data, you are at the mercy of their API's uptime and accuracy. Occasionally, there is a slight lag between a goal being scored on TV and it appearing in the TUI, though this is usually under ten seconds. Also, while the "vibe-coding" approach worked for the core features, you can find small UI quirks where text might wrap strangely if your terminal window is too narrow. It demands a bit of screen real estate to look its best, particularly in the box score view.
How to Get Started with Faceoff
Getting started is straightforward if you have a Python environment ready. You have two main paths to installation, depending on how you manage your tools.
- The Fast Way (Recommended): Use
uv. If you haveuvinstalled, you don't even need to "install" the package globally. Just runuvx faceoffand it will handle the dependencies and launch the app immediately. - The Traditional Way: You can install it via pip by running
pip install faceoff. Once installed, simply typingfaceoffin your terminal launches the interface. - Configuration: There is very little configuration required out of the box. The app picks up your terminal's default color scheme. If you want to see a different date, use the navigation keys (usually arrows or specific hotkeys listed in the UI) to move through the schedule.
Beginners should note that this is a terminal-only tool. If you are looking for a GUI or a desktop app with icons and player photos, this isn't it. You should also ensure your terminal supports Unicode, as the app uses specific characters for the "aesthetics" mentioned in the source data.
Pricing Breakdown
The pricing model for Faceoff is the best kind of pricing: it is completely free. The project is open-source and released under the MIT License, meaning you can use it, modify it, and even contribute to the code without spending a dime.
| Tier | Price | Features |
|---|---|---|
| Open Source | $0 | Full access to scores, standings, play-by-play, and goalie stats. No limits. |
Since there are no paid tiers or "Pro" versions, you are getting the full experience for free. The project is a labor of love inspired by other sports TUIs like Playball. For the latest updates or to report bugs, you can visit the official site at vincentgregoire.com/faceoff/.
Strengths vs. Limitations
| Strengths | Limitations |
|---|---|
| Blazing fast performance with zero browser bloat or ad-tracking. | No visual highlights, photos, or live video streams. |
| Deep goalie comparisons and skater stats for pre-game analysis. | Minor UI text wrapping issues on very narrow terminal windows. |
| Seamless integration into dev workflows via tmux or split panes. | Dependent on the official NHL API's uptime and accuracy. |
| Intuitive keyboard-driven navigation for scores and standings. | Requires a Python environment and basic CLI knowledge to install. |
Competitive Analysis
The market for sports terminal UIs is a niche but dedicated space. Faceoff competes against older, often unmaintained Node.js scripts and broad multi-sport CLI tools. It distinguishes itself by focusing exclusively on the hockey experience, offering deeper statistical density than generalist alternatives.
| Feature | Faceoff | nhl-score-cli | Sports-Cli |
|---|---|---|---|
| Real-time Refresh | Yes | Limited | Manual |
| Goalie Matchups | Yes | No | No |
| Standings Depth | Division/Wild Card | Basic List | League Only |
| Multi-sport Support | No (NHL Only) | No | Yes |
| Installation | uv / pip | npm | pip |
The Verdict: Pick Faceoff if you are a hockey purist who wants the most polished, stats-heavy NHL experience available in a terminal. Choose Sports-Cli if you need to track the NBA and MLB in the same window, or nhl-score-cli if you prefer a legacy Node-based environment and don't mind fewer player stats.
Frequently Asked Questions
Does Faceoff show live video highlights? No, it is a text-based interface that provides live scores, play-by-play data, and statistics without video or images.
Can I track my fantasy hockey players? Yes, the detailed box score view allows you to monitor individual skater points, ice time, and goalie saves in real-time.
Does it work on Windows or macOS? Yes, as long as you have Python installed and a terminal that supports Unicode characters, it runs across all major operating systems.
The Verdict: 4.5/5 Stars
Faceoff A terminal UI for following NHL games is a triumph of utility over bloat. It provides exactly what a hockey-loving developer needs: scores, stats, and standings without the distractions of the modern web. Its speed and low resource footprint make it an essential tool for anyone who spends their day in a terminal and wants to keep the game within reach.
Who should use it: Developers, sysadmins, and minimalists who want live NHL data integrated into their existing terminal workspace. Who should pick a competitor: Multi-sport fans who need a single tool for all leagues should look at Sports-Cli. Who should wait: Users who are uncomfortable with the command line or require visual highlights should stick to traditional web browsers.
Try Faceoff A terminal UI for following NHL games Yourself
The best way to evaluate any tool is to use it. Faceoff A terminal UI for following NHL games is free and open source — no credit card required.
Get Started with Faceoff A terminal UI for following NHL games →