{"id":29464137,"url":"https://github.com/mlb-rs/mlbt","last_synced_at":"2026-04-30T03:04:05.191Z","repository":{"id":38331022,"uuid":"360387162","full_name":"mlb-rs/mlbt","owner":"mlb-rs","description":"A terminal user interface for the MLB stats API. Watch a baseball game in your terminal! ⚾","archived":false,"fork":false,"pushed_at":"2025-07-08T22:57:23.000Z","size":3612,"stargazers_count":56,"open_issues_count":2,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-10T03:57:19.833Z","etag":null,"topics":["cli","mlb","mlb-gameday","mlb-scores","rust","terminal"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mlb-rs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-04-22T04:02:35.000Z","updated_at":"2025-07-08T23:03:15.000Z","dependencies_parsed_at":"2025-04-14T03:21:17.461Z","dependency_job_id":"345fef67-c51c-4a08-9995-8fed6bc873b0","html_url":"https://github.com/mlb-rs/mlbt","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/mlb-rs/mlbt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlb-rs%2Fmlbt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlb-rs%2Fmlbt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlb-rs%2Fmlbt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlb-rs%2Fmlbt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mlb-rs","download_url":"https://codeload.github.com/mlb-rs/mlbt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlb-rs%2Fmlbt/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265248344,"owners_count":23734217,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","mlb","mlb-gameday","mlb-scores","rust","terminal"],"created_at":"2025-07-14T06:01:32.071Z","updated_at":"2026-04-30T03:04:05.182Z","avatar_url":"https://github.com/mlb-rs.png","language":"Rust","funding_links":[],"categories":["💻 Apps"],"sub_categories":["🌌 Other"],"readme":"# mlbt\n\n[![CI](https://github.com/mlb-rs/mlbt/actions/workflows/ci.yml/badge.svg?event=push)](https://github.com/mlb-rs/mlbt/actions/workflows/ci.yml)\n[![dependency status](https://deps.rs/repo/github/mlb-rs/mlbt/status.svg)](https://deps.rs/repo/github/mlb-rs/mlbt)\n[![Built With Ratatui](https://ratatui.rs/built-with-ratatui/badge.svg)](https://ratatui.rs/)\n\nmlb.com in your terminal. Gameday, scores, stats, standings, teams, and player\nprofiles. Powered by MLB's Stats API, check today's games or dig through decades\nof historical information. Go beyond the broadcast and nerd out with win\nprobability, leverage index, exit velo, and more.\n\n\u003cimg src=\"https://github.com/user-attachments/assets/1c11e22b-df11-46df-8774-5783b77def84\" alt=\"Demo showing the Schedule, Gameday, Stats, and Standings.\"/\u003e\n\n## Table of Contents\n\n- [Installation](#installation)\n    - [Cargo](#cargo)\n    - [Homebrew](#homebrew)\n    - [Binaries](#binaries)\n    - [Docker](#docker)\n- [Features](#features)\n- [Usage](#usage)\n    - [Scoreboard](#scoreboard)\n    - [Gameday](#gameday)\n    - [Stats](#stats)\n    - [Standings](#standings)\n    - [Team Page](#team-page)\n    - [Player Profile](#player-profile)\n    - [Date Picker](#date-picker)\n    - [Help](#help)\n- [Config](#config)\n- [Shout out](#shout-out)\n- [Copyright Notice](#copyright-notice)\n- [License](#license)\n\n## Installation\n\n### Cargo\n\nInstall a pre-built binary using [cargo-binstall](https://github.com/cargo-bins/cargo-binstall):\n\n```bash\ncargo binstall mlbt\n```\n\nOr build from source:\n\n```bash\ncargo install mlbt\n```\n\n### Homebrew\n\n```bash\nbrew install mlb-rs/mlbt/mlbt\n```\n\nTo update to the latest version:\n\n```bash\nbrew upgrade mlbt\n```\n\n### Binaries\n\nmacOS, Linux, and Windows binaries are available on the\n[releases](https://github.com/mlb-rs/mlbt/releases) page.\n\n| Platform               | Target                          |\n|------------------------|---------------------------------|\n| macOS (Apple Silicon)  | `aarch64-apple-darwin`          |\n| macOS (Intel)          | `x86_64-apple-darwin`           |\n| Linux (x86_64)         | `x86_64-unknown-linux-gnu`      |\n| Linux (x86_64, static) | `x86_64-unknown-linux-musl`     |\n| Linux (ARM64)          | `aarch64-unknown-linux-gnu`     |\n| Linux (ARM64, static)  | `aarch64-unknown-linux-musl`    |\n| Linux (ARMv7)          | `armv7-unknown-linux-gnueabihf` |\n| Windows (x86_64)       | `x86_64-pc-windows-msvc`        |\n\n`.deb` and `.rpm` packages are also available for Linux x86_64 and ARM64.\n\n### Docker\n\n`mlbt` publishes docker images on [ghcr](https://github.com/mlb-rs/mlbt/pkgs/container/mlbt).\n\n```bash\ndocker run -it --rm --name mlbt ghcr.io/mlb-rs/mlbt\n```\n\n`mlbt` follows [semver](https://semver.org/) practices.\nYou can execute individual releases explicitly.\n\n```bash\ndocker run -it --rm --name mlbt ghcr.io/mlb-rs/mlbt:v0.2.0\n```\n\nAlternatively build the `mlbt` image with:\n\n```bash\ndocker build -t mlbt .\n```\n\nExecute `mlbt` within the container with:\n\n```bash\ndocker run -it --rm --name mlbt mlbt:latest\n```\n\n## Features\n\n- scoreboard and box score\n    - sorted by favorite team\n    - full box score\n    - probable pitchers for upcoming games\n    - win probability graph\n    - selectable date\n\n- gameday\n    - pitch display\n    - batter strike zone with heat map coloring\n    - selectable at bats (view the pitches and outcome of any at bat in the game)\n    - hit stats: exit velocity, launch angle, distance\n    - ABS challenge information for 2026+ games\n    - leverage index and win probability change per at bat\n\n- pitching and hitting stats\n    - player stats\n    - team stats\n    - sorting\n    - fuzzy search for players and teams\n    - selectable date\n\n- standings\n    - sorted by favorite team\n    - division/league view\n    - selectable date\n\n- team page\n    - roster (active and 40-man)\n    - schedule with calendar view\n    - recent transactions\n\n- player profile\n    - player bio\n    - career stats\n    - recent games\n\n- configuration\n    - favorite team\n    - time zone\n\n## Usage\n\nAfter installing, run `mlbt` from your terminal to open the program.\n\nPress `q` to exit at any time.\n\n### Tabs\n\nThere are four main tabs.\n\n- Scoreboard\n- Gameday\n- Stats\n- Standings\n\nPress `f` for full screen mode to hide the tab bar.\n\n### Scoreboard\n\nPress `1` to activate this tab.\n\n| Key                 | Description                                            |\n|---------------------|--------------------------------------------------------|\n| `j` / `↓`           | move down                                              |\n| `k` / `↑`           | move up                                                |\n| `Enter`             | view current game in Gameday                           |\n| `:`                 | activate date picker (see [Date Picker](#date-picker)) |\n| `w`                 | toggle win probability graph                           |\n| `h`                 | switch to home team in box score                       |\n| `a`                 | switch to away team in box score                       |\n| `Shift` +  `j`/ `↓` | scroll box score down                                  |\n| `Shift` +  `k`/ `↑` | scroll box score up                                    |\n\n### Gameday\n\nPress `2` to activate this tab.\n\nBy default, the `info` and `pitches` panes are shown. However, each pane can be\ntoggled on and off using:\n\n| Key | Description                  |\n|-----|------------------------------|\n| `i` | info pane                    |\n| `p` | pitches pane                 |\n| `b` | box score pane               |\n| `w` | toggle win probability graph |\n\nTo view different at bats in the game, use:\n\n| Key       | Description                                    |\n|-----------|------------------------------------------------|\n| `j` / `↓` | move to previous at bat                        |\n| `k` / `↑` | move to next at bat                            |\n| `l`       | move to the \"live\" at bat, or latest available |\n| `s`       | move to first at bat of the game               |\n\nTo interact with the box score, use:\n\n| Key                 | Description                      |\n|---------------------|----------------------------------|\n| `h`                 | switch to home team in box score |\n| `a`                 | switch to away team in box score |\n| `Shift` +  `j`/ `↓` | scroll box score down            |\n| `Shift` +  `k`/ `↑` | scroll box score up              |\n\n### Stats\n\nPress `3` to activate this tab.\n\nInside the stats tab there are two panes: *stats table* and *options*. The stats\ntable is used for selecting players/teams and searching. The options pane is\nused for sorting the stats and toggling columns on/off.\n\n| Key                 | Description                                            |\n|---------------------|--------------------------------------------------------|\n| `←` / `→` / `Tab`   | switch between stats table and options pane            |\n| `j` / `↓`           | move down in active pane                               |\n| `k` / `↑`           | move up in active pane                                 |\n| `Shift` + `j` / `↓` | page down in stats table                               |\n| `Shift` + `k` / `↑` | page up in stats table                                 |\n| `:`                 | activate date picker (see [Date Picker](#date-picker)) |\n\nSwitch between `pitching` and `hitting` stats, filter by `team` or `player`, and\nchoose to view `all` or just `qualified` players.\n\n| Key | Description |\n|-----|-------------|\n| `p` | pitching    |\n| `h` | hitting     |\n| `t` | team        |\n| `l` | player      |\n| `a` | all players |\n| `u` | qualified   |\n\n#### Search\n\nYou can fuzzy search for a player or team in the stats table using:\n\n| Key          | Description                |\n|--------------|----------------------------|\n| `Ctrl` + `f` | activate fuzzy search      |\n| `Enter`      | finish fuzzy search        |\n| `Esc`        | clear fuzzy search results |\n\nWhile the stats table is active, press `Enter` to view a\n[player profile](#player-profile) or a [team page](#team-page).\n\n#### Stats Options\n\nThe stats options pane can be turned on/off with `o`.\n\nWithin each stat group (pitching or hitting) you can toggle the display of\nindividual stat columns by selecting the stat with `Enter`. To sort the stats by\na column, you can press `s`. To flip the sort order from ascending to descending\nor vice versa press `s` again.\n\n| Key     | Description                           |\n|---------|---------------------------------------|\n| `Enter` | toggle stat column                    |\n| `s`     | sort by the currently selected column |\n| `o`     | toggle options pane                   |\n\n\u003e If your terminal is too small to display all columns, they will be turned off\n\u003e starting from the right side.\n\n### Standings\n\nPress `4` to activate this tab.\n\n| Key       | Description                                            |\n|-----------|--------------------------------------------------------|\n| `j` / `↓` | move down                                              |\n| `k` / `↑` | move up                                                |\n| `Enter`   | view [team page](#team-page)                           |\n| `:`       | activate date picker (see [Date Picker](#date-picker)) |\n| `l`       | toggle division/league view                            |\n\n### Player Profile\n\nThe player profile shows a player's career stats and recent games. It can be\nopened from [Stats](#stats) or from a [team page](#team-page) roster by pressing\n`Enter`.\n\n| Key                 | Description          |\n|---------------------|----------------------|\n| `s`                 | toggle stat category |\n| `j` / `↓`           | scroll down          |\n| `k` / `↑`           | scroll up            |\n| `Shift` + `j` / `↓` | page down            |\n| `Shift` + `k` / `↑` | page up              |\n| `Esc`               | close profile        |\n\n### Team Page\n\nThe team page shows a team's roster, schedule, and recent transactions. It can\nbe opened from [Standings](#standings) or from [Stats](#stats) by pressing\n`Enter`.\n\n| Key                 | Description                                        |\n|---------------------|----------------------------------------------------|\n| `←` / `→` / `Tab`   | switch section                                     |\n| `j` / `↓`           | move down                                          |\n| `k` / `↑`           | move up                                            |\n| `Shift` + `j` / `↓` | page down                                          |\n| `Shift` + `k` / `↑` | page up                                            |\n| `c`                 | toggle calendar                                    |\n| `r`                 | toggle roster type                                 |\n| `Enter`             | view [player profile](#player-profile) from roster |\n| `Esc`               | close team page                                    |\n\n### Date Picker\n\nWith the date picker active, input a date in the form of `YYYY-MM-DD`, or use\nthe `left`/`right` arrow keys, and press `Enter`.\n\n| Key           | Description                     |\n|---------------|---------------------------------|\n| `←` / `→`     | use arrow keys to navigate date |\n| `Enter`       | confirm the selected date       |\n| `Esc`         | cancel selection                |\n| `today` / `t` | go back to the current day      |\n\n\u003e Note that each tab has its own date, i.e. if you're viewing older stats or\n\u003e standings, the schedule can be the current date.\n\n### Help\n\nPress `?` from any tab to open the help page.\n\n| Key                 | Description    |\n|---------------------|----------------|\n| `j` / `↓`           | move down      |\n| `k` / `↑`           | move up        |\n| `Shift` + `j` / `↓` | page down      |\n| `Shift` + `k` / `↑` | page up        |\n| `Esc`               | close help box |\n| `\"`                 | display logs   |\n\n## Config\n\nThe TUI can be configured two ways:\n\n1. **TUI editor** (recommended): open the help page with `?`, press `Tab` to\n   focus the settings panel on the right, and use `j/k` to pick a field. Press\n   `Enter` to open the picker and then `Enter` again to save the setting.\n2. **Manually editing the config file**: edit the toml file directly. Useful for\n   timezones outside the curated options in the TUI.\n\nThe config file is located at:\n\n- Linux:   `~/.config/mlbt/mlbt.toml`\n- Windows: `~\\AppData\\Roaming\\mlbt\\mlbt.toml`\n- macOS:   `~/Library/Application Support/mlbt/mlbt.toml`\n\n\u003e The path is also shown at the bottom of the `Help` page.\n\n### Available settings\n\n- `favorite_team`: team to highlight in standings and surface first in\n  the schedule. TUI: picker shows all 30 current teams. Manually: use the full\n  name (e.g. `\"Chicago Cubs\"`). See the\n  [full list](https://github.com/mlb-rs/mlbt/blob/main/src/components/constants.rs#L83).\n- `timezone`: time zone for the start time of the games in the schedule. The\n  default is `US/Pacific`. In app picker covers common zones: Pacific, Arizona,\n  Mountain, Central, Eastern, London, Central Europe, Tokyo, Seoul, Sydney, UTC.\n  For anything else, edit the toml file with any value from the\n  [tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).\n- `log_level`: one of `off`, `error`, `warn`, `info`, `debug`, `trace`.\n  Default is `error`.\n\n### Example config\n\n```toml\n# See https://github.com/mlb-rs/mlbt#config for options\nfavorite_team = \"Chicago Cubs\"\ntimezone = \"US/Pacific\"\nlog_level = \"error\"\n```\n\n## Shout out\n\nThis was originally built with the\nwonderful [tui-rs](https://github.com/fdehau/tui-rs). It is now using the also\nwonderful fork, [ratatui](https://github.com/ratatui/ratatui).\n\nThese TUIs were extremely helpful:\n[spotify-tui](https://github.com/Rigellute/spotify-tui),\n[tickrs](https://github.com/tarkah/tickrs),\n[bottom](https://github.com/ClementTsang/bottom).\n\nA reference MLB stats API client by\n[toddrob99](https://github.com/toddrob99/MLB-StatsAPI) helped make up for the\nlack of API documentation.\n\n## Copyright Notice\n\nThe data used in this application is supplied by the MLB's Stats API. Use of\nthis data is subject to the license posted here:\nhttp://gdx.mlb.com/components/copyright.txt.\n\nThis application and its author are not affiliated with the MLB.\n\n## License\n\nThis project is under the\n[MIT License](https://github.com/mlb-rs/mlbt/blob/main/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlb-rs%2Fmlbt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmlb-rs%2Fmlbt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlb-rs%2Fmlbt/lists"}