
cbb-data
College Basketball (CBB) data via ESPN public endpoints and the NCAA's official endpoints — scores, standings, rosters, schedules, game summaries, play-by-play, win probability, rankings, futures, team/player stats, and news for Division I men's basketball, plus official D2/D3 scoreboards, NCAA game detail, the March Madness bracket with live scores, and the schools index. Zero config, no API keys. Use when: user asks about college basketball scores, March Madness, the NCAA tournament bracket, standings, rankings, team rosters, schedules, play-by-play, betting futures, team/player statistics, CBB news, or D2/D3 games. Don't use when: user asks about NBA/WNBA (use nba-data/wnba-data), college football (use cfb-data), or non-sports topics.
- Installs
- 671
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/machina-sports/sports-skills --skill cbb-data- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads cbb-data automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
College Basketball Data (CBB)
Before writing queries, consult references/api-reference.md for endpoints, conference IDs, team IDs, and data shapes.
Setup
Before first use, check if the CLI is available:
which sports-skills || pip install sports-skills
If pip install fails with a Python version error, the package requires Python 3.10+. Find a compatible Python:
python3 --version # check version
# If < 3.10, try: python3.12 -m pip install sports-skills
# On macOS with Homebrew: /opt/homebrew/bin/python3.12 -m pip install sports-skills
No API keys required.
Quick Start
Prefer the CLI — it avoids Python import path issues:
sports-skills cbb get_scoreboard
sports-skills cbb get_rankings
sports-skills cbb get_standings --group=23
CRITICAL: Before Any Query
CRITICAL: Before calling any data endpoint, verify:
- Season year is derived from the system prompt's
currentDate— never hardcoded. - For standings, the
groupparameter is set to the correct conference ID (seereferences/api-reference.md). - If only a team name is provided, use
get_teamsto resolve the team ID.
Choosing the Season
Derive the current year from the system prompt's date (e.g., currentDate: 2026-02-28 → current year is 2026).
- If the user specifies a season, use it as-is.
- If the user says "current", "this season", or doesn't specify: The CBB season runs November–April. If the current month is November or December, use
season = current_year + 1. If January–April, useseason = current_year. If May–October (offseason), useseason = current_year(most recently completed season).
Important: College vs. Pro Differences
- Standings are per-conference — use the
groupparameter to filter - Rankings replace leaders — college uses AP Top 25 and Coaches Poll
- Ranked teams have a
rankfield (null = unranked) on scoreboard competitors - 360+ D1 teams — many games per day during the season (50+ during conference play)
- March Madness — NCAA Tournament runs in March/April with 68 teams
Commands
| Command | Description |
|---|---|
get_scoreboard | Live/recent college basketball scores |
get_standings | Standings by conference (use group parameter) |
get_teams | All 360+ D1 men's basketball teams |
get_team_roster | Full roster for a team |
get_team_schedule | Schedule for a specific team |
get_game_summary | Detailed box score and player stats |
get_rankings | AP Top 25 and Coaches Poll rankings |
get_news | College basketball news |
get_play_by_play | Full play-by-play for a game |
get_win_probability | Win probability chart data |
get_schedule | Schedule for a date or season |
get_futures | Futures/odds markets (National Championship, etc.) |
get_team_stats | Team statistical profile |
get_player_stats | Player statistical profile |
get_ncaa_scoreboard | Official NCAA scoreboard — D1, D2, and D3 |
get_ncaa_schedule | Which dates have games (official index) |
get_ncaa_game | Official NCAA game information |
get_ncaa_boxscore | Official NCAA box score |
get_ncaa_play_by_play | Official play-by-play |
get_ncaa_bracket | March Madness bracket with live scores |
get_ncaa_schools | NCAA schools index (all divisions) |
get_power_index | BPI (Basketball Power Index) ratings for D1 teams |
get_tournament_projections | NCAA tournament projections with seeds, regions, and advancement probabilities |
compare_teams | Compare two teams using BPI ratings and season stats |
find_upset_candidates | Potential upsets based on BPI vs seed differential |
See references/api-reference.md for full parameter lists and return shapes.
Official NCAA Backend
The get_ncaa_* commands read the NCAA's own endpoints (sdataprod.ncaa.com +
ncaa.com) — coverage ESPN does not carry:
- D2 and D3 scoreboards via
division="d2"/"d3"— ESPN's college coverage is D1-centric. - Both scoreboards now return all of Division I by default — the
ESPN-backed
get_scoreboard/get_schedulepreviously inherited ESPN's Top-25-only un-grouped default (1 game on an ordinary Friday instead of ~24). Passgroupexplicitly for a narrower ESPN grouping. - The official March Madness bracket with live scores:
get_ncaa_bracket. - Official game detail:
get_ncaa_game,get_ncaa_boxscore,get_ncaa_play_by_play. - The schools index (~1,200 schools, all divisions):
get_ncaa_schools.
NCAA game ids (from get_ncaa_scoreboard) and ESPN event ids share nothing —
join on game date plus team names. NCAA reissues game ids, so take them from a
fresh get_ncaa_scoreboard call rather than storing them. get_ncaa_bracket
returns an error, not a placeholder bracket, when no game has teams: the 2020
tournaments were cancelled, and future brackets appear once the field is
announced. All get_ncaa_* commands except get_ncaa_schools ride NCAA's
GraphQL persisted queries, whose hashes rotate when ncaa.com redeploys; when
that happens they say so explicitly, and the ESPN-backed get_scoreboard /
get_schedule cover the same D1 games.
Examples
Example 1: Current rankings User says: "What are the college basketball rankings?" Actions:
- Call
get_rankings()Result: AP Top 25 and Coaches Poll with rank, previous rank, record, and points
Example 2: Conference standings User says: "Show me SEC basketball standings" Actions:
- Derive season year from
currentDate - Call
get_standings(group=23, season=<derived_year>)(group 23 = SEC) Result: SEC standings with W-L records per team
Example 3: Today's scores User says: "What are today's college basketball scores?" Actions:
- Call
get_scoreboard()Result: All live and recent CBB games with scores and ranked status
Example 4: Team roster User says: "Show me Duke's roster" Actions:
- Call
get_team_roster(team_id="150")Result: Full Duke roster with name, position, jersey number
Example 5: March Madness futures User says: "Who's favored to win March Madness?" Actions:
- Call
get_futures(limit=10)Result: Top National Championship contenders with odds values
Example 6: Team statistics User says: "Show me Duke's team stats" Actions:
- Derive season year from
currentDate - Call
get_team_stats(team_id="150", season_year=<derived_year>)Result: Duke's season stats by category with value, rank, and per-game averages
Commands that DO NOT exist — never call these
/get_odds— not available. For prediction market odds, use the polymarket or kalshi skill.get_betting_odds— does not exist. Usesearch_teamsget_teamsinstead.— does not exist. Useget_box_scoreget_game_summaryinstead.— does not exist. Useget_player_ratingsget_player_statsinstead.— does not exist. Useget_ap_pollget_rankingsinstead.
If a command is not listed in the Commands table above, it does not exist.
Error Handling
When a command fails, do not surface raw errors to the user. Instead:
- If no events found, check if it's the off-season (CBB runs November–April)
- If standings are empty without a group filter, try a specific conference
- During March Madness, the scoreboard will have tournament games
- Only report failure with a clean message after exhausting alternatives
Troubleshooting
Error: sports-skills command not found
Cause: Package not installed
Solution: Run pip install sports-skills
Error: No games found on scoreboard
Cause: CBB is seasonal (November–April); off-season scoreboard will be empty
Solution: Use get_rankings or get_news year-round; check get_schedule for when the season resumes
Error: Too many games returned — hard to filter
Cause: During the season, 50+ games per day are scheduled
Solution: Use --group to filter by conference, or --limit to cap results
Error: Rankings empty
Cause: Rankings are published weekly during the season (November–March) only
Solution: Use get_news in the offseason; rankings resume in November
FAQ
What does the cbb-data skill do?
College Basketball (CBB) data via ESPN public endpoints and the NCAA's official endpoints — scores, standings, rosters, schedules, game summaries, play-by-play, win probability, rankings, futures, team/player stats, and news for Division I men's basketball, plus official D2/D3 scoreboards, NCAA game detail, the March Madness bracket with live scores, and the schools index. Zero config, no API keys. Use when: user asks about college basketball scores, March Madness, the NCAA tournament bracket, standings, rankings, team rosters, schedules, play-by-play, betting futures, team/player statistics, CBB news, or D2/D3 games. Don't use when: user asks about NBA/WNBA (use nba-data/wnba-data), college football (use cfb-data), or non-sports topics.
How do I install cbb-data?
Run npx skills add https://github.com/machina-sports/sports-skills --skill cbb-data in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/cbb-data/ (personal) or .claude/skills/cbb-data/ (project).
Which AI agents can use cbb-data?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is cbb-data safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains cbb-data?
It is published by machina-sports in machina-sports/sports-skills. It has 671 recorded installs.
More from machina-sports/sports-skills
football-data
machina-sports/sports-skills
Football (soccer) data across the world's major leagues — standings, schedules, match stats, xG, transfers, player profiles, head-to-head history, team strength (Elo), and match forecasts. Zero config, no API keys. Covers Premier League, La Liga, Bundesliga, Serie A, Ligue 1, MLS, Champions League, World Cup, Championship, Serie B, Eredivisie, Primeira Liga, Serie A Brazil, Russian Premier League, Scottish/Belgian/Turkish top flights, European Championship, and more (call getcompetitions for the live list). Use when: user asks about football/soccer standings, fixtures, match stats, xG, lineups, player values, transfers, injury news, league tables, daily fixtures, player profiles, head-to-head records, team strength/Elo ratings, or match odds/forecasts. Don't use when: user asks about American football/NFL (use nfl-data), college football (use cfb-data), NBA (use nba-data), WNBA (use wnba-data), college basketball (use cbb-data), NHL (use nhl-data), MLB (use mlb-data), tennis (use tenn
betting
machina-sports/sports-skills
Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage detection, parlay analysis, and line movement. Pure computation, no API calls. Works with odds from any source: ESPN (American odds), Polymarket (decimal probabilities), Kalshi (integer probabilities). Use when: user asks about bet sizing, expected value, edge analysis, Kelly criterion, arbitrage, parlays, line movement, odds conversion, or comparing odds across sources. Also use when you have odds from ESPN and a prediction market price and want to evaluate whether a bet has positive expected value. Don't use when: user asks for live odds or market data — use polymarket, kalshi, or the sport-specific skill to fetch odds first, then use this skill to analyze them.
polymarket
machina-sports/sports-skills
Polymarket sports prediction markets — read-only live odds, prices, order books, events, series, and market search. No auth required. Covers NFL, NBA, MLB, football (EPL, UCL, La Liga), tennis, cricket, MMA, esports. Supports moneyline, spreads, totals, and player props. Use when: user asks about sports betting odds, prediction markets, win probabilities, market sentiment, or "who is favored to win" questions and only needs read-only market intelligence. Don't use when: user asks about actual match results, scores, or statistics — use the sport-specific skill. Don't use for historical match data. Don't use for news — use sports-news instead. Don't use for placing, cancelling, or managing orders — use the separate polymarket-trading skill only after explicit user approval.
sports-news
machina-sports/sports-skills
Sports news via RSS/Atom feeds and Google News. Fetch headlines, search by query, filter by date. Covers football news, transfer rumors, match reports, and any sport via Google News. Use when: user asks for recent news, headlines, transfer rumors, or articles about any sport. Good for "what's the latest on [team/player]" questions. Supports any Google News query and curated RSS feeds (BBC Sport, ESPN, The Athletic, Sky Sports). Don't use when: user asks for structured data like standings, scores, statistics, or xG — use the sport-specific skill instead: football-data (soccer), nfl-data (NFL), nba-data (NBA), wnba-data (WNBA), nhl-data (NHL), mlb-data (MLB), tennis-data (tennis), golf-data (golf), cricket-data (cricket), cfb-data (college football), cbb-data (college basketball), or fastf1 (F1). Don't use for prediction market odds — use polymarket or kalshi. News results are text articles, not structured data.
kalshi
machina-sports/sports-skills
Kalshi prediction markets — events, series, markets, trades, and candlestick data. Public API, no auth required for reads. US-regulated exchange (CFTC). Covers football (EPL, UCL, La Liga), basketball, baseball, tennis, NFL, hockey event contracts. Use when: user asks about Kalshi-specific markets, event contracts, CFTC-regulated prediction markets, or candlestick/OHLC price history on sports outcomes. Don't use when: user asks about actual match results, scores, or statistics — use the sport-specific skill: football-data (soccer), nfl-data (NFL), nba-data (NBA), wnba-data (WNBA), nhl-data (NHL), mlb-data (MLB), tennis-data (tennis), golf-data (golf), cricket-data (cricket), cfb-data (college football), cbb-data (college basketball), or fastf1 (F1). Don't use for general "who will win" questions unless Kalshi is specifically mentioned — try polymarket first (broader sports coverage). Don't use for news — use sports-news instead.
nba-data
machina-sports/sports-skills
NBA data via ESPN public endpoints, the NBA live CDN, and NBA Stats (stats.nba.com) — scores, standings, rosters, schedules, game summaries, play-by-play, injuries, futures, depth charts, leaders, and news, plus an analytics backend: advanced ratings, per-shot court coordinates, career splits, and history to 1946. Zero config, no API keys. Use when: user asks about NBA scores, standings, team rosters, schedules, game stats, box scores, play-by-play, injuries, transactions, betting futures, depth charts, team/player statistics, NBA news, shot charts, advanced ratings/pace, career stats, or historical NBA seasons. Don't use when: user asks about WNBA (use wnba-data), college basketball (use cbb-data), or other sports.
Popular media & creative skills
hyperframes
heygen-com/hyperframes
Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs.
media-use
heygen-com/hyperframes
Get or make any media for a HyperFrames video - music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks - with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull, or should be stylized or hidden.
hyperframes-registry
heygen-com/hyperframes
About 450 ready-made HyperFrames blocks and components installed as editable source - transitions, overlays, titles, kinetic type, captions, charts, map overlays, 3D, camera moves. Use it before hand-building any named visual (CRT scanlines, glitch, film grain, a chart); also for hyperframes add and catalog.
hyperframes-creative
heygen-com/hyperframes
Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use hyperframes-animation.
ai-video-generation
101-skills/superpowers
Generate AI videos with Google Veo, Seedance 2.0, HappyHorse, Wan, Grok and 40+ models via inference.sh CLI. Models: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Capabilities: text-to-video, image-to-video, reference-to-video, video editing, lipsync, avatar animation, video upscaling, foley sound. Use for: social media videos, marketing content, explainer videos, product demos, AI avatars. Triggers: video generation, ai video, text to video, image to video, veo, animate image, video from image, ai animation, video generator, generate video, t2v, i2v, ai video maker, create video with ai, runway alternative, pika alternative, sora alternative, kling alternative, seedance, happyhorse
ai-image-generation
101-skills/superpowers
Generate AI images with GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capabilities: text-to-image, image-to-image, inpainting, LoRA, image editing, upscaling, text rendering. Use for: AI art, product mockups, concept art, social media graphics, marketing visuals, illustrations. Triggers: flux, image generation, ai image, text to image, stable diffusion, generate image, ai art, midjourney alternative, dall-e alternative, text2img, t2i, image generator, ai picture, create image with ai, generative ai, ai illustration, grok image, gemini image, gpt image, openai image, chatgpt image