scorebug


Namescorebug JSON
Version 0.3.0 PyPI version JSON
download
home_pageNone
SummaryFollow any MLB game in your shell
upload_time2025-09-07 18:37:34
maintainerNone
docs_urlNone
authorMatt Stiles
requires_python>=3.9
licenseMIT
keywords baseball cli live mlb sports
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## Scorebug

Follow your favorite MLB teams with live play-by-play in the terminal. 

![Scorebug Example](examples/images/example.png)

## Example Output

```
⚾ Game On! ⚾
Teams: Los Angeles Dodgers at Baltimore Orioles  
Pitchers: Clayton Kershaw vs. Tomoyuki Sugano
📍 Oriole Park at Camden Yards
🕐 Sun 10:35 AM PDT

▲1  Shohei Ohtani homers (47) on a fly ball to center field. (1 RBI) (1-0) ○○○
▲1  Mookie Betts strikes out swinging. (3-3) ○○○
────────────────────────────────────────────────
🏟️  ▲ Top 1
     ⚾ LAD  1  (H: 1 E:0)
     ⚾ BAL  0  (H: 0 E:0)
```

## Install

- From PyPI
  ```bash
  pip install scorebug
  ```

- Local checkout (editable)
  - Clone this repo
  - pip install -e .

Requires Python 3.9+.

## Usage

- Positional team or prompt

```bash
scorebug dodgers
# or just run `scorebug` and enter a team when prompted
```

- Specific game by gamePk

```bash
scorebug --gamepk 716910
```

- Show every pitch and start from the first at-bat

```bash
scorebug yankees --pitches --from-start
```

## What it does

- Finds today's game for a team (or uses --gamepk)
- Streams new at-bats and optionally every pitch
- Prints a compact scoreboard on change or inning transitions
- Highlights scoring plays
- If no game is live, prints the last final and the next scheduled game

## Outputs

- Uses team abbreviations in the scoreboard
- Shows ▲ for top and ▼ for bottom of the inning
- Reprints a play if its description updates
- Prints the scoreboard at start of halves and on End/Middle of innings
- Prints an inning banner on half-inning transitions for readability
- Colors: cyan for away, magenta for home, green for scoring plays
- Disable color with --no-color
- Includes ball-strike count and approximate pitch count per at-bat
- Shows base runners when available (◉ occupied, ○ empty)
- Pre-game shows probable pitchers and local start time
- If a team has multiple games today, you can select which one to follow

## CLI reference

- team: team id, abbr, or name (e.g., 119, LAD, Dodgers)
- `--team`: same as positional team
- `--date YYYY-MM-DD`: date to search (default: today in Los Angeles)
- `--gamepk`: MLB gamePk to stream directly
- `--interval`: poll seconds (default 2.5)
- `--pitches`: print each pitch
- `--from-start`: print all prior at-bats on first fetch
- `--no-color`: disable ANSI color
- `--scoring-only`: only print scoring plays and inning transitions
- `--opponent TEAM`: disambiguate doubleheaders by opponent (id, abbr, or name)
- `--log FILE`: append the live stream to a file
- `--dump FILE`: write full game log for the selected game and exit
- `--tz ZONE`: override local timezone (e.g., America/New_York)
- `--line-score`: print inning-by-inning linescore under the scoreboard
- `--box-interval N`: every N minutes, reprint the scoreboard even if unchanged
- `--quiet`: only scoreboard and inning banners
- `--verbose`: extra details (pitches and runners)

## Notes

- Data comes from MLB StatsAPI schedule and the v1.1 live feed
- Uses If-None-Match to avoid reprinting unchanged states
 - Team IDs are cached in `~/.scorebug/teams-<season>.json` to reduce API calls

## Config (optional)

Create `~/.scorebug/config.toml` to set defaults:

