Provides real-time live cricket scores, detailed scorecards, upcoming matches, recent results, IPL standings, and match alerts using CricketData.org API.
# ๐ Cricket Live **Live cricket scores, IPL tracking, and match alerts for OpenClaw.** Get real-time scores, upcoming schedules, detailed scorecards, and IPL standings โ all from your OpenClaw agent. Powered by [CricketData.org](https://cricketdata.org) API (endpoint: `api.cricapi.com`). --- ## โจ Features - ๐ด **Live Scores** โ All currently live matches with real-time scores, overs, and status - ๐ **Match Details** โ Full scorecards with batting and bowling stats - ๐ **Upcoming Matches** โ Next 7 days of scheduled matches, filterable by team - โ **Recent Results** โ Completed matches from the last 3 days - ๐ **IPL Hub** โ Standings, upcoming IPL matches, live scores, and results - ๐ **Match Search** โ Find any match by team name (supports aliases like "MI", "CSK", "AUS") - ๐ **Alerts** โ Cron-ready script for wicket, century, and result notifications - ๐พ **Smart Caching** โ Respects API quota with configurable TTL per endpoint - ๐ฎ๐ณ **IST by Default** โ All times displayed in Indian Standard Time --- ## ๐ Quick Start ### 1. Get a Free API Key Sign up at [cricketdata.org](https://cricketdata.org) โ the free tier gives you **100 API calls/day**. (CricketData.org's API is served at `api.cricapi.com` โ they are the same service.) ### 2. Set the Environment Variable ```bash export CRICKET_API_KEY="your-api-key-here" # Add to your shell profile or ~/.openclaw/.env for persistence ``` ### 3. Run Any Script ```bash bash scripts/live-scores.sh # What's happening right now? bash scripts/upcoming-matches.sh # What's coming up? bash scripts/ipl.sh standings # IPL points table ``` --- ## ๐ Usage ### Live Scores ```bash bash scripts/live-scores.sh ``` Shows all currently live matches with scores, overs, and match status. **Example output:** ``` ๐ LIVE CRICKET SCORES โโโโโโโโโโโโโโโโโโโโโ ๐ด India vs England โ 3rd Test, Day 2 ๐ฎ๐ณ India: 285/6 (78.2 ov) ๐ด England: 312 (98.4 ov) ๐ India trail by 27 runs ๐ด Australia vs South Africa โ 1st ODI ๐ฆ๐บ Australia: 156/3 (28.1 ov) ๐ In Progress ``` ### Upcoming Matches ```bash bash scripts/upcoming-matches.sh # All upcoming bash scripts/upcoming-matches.sh --team India # Filter by team bash scripts/upcoming-matches.sh MI # Works with aliases ``` **Example output:** ``` ๐ UPCOMING MATCHES (Next 7 Days) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ฎ๐ณ India vs England โ 4th Test ๐ Ranchi ๐ 16 Feb 2026, 09:30 AM IST ๐ Mumbai Indians vs Chennai Super Kings โ IPL 2026 ๐ Wankhede Stadium, Mumbai ๐ 18 Feb 2026, 07:30 PM IST ``` ### Recent Results ```bash bash scripts/recent-results.sh ``` **Example output:** ``` โ RECENT RESULTS โโโโโโโโโโโโโโโโโ ๐ India won by 5 wickets India vs England โ 2nd Test ๐ Visakhapatnam ๐ Australia won by 73 runs Australia vs Sri Lanka โ 3rd ODI ๐ Melbourne ``` ### IPL Hub ```bash bash scripts/ipl.sh standings # Points table bash scripts/ipl.sh upcoming # Upcoming IPL matches bash scripts/ipl.sh live # Live IPL scores bash scripts/ipl.sh results # Recent IPL results ``` ### Match Details (Scorecard) ```bash bash scripts/match-details.sh <match-id> ``` Get match IDs from live-scores or search results. ### Search Matches ```bash bash scripts/search-match.sh "India vs Australia" bash scripts/search-match.sh "MI vs CSK" ``` ### Cricket Alerts (Cron) ```bash bash scripts/cricket-alert.sh ``` Detects wickets, centuries, and match completions since last check. Outputs only when something notable happens โ perfect for cron. --- ## ๐ฃ๏ธ Natural Language Mapping | User says | Script | |-----------|--------| | "What's the score?" / "Live scores" | `live-scores.sh` | | "Show me the scorecard for match X" | `match-details.sh <id>` | | "Upcoming matches" / "What's coming up?" | `upcoming-matches.sh` | | "Recent results" / "Who won?" | `recent-results.sh` | | "IPL table" / "IPL standings" | `ipl.sh standings` | | "IPL matches today" | `ipl.sh live` | | "India vs Australia" | `search-match.sh "India vs Australia"` | --- ## โ๏ธ Configuration ### `config/cricket.yaml` Main configuration file. API key can be set here or via `CRICKET_API_KEY` env var (env var takes priority). ```yaml api_key: "" # Set via env var recommended favorite_teams: # Teams for alert filtering - India - Mumbai Indians alert_events: # Events that trigger alerts - wicket - century - match_end cache_dir: /tmp/cricket-cache # Cache directory cache_ttl: # Cache TTL in seconds per endpoint live: 120 upcoming: 1800 results: 1800 series: 86400 scorecard: 300 ``` ### `config/teams.yaml` Team name aliases for fuzzy matching. Maps shorthand names (MI, CSK, IND, AUS) to canonical API names. See `config/README.md` for details. --- ## โฐ Cron Integration Set up periodic match alerts: ```bash # Check for notable events every 5 minutes during match hours */5 9-23 * * * CRICKET_API_KEY="your-key" bash /path/to/skills/cricket-scores/scripts/cricket-alert.sh # Or use OpenClaw cron: # Schedule cricket-alert.sh to run during IPL match times (7-11 PM IST) ``` The alert script tracks state in `/tmp/cricket-alert-state.json` and only outputs when something new happens (wicket, century, match result). --- ## ๐ API Quota Management | Tier | Calls/Day | Cost | |------|-----------|------| | Free | 100 | $0 | | Pro | 2,000 | $5.99/mo | ### How Caching Helps All scripts cache API responses locally in `/tmp/cricket-cache/`: - **Live scores:** 2 min TTL (fresh during matches) - **Upcoming/Results:** 30 min TTL - **Series info:** 24 hour TTL - **Scorecards:** 5 min TTL ### Budget During a Match Day ~10 list calls + ~50 score checks + 40 ad-hoc = **100 calls** (fits free tier) ### When Quota is Exhausted Scripts show a clear message: *"API quota exhausted (100 calls/day limit reached). Try again tomorrow or upgrade."* --- ## ๐ Output Format All output is messaging-friendly: - No markdown tables (works on WhatsApp, Discord, Telegram) - Bullet point lists with emoji - Times converted to IST - Match IDs included for drill-down --- ## ๐ Requirements - **bash** 4.0+ - **curl** (usually pre-installed) - **jq** โ `apt install jq` or `brew install jq` - **CricketData.org API key** (free) โ sign up at [cricketdata.org](https://cricketdata.org) --- ## ๐ Security Notes - **API key in URL query parameter:** The CricketData.org API (`api.cricapi.com`) requires the API key to be passed as a URL query parameter (`?apikey=...`). This means the key may appear in shell history, process listings, server access logs, and any HTTP proxy/inspection logs. Mitigations: - Set the key via the `CRICKET_API_KEY` environment variable (not hardcoded in config files). - Use the **free tier key** for this skill โ it has limited scope and can be rotated easily. - Avoid running scripts in shared/multi-tenant environments where process arguments are visible to other users. - The CricketData.org API does **not** support header-based authentication, so query-param passing is unavoidable. --- ## ๐ License MIT โ see [LICENSE](LICENSE)
don't have the plugin yet? install it then click "run inline in claude" again.