Omahub
← All plugins
C

Sportsbar

by christian

Favorite team score & upcoming game pill with detail popup

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
7e75cfa
Scanned
4 weeks ago

No potentially dangerous behavior detected in the analyzed commit.

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

Low
AI risk level
Low
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
7e75cfa
Reviewed
4 weeks ago

The plugin is a straightforward sports-score bar widget that fetches public ESPN data and stores favorites locally; the sampled code shows no obfuscation, destructive commands, or credential handling. The deterministic scan found no issues, and the only notable items are normal network access and optional external tools for ASCII logo rendering.

  • The backend script downloads team logos from ESPN URLs and runs them through ImageMagick/img2txt when --ascii is used; this is optional and documented, but involves processing remote images with external tools.
  • The plugin writes state and cache files under the user's home directory and makes network requests to ESPN's public API; this is expected behavior for the widget's function.
  • The full repository was not exhaustively reviewed beyond the sampled files, so a human may want to confirm the remaining QML/script sections match the sampled behavior.
How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/cgmccarron/omarchy-sportsbar --enable
Widgets #bar #media

Sportsbar

A bar widget for the Omarchy shell that tracks your favorite sports teams. Pick up to 6 teams and the trophy pill in your bar opens a popup showing each team's live/latest score and next upcoming game, pulled from ESPN's public API — no account or key required.

Sportsbar popup showing four favorite teams with logos, scores, and next games

Supported sports: NFL, NBA, NHL, MLB, Premier League, College Football, College Basketball.

  • Live scores: in-progress games show the current score and game state (e.g. "Top 9th", "Q3 4:12"), not just final results.
  • Team logos: each card shows the team's real logo, or — if you added the team with --ascii — a plain-text ASCII rendering of it.
  • Theme-matched colors: each team's card is accented with its real brand color, automatically snapped to the nearest swatch in whatever Omarchy theme is active, so it never clashes and re-colors itself on a theme switch.

Settings

Configure from the bar widget's settings panel, or by editing its entry under bar.layout in ~/.config/omarchy/shell.json.

Key Type Default Description
colorizeTeams boolean true Color each team's name and accent bar with its theme-matched brand color. Off shows plain text.

Usage

  • Click the trophy pill to open/close the popup.
  • Middle-click the trophy pill to force a refresh.
  • Add a team: open the popup → "Add Team" → pick a sport, then a team.
  • Remove a team: click the ✕ next to a team's card in the popup.
  • Scores refresh automatically every 60 seconds while the popup is open.

The same actions are available from the command line via the bundled bin/omarchy-sportsbar script:

bin/omarchy-sportsbar add                    # interactive: pick sport, then team
bin/omarchy-sportsbar add --ascii            # same, but store an ASCII-art logo instead of the real one
bin/omarchy-sportsbar remove                 # interactive: pick a favorite to remove
bin/omarchy-sportsbar add-direct <sport> <teamId> [--ascii]
bin/omarchy-sportsbar remove-direct <sport> <teamId>
bin/omarchy-sportsbar clear                  # forget all favorites
bin/omarchy-sportsbar detail                 # print current state as JSON

sport is one of nfl, nba, nhl, mlb, prem, cfb, cbb; teamId is ESPN's numeric team id (bin/omarchy-sportsbar teams <sport> lists them).

--ascii renders the team's logo as plain-text ASCII art at add time and stores it instead of the logo URL, so the card shows the ASCII version from then on. Requires img2txt (from caca-utils) and ImageMagick; if either is missing, or the render fails, it falls back to the real logo.

Installation

omarchy plugin add https://github.com/cgmccarron/omarchy-sportsbar.git --enable

Removal

omarchy plugin remove sportsbar

This deletes ~/.config/omarchy/plugins/sportsbar/ and disables the widget. It does not clear your saved favorite teams or schedule cache; remove those too if you want a clean slate:

rm -rf ~/.local/state/omarchy/settings/sportsbar.json ~/.cache/omarchy/sportsbar

Dependencies

Everything below ships with a stock Omarchy install — nothing extra to install:

  • bash, curl, jq
  • omarchy-menu-select and omarchy-notification-send (Omarchy's own picker/notification helpers, used for the interactive add/remove flows)

Optional, only needed for --ascii:

  • img2txt (from the caca-utils package)
  • ImageMagick (magick or convert)

Data & storage

  • Favorite teams: ~/.local/state/omarchy/settings/sportsbar.json
  • Per-team schedule cache (60s TTL): ~/.cache/omarchy/sportsbar/
  • Data source: ESPN's public site.api.espn.com JSON endpoints

License

MIT — see LICENSE.