```toml
team = "Dodgers"          # default team
tz = "America/Los_Angeles" # IANA timezone
interval = 2.5             # poll seconds
no_color = false           # disable ANSI color
line_score = true          # show inning-by-inning line score
box_interval = 5           # minutes between forced scoreboard prints
```
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "scorebug",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "baseball, cli, live, mlb, sports",
    "author": "Matt Stiles",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/39/38/828215d5b8edcc3afbc31b2113daf9dc81816b7ab10a5315c81d89e35888/scorebug-0.3.0.tar.gz",
    "platform": null,
    "description": "## Scorebug\n\nFollow your favorite MLB teams with live play-by-play in the terminal. \n\n![Scorebug Example](examples/images/example.png)\n\n## Example Output\n\n```\n\u26be Game On! \u26be\nTeams: Los Angeles Dodgers at Baltimore Orioles  \nPitchers: Clayton Kershaw vs. Tomoyuki Sugano\n\ud83d\udccd Oriole Park at Camden Yards\n\ud83d\udd50 Sun 10:35 AM PDT\n\n\u25b21  Shohei Ohtani homers (47) on a fly ball to center field. (1 RBI) (1-0) \u25cb\u25cb\u25cb\n\u25b21  Mookie Betts strikes out swinging. (3-3) \u25cb\u25cb\u25cb\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\ud83c\udfdf\ufe0f  \u25b2 Top 1\n     \u26be LAD  1  (H: 1 E:0)\n     \u26be BAL  0  (H: 0 E:0)\n```\n\n## Install\n\n- From PyPI\n  ```bash\n  pip install scorebug\n  ```\n\n- Local checkout (editable)\n  - Clone this repo\n  - pip install -e .\n\nRequires Python 3.9+.\n\n## Usage\n\n- Positional team or prompt\n\n```bash\nscorebug dodgers\n# or just run `scorebug` and enter a team when prompted\n```\n\n- Specific game by gamePk\n\n```bash\nscorebug --gamepk 716910\n```\n\n- Show every pitch and start from the first at-bat\n\n```bash\nscorebug yankees --pitches --from-start\n```\n\n## What it does\n\n- Finds today's game for a team (or uses --gamepk)\n- Streams new at-bats and optionally every pitch\n- Prints a compact scoreboard on change or inning transitions\n- Highlights scoring plays\n- If no game is live, prints the last final and the next scheduled game\n\n## Outputs\n\n- Uses team abbreviations in the scoreboard\n- Shows \u25b2 for top and \u25bc for bottom of the inning\n- Reprints a play if its description updates\n- Prints the scoreboard at start of halves and on End/Middle of innings\n- Prints an inning banner on half-inning transitions for readability\n- Colors: cyan for away, magenta for home, green for scoring plays\n- Disable color with --no-color\n- Includes ball-strike count and approximate pitch count per at-bat\n- Shows base runners when available (\u25c9 occupied, \u25cb empty)\n- Pre-game shows probable pitchers and local start time\n- If a team has multiple games today, you can select which one to follow\n\n## CLI reference\n\n- team: team id, abbr, or name (e.g., 119, LAD, Dodgers)\n- `--team`: same as positional team\n- `--date YYYY-MM-DD`: date to search (default: today in Los Angeles)\n- `--gamepk`: MLB gamePk to stream directly\n- `--interval`: poll seconds (default 2.5)\n- `--pitches`: print each pitch\n- `--from-start`: print all prior at-bats on first fetch\n- `--no-color`: disable ANSI color\n- `--scoring-only`: only print scoring plays and inning transitions\n- `--opponent TEAM`: disambiguate doubleheaders by opponent (id, abbr, or name)\n- `--log FILE`: append the live stream to a file\n- `--dump FILE`: write full game log for the selected game and exit\n- `--tz ZONE`: override local timezone (e.g., America/New_York)\n- `--line-score`: print inning-by-inning linescore under the scoreboard\n- `--box-interval N`: every N minutes, reprint the scoreboard even if unchanged\n- `--quiet`: only scoreboard and inning banners\n- `--verbose`: extra details (pitches and runners)\n\n## Notes\n\n- Data comes from MLB StatsAPI schedule and the v1.1 live feed\n- Uses If-None-Match to avoid reprinting unchanged states\n - Team IDs are cached in `~/.scorebug/teams-<season>.json` to reduce API calls\n\n## Config (optional)\n\nCreate `~/.scorebug/config.toml` to set defaults:\n\n```toml\nteam = \"Dodgers\"          # default team\ntz = \"America/Los_Angeles\" # IANA timezone\ninterval = 2.5             # poll seconds\nno_color = false           # disable ANSI color\nline_score = true          # show inning-by-inning line score\nbox_interval = 5           # minutes between forced scoreboard prints\n```",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Follow any MLB game in your shell",
    "version": "0.3.0",
    "project_urls": {
        "Homepage": "https://github.com/stiles/scorebug",
        "Issues": "https://github.com/stiles/scorebug/issues",
        "Repository": "https://github.com/stiles/scorebug"
    },
    "split_keywords": [
        "baseball",
        " cli",
        " live",
        " mlb",
        " sports"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3451f989f0188eb61e370fb39889ca029f2725d6aec4ef29bccf01b2ad874923",
                "md5": "ba59264ee53897f491cfceb9d3d8a548",
                "sha256": "3be65346c1fcc1ad60b61236b33cf69d7e65d1f954a9e5692cbb0c39135ccbfa"
            },
            "downloads": -1,
            "filename": "scorebug-0.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ba59264ee53897f491cfceb9d3d8a548",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 13236,
            "upload_time": "2025-09-07T18:37:33",
            "upload_time_iso_8601": "2025-09-07T18:37:33.014300Z",
            "url": "https://files.pythonhosted.org/packages/34/51/f989f0188eb61e370fb39889ca029f2725d6aec4ef29bccf01b2ad874923/scorebug-0.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3938828215d5b8edcc3afbc31b2113daf9dc81816b7ab10a5315c81d89e35888",
                "md5": "e3e5d40bca15f5c0191785845c1d7e15",
                "sha256": "bc1591e9f31e1c66985619d8e9a67e08d983531724a2d076835e76a6bf655806"
            },
            "downloads": -1,
            "filename": "scorebug-0.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e3e5d40bca15f5c0191785845c1d7e15",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 408042,
            "upload_time": "2025-09-07T18:37:34",
            "upload_time_iso_8601": "2025-09-07T18:37:34.216201Z",
            "url": "https://files.pythonhosted.org/packages/39/38/828215d5b8edcc3afbc31b2113daf9dc81816b7ab10a5315c81d89e35888/scorebug-0.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-07 18:37:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "stiles",
    "github_project": "scorebug",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "scorebug"
}
        
Elapsed time: 3.61897s