2.0kβ
sports-ticker β OpenClaw Skill
sports-ticker is an OpenClaw Skills integration for coding workflows. Live sports alerts for Soccer, NFL, NBA, NHL, MLB, F1 and more. Real-time scoring with FREE ESPN API. Track any team from any major league worldwide.
Skill Snapshot
| name | sports-ticker |
| description | Live sports alerts for Soccer, NFL, NBA, NHL, MLB, F1 and more. Real-time scoring with FREE ESPN API. Track any team from any major league worldwide. OpenClaw Skills integration. |
| owner | robbyczgw-cla |
| repository | robbyczgw-cla/sports-ticker |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @robbyczgw-cla/sports-ticker |
| last updated | Feb 7, 2026 |
Maintainer

name: sports-ticker version: 3.0.3 description: Live sports alerts for Soccer, NFL, NBA, NHL, MLB, F1 and more. Real-time scoring with FREE ESPN API. Track any team from any major league worldwide. metadata: {"clawdbot":{"requires":{"bins":["python3"],"env":[]}}}
Sports Ticker
Track your favorite teams across multiple sports with FREE live alerts!
Supports: β½ Soccer β’ π NFL β’ π NBA β’ π NHL β’ βΎ MLB β’ ποΈ F1
First Run (Onboarding)
When no config.json exists, running the setup script launches an interactive wizard:
python3 scripts/setup.py
The wizard asks:
- πΊ Which sports? β Pick from Soccer, NFL, NBA, NHL, MLB, F1
- π Which teams? β Choose from popular teams or search for any team
- π Alert style? β Live scores, final only, or daily digest
- β° Game-day reminders? β Get a heads-up 30 mins before kick-off
- π Quiet hours? β Pause alerts while you sleep
After setup, your config.json is ready and you can start tracking!
Re-run setup anytime:
python3 scripts/setup.py --force # Overwrites existing config
Quick Start
# First time? Just run setup!
python3 scripts/setup.py # Interactive wizard
# Find team IDs (any sport)
python3 scripts/setup.py find "Lakers" basketball
python3 scripts/setup.py find "Chiefs" football
python3 scripts/setup.py find "Barcelona" soccer
# Test
python3 scripts/ticker.py
Config Example
{
"teams": [
{
"name": "Barcelona",
"emoji": "π΅π΄",
"sport": "soccer",
"espn_id": "83",
"espn_leagues": ["esp.1", "uefa.champions"]
},
{
"name": "Lakers",
"emoji": "πππ",
"sport": "basketball",
"espn_id": "13",
"espn_leagues": ["nba"]
}
]
}
Commands
# Ticker for all teams
python3 scripts/ticker.py
# Live monitor (for cron)
python3 scripts/live_monitor.py
# League scoreboard
python3 scripts/ticker.py league nba basketball
python3 scripts/ticker.py league nfl football
python3 scripts/ticker.py league eng.1 soccer
# π
Schedule - View upcoming fixtures (NEW in v3!)
python3 scripts/schedule.py # All teams, next 14 days
python3 scripts/schedule.py --days 30 # Look further ahead
python3 scripts/schedule.py --team spurs # Specific team
python3 scripts/schedule.py --compact # One-liner format
python3 scripts/schedule.py --json # JSON output
# π€ Auto Setup Crons - Generate match-day crons (NEW in v3!)
python3 scripts/auto_setup_crons.py # All teams, next 7 days
python3 scripts/auto_setup_crons.py --team spurs --days 14
python3 scripts/auto_setup_crons.py --json # Machine-readable
python3 scripts/auto_setup_crons.py --commands # OpenClaw CLI commands
# ESPN direct
python3 scripts/espn.py leagues
python3 scripts/espn.py scoreboard nba basketball
python3 scripts/espn.py search "Chiefs" football
Alert Types
- ποΈ Game start (kick-off / tip-off)
- β½ππβΎ Scoring plays (goals, touchdowns, 3-pointers, home runs)
- π₯ Red cards / Ejections
- βΈοΈ Halftime / Period breaks
- π Final results (WIN/LOSS/DRAW)
ESPN API (Free!)
No key needed. Covers all major sports and 50+ leagues worldwide.
Supported Sports:
- Soccer: Premier League, La Liga, Champions League, MLS, and 30+ more
- Football: NFL
- Basketball: NBA, WNBA, NCAA
- Hockey: NHL
- Baseball: MLB
- Racing: Formula 1
π Sports Ticker
Live sports alerts with scoring updates and real-time stats β completely FREE!
Track soccer, football, basketball, hockey, baseball, F1, and more!
Built for OpenClaw but works standalone too.
β¨ Features
- π― Multi-sport support β Soccer, NFL, NBA, NHL, MLB, F1, and more!
- β½ Live scoring alerts with player names and times
- π₯ Key events β cards, touchdowns, home runs, goals
- βΈοΈ Period updates β Halftime, quarters, intermissions
- π Final results with WIN/LOSS/DRAW
- π Multi-team support β track as many teams as you want
- π Schedule/Fixtures β view upcoming matches for next 30 days (NEW in v3!)
- π€ Auto-cron generation β never miss a match, set up alerts automatically (NEW in v3!)
- π Auto-scheduling β cron jobs for match days (OpenClaw)
- π° 100% FREE β no API keys, no subscriptions!
π― The Secret Sauce: ESPN API
This skill uses ESPN's public API which provides:
- Real-time scores across multiple sports
- Scoring plays with player names and timestamps
- Game events (touchdowns, goals, home runs, etc.)
- Match/game statistics
No API key required! ESPN's API is open and free to use.
Supported Sports & Leagues
β½ Soccer/Football
- Premier League (
eng.1), La Liga (esp.1), Bundesliga (ger.1), Serie A (ita.1) - Champions League (
uefa.champions), Europa League (uefa.europa) - MLS (
usa.1), Liga MX (mex.1), and 20+ more
π American Football
- NFL (
nfl)
π Basketball
- NBA (
nba), WNBA (wnba), NCAA (mens-college-basketball)
π Hockey
- NHL (
nhl)
βΎ Baseball
- MLB (
mlb)
ποΈ Racing
- Formula 1 (
f1)
π Quick Start
1. Install
# Clone or copy to your skills directory
clawhub install sports-ticker
# Or manually
git clone https://github.com/your-repo/sports-ticker
cd sports-ticker
2. Run the Setup Wizard π§ββοΈ
First time? The interactive wizard makes setup a breeze!
python3 scripts/setup.py
The wizard walks you through:
- πΊ Pick your sports β Soccer, NFL, NBA, NHL, MLB, F1
- π Choose your teams β Popular picks or search any team
- π Set alert style β Live scores / Final only / Daily digest
- β° Game-day reminders β Get notified 30 mins before kick-off
- π Quiet hours β No alerts while you sleep
Example:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π SPORTS TICKER π β
β β½ π π π βΎ ποΈ β
β Never miss a goal, touchdown, or checkered flag! β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
3. Or Configure Manually
# Find team IDs directly
python3 scripts/setup.py find "Lakers" basketball
python3 scripts/setup.py find "Chiefs" football
python3 scripts/setup.py find "Barcelona" soccer
Common team IDs for reference:
Soccer:
- Tottenham: 367, Arsenal: 359, Liverpool: 364, Man City: 382, Man United: 360
- Barcelona: 83, Real Madrid: 86, Bayern: 132, PSG: 160, Juventus: 111
American Sports:
- Lakers: 13, Warriors: 9, Celtics: 2 (NBA)
- Chiefs: 12, 49ers: 25, Cowboys: 6 (NFL)
- Maple Leafs: 10, Oilers: 22, Rangers: 4 (NHL)
- Yankees: 10, Dodgers: 19, Red Sox: 2 (MLB)
3. Create config.json
cp config.example.json config.json
Edit config.json:
{
"teams": [
{
"name": "Liverpool",
"short_name": "Liverpool",
"emoji": "π΄",
"sport": "soccer",
"espn_id": "364",
"espn_leagues": ["eng.1", "uefa.champions"],
"enabled": true
},
{
"name": "Los Angeles Lakers",
"short_name": "Lakers",
"emoji": "πππ",
"sport": "basketball",
"espn_id": "13",
"espn_leagues": ["nba"],
"enabled": true
},
{
"name": "Kansas City Chiefs",
"short_name": "Chiefs",
"emoji": "π",
"sport": "football",
"espn_id": "12",
"espn_leagues": ["nfl"],
"enabled": true
}
],
"alerts": {
"goals": true,
"red_cards": true,
"halftime": true,
"fulltime": true,
"kickoff": true
}
}
4. Test It
# Show ticker for your teams
python3 scripts/ticker.py
# Check live matches
python3 scripts/live_monitor.py --verbose
# View a specific league
python3 scripts/ticker.py league eng.1 soccer
python3 scripts/ticker.py league nfl football
python3 scripts/ticker.py league nba basketball
# π
View upcoming fixtures (NEW in v3!)
python3 scripts/schedule.py # All teams, 14 days
python3 scripts/schedule.py --team spurs --days 30
python3 scripts/schedule.py --json # JSON output
# π€ Auto-generate match crons (NEW in v3!)
python3 scripts/auto_setup_crons.py --team spurs --days 14
python3 scripts/auto_setup_crons.py --json # For OpenClaw cron API
python3 scripts/auto_setup_crons.py --commands # CLI commands
# ESPN API commands
python3 scripts/espn.py leagues # List all sports/leagues
python3 scripts/espn.py leagues soccer # List soccer leagues
python3 scripts/espn.py scoreboard nba basketball
python3 scripts/espn.py search "Lakers" basketball
π± Example Alerts
β½ Soccer Goal:
π GOAL! 23'
β½ Marcus Rashford (Manchester United)
Manchester United 1-0 Liverpool
π NFL Touchdown:
π TOUCHDOWN! Q2 3:42
π Patrick Mahomes (Kansas City Chiefs)
Chiefs 14-7 Bills
π NBA 3-Pointer:
π 3-POINTER! Q3 8:15
π― LeBron James (Los Angeles Lakers)
Lakers 78-72 Warriors
π NHL Goal:
π GOAL! P2 12:34
π Connor McDavid (Edmonton Oilers)
Oilers 3-2 Maple Leafs
Final Score:
π FINAL - WIN! πβ
π
Kansas City Chiefs 31-24 Buffalo Bills
π€ OpenClaw Integration
Automatic Cron Setup
The easiest way to set up match-day alerts is with the setup script:
# Run the setup script with your Telegram ID and timezone
python3 scripts/setup_crons.py <telegram_id> <timezone>
# Example
python3 scripts/setup_crons.py 123456789 "Europe/London"
python3 scripts/setup_crons.py 123456789 "America/New_York"
# Just view the cron configs without creating
python3 scripts/setup_crons.py --list
This creates 3 cron jobs:
| Cron Job | Schedule | Purpose |
|---|---|---|
football-match-check | Daily 9 AM | Checks if your teams play today |
spurs-live-ticker | Every 2 mins (disabled) | Live updates during matches |
spurs-reminder | Dynamic (disabled) | 30-min pre-match reminder |
How Auto-Scheduling Works
- Morning check β
football-match-checkruns at 9 AM daily - Match found? β If any team plays today, it:
- Updates
spurs-live-tickerto start 5 mins before kickoff - Sets
spurs-reminderfor 30 mins before kickoff - Enables both crons
- Updates
- During match β
spurs-live-tickerruns every 2 mins, sending goals/cards/events - No match? β Both crons stay disabled (no spam!)
Manual Cron Setup
If you prefer manual setup, here are the cron expressions:
# Daily match check at 9 AM
0 9 * * * # football-match-check
# Live ticker every 2 minutes (enable only during matches)
*/2 * * * * # spurs-live-ticker
# Pre-match reminder (set to 30 mins before kickoff)
30 14 * * * # spurs-reminder (example: 2:30 PM for 3 PM kickoff)
Cron Payload Examples
Match Check (daily):
{
"message": "Check if any configured teams play today. If a match is found, update spurs-live-ticker to start 5 mins before kickoff and run for 3 hours. Enable spurs-reminder for 30 mins before kickoff."
}
Live Ticker (during matches):
{
"message": "Run python3 scripts/live_monitor.py and send any new events (goals, cards, halftime, fulltime). Only message if there are updates."
}
Live Monitor Script
During matches, run every 2 minutes:
python3 scripts/live_monitor.py
The script only outputs when there are new events (goals, cards, etc.), making it perfect for cron-based alerting.
π§ Scripts Reference
| Script | Purpose |
|---|---|
ticker.py | Show current status of your teams |
live_monitor.py | Check for live updates (for cron) |
schedule.py | π View upcoming fixtures (v3) |
auto_setup_crons.py | π€ Generate match crons (v3) |
espn.py | Direct ESPN API access |
setup.py | Interactive setup wizard |
config.py | Configuration management |
π Schedule & Auto-Crons (v3 Feature)
The Problem (v2)
The old scoreboard-only approach meant:
- Only TODAY's matches were visible
- If your daily cron didn't run, you'd miss matches
- No advance notice of upcoming fixtures
The Solution (v3)
Schedule API scans future dates to find your team's fixtures:
# See what's coming up
python3 scripts/schedule.py --team spurs --days 30
# Output:
# π Tottenham Hotspur - Upcoming Fixtures
# π
Sat 07 Feb 12:30 UTC | @ Man United (Premier League)
# π Old Trafford
# π
Tue 10 Feb 19:30 UTC | vs Newcastle (Premier League)
# π Tottenham Hotspur Stadium
Auto-Cron Generator creates match-day cron jobs:
python3 scripts/auto_setup_crons.py --team spurs --days 14
# Generates:
# β
spurs-reminder-2026-02-07 (30 mins before kickoff)
# β
spurs-ticker-start-2026-02-07 (starts monitoring)
# βΈοΈ spurs-ticker-2026-02-07 (every 2 mins during match)
Workflow
- Run
schedule.pyweekly to see upcoming fixtures - Run
auto_setup_crons.py --jsonto generate cron configs - Feed the JSON to OpenClaw cron API
- Never miss a match again! π
π ESPN API Reference
Base URL: https://site.api.espn.com/apis/site/v2/sports
Endpoints
# Scoreboard (all today's games)
/{sport}/{league}/scoreboard
# Game details with events
/{sport}/{league}/summary?event={event_id}
# Team info
/{sport}/{league}/teams/{team_id}
Sport & League Codes
Soccer: soccer/eng.1, soccer/esp.1, soccer/uefa.champions
Football: football/nfl
Basketball: basketball/nba, basketball/wnba
Hockey: hockey/nhl
Baseball: baseball/mlb
Racing: racing/f1
π License
MIT β use it however you want!
π ESPN API Resources
- Public ESPN API Documentation β comprehensive endpoint list
- ESPN OpenAPI Spec β formal OpenAPI/Swagger schema
- Interactive API Explorer β try endpoints in browser
- Zuplo Guide β overview & alternatives
β οΈ Note: ESPN's API is unofficial/undocumented. It's stable and widely used, but could change without notice. The skill handles errors gracefully.
π Credits
- ESPN for their awesome (and free!) API
- pseudo-r, zuplo, and the community for API documentation
- Built with β€οΈ for football fans everywhere
Happy tracking! β½π
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
- OpenClaw CLI installed and configured.
- Language: Markdown
- License: MIT
- Topics:
Configuration
```json { "teams": [ { "name": "Barcelona", "emoji": "π΅π΄", "sport": "soccer", "espn_id": "83", "espn_leagues": ["esp.1", "uefa.champions"] }, { "name": "Lakers", "emoji": "πππ", "sport": "basketball", "espn_id": "13", "espn_leagues": ["nba"] } ] } ```
FAQ
How do I install sports-ticker?
Run openclaw add @robbyczgw-cla/sports-ticker in your terminal. This installs sports-ticker into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/robbyczgw-cla/sports-ticker. Review commits and README documentation before installing.
