/markets
Markets orchestration — connects ESPN live schedules with Kalshi and Polymarket prediction markets. Unified dashboards, odds comparison, entity search, and bet evaluation across platforms. Use when: user wants to see prediction market odds alongside ESPN game schedules, compare
$ npx -y skills add machina-sports/sports-skills --skill markets --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/markets
Context preview
The summary Claude sees to decide when to auto-load this skill.
Markets orchestration — connects ESPN live schedules with Kalshi and Polymarket prediction markets. Unified dashboards, odds comparison, entity search, and bet evaluation across platforms. Use when: user wants to see prediction market odds alongside ESPN game schedules, compare
SKILL.md
markets.SKILL.mdname: markets
description: |
Markets orchestration — connects ESPN live schedules with Kalshi and Polymarket prediction markets. Unified dashboards, odds comparison, entity search, and bet evaluation across platforms.
Use when: user wants to see prediction market odds alongside ESPN game schedules, compare odds across platforms, search for a team/player on Kalshi or Polymarket, check for arbitrage between ESPN odds and prediction markets, or evaluate a specific game's market value.
Don't use when: user wants raw prediction market data without ESPN context — use polymarket or kalshi directly. For pure odds math (conversion, de-vigging, Kelly) — use betting. For live scores without market data — use the sport-specific skill.
license: MIT
metadata:
author: machina-sports
version: "0.3.0"
Markets Orchestration
Bridges ESPN live schedules (NBA, NFL, MLB, NHL, WNBA, CFB, CBB) with Kalshi and Polymarket prediction markets. Before writing queries, consult `references/api-reference.md` for supported sport codes, command parameters, and price normalization formats.
Quick Start
sports-skills markets get_todays_markets --sport=nba
sports-skills markets search_entity --query="Lakers" --sport=nba
sports-skills markets compare_odds --sport=nba --event_id=401234567
sports-skills markets get_sport_markets --sport=nfl
sports-skills markets get_sport_schedule --sport=nba
sports-skills markets normalize_price --price=0.65 --source=polymarket
sports-skills markets evaluate_market --sport=nba --event_id=401234567
sports-skills markets match_markets --sport=mlb --date=2026-06-06
sports-skills markets get_market_price --venue=kalshi --ticker=KXMENWORLDCUP-26-FR
sports-skills markets get_price_history --venue=kalshi --ticker=KXMENWORLDCUP-26-FR --interval=1d
Python SDK:
from sports_skills import markets
markets.get_todays_markets(sport="nba")
markets.search_entity(query="Lakers", sport="nba")
markets.compare_odds(sport="nba", event_id="401234567")
markets.get_sport_markets(sport="nfl")
markets.get_sport_schedule(sport="nba", date="2025-02-26")
markets.normalize_price(price=0.65, source="polymarket")
markets.evaluate_market(sport="nba", event_id="401234567")
markets.match_markets(sport="mlb", date="2026-06-06")
markets.get_market_price(venue="kalshi", ticker="KXMENWORLDCUP-26-FR", at_time="2026-05-01T12:00:00+00:00")
markets.get_price_history(venue="polymarket", token_id="<token_id>", interval="1h")
CRITICAL: Before Any Query
CRITICAL: Before calling any orchestration command, verify:
- A `sport` code is provided for sport-aware commands (`get_todays_markets`, `compare_odds`, `get_sport_markets`, `evaluate_market`).
- Price sources are identified correctly before normalization: `espn` = American odds, `polymarket` = 0-1 probability, `kalshi` = 0-100 integer.
Important Notes
- **Sport context is passed through.** `--sport=nba` maps automatically to the correct Polymarket sport code and Kalshi series ticker.
- **Both platforms use sport-aware search.** Polymarket uses `sport` → series_id; Kalshi uses `KXNBA`, `KXNFL`, etc.
- **Prices are normalized.** Everything is converted to implied probability for comparison.
Workflows
Today's NBA Dashboard
sports-skills markets get_todays_markets --sport=nba
Returns each game with ESPN info, DraftKings odds, matching Kalshi markets, and matching Polymarket markets.
Find Arb on a Specific Game
1. Get the ESPN event ID: `get_sport_schedule --sport=nba` 2. Compare odds: `compare_odds --sport=nba --event_id=<id>` 3. If arbitrage detected, response includes allocation percentages and guaranteed ROI.
Full Bet Evaluation
1. `evaluate_market --sport=nba --event_id=<id>` 2. Fetches ESPN odds and matching prediction market price 3. Pipes through `betting.evaluate_bet`: devig → edge → Kelly 4. Returns fair probability, edge, EV, Kelly fraction, and recommendation
Same Game on Both Venues
1. `match_markets --sport=mlb --date=2026-06-06` 2. Each match pairs the Kalshi event (with market tickers) and the Polymarket event (with moneyline token IDs) for the same game — joined deterministically on date + team codes, fuzzy title match as fallback. 3. Feed `kalshi.market_tickers[i]` and `polymarket.markets[i].token_ids[j]` straight into `get_market_price` to compare prices.
Price Movement Over Time
1. `get_market_price --venue=kalshi --ticker=<ticker> --at_time=2026-05-01` for a single point-in-time price (both `yes`/`no` sides, 0-1). 2. `get_price_history --venue=kalshi --ticker=<ticker> --interval=1d` for the full series — same `{timestamp, price}` shape on either venue.
Examples
Example 1: Today's games with prediction market odds User says: "What NBA games are on today and what are the prediction market odds?" Actions: 1. Call `get_todays_markets(sport="nba")` Result: Unified dashboard with each game's ESPN info and Kalshi/Polymarket prices
Example 2: Cross-platform team search User says: "Find me Lakers markets on Kalshi and Polymarket" Actions: 1. Call `search_entity(query="Lakers", sport="nba")` Result: All Lakers markets across both exchanges with prices and volume
Example 3: Odds comparison for a specific game User says: "Compare the odds for this Celtics game across ESPN and Polymarket" Actions: 1. Get event_id from `get_sport_schedule(sport="nba")` 2. Call `compare_odds(sport="nba", event_id="<id>")` Result: Normalized side-by-side comparison with automatic arbitrage check
Example 4: Full market evaluation User says: "Is there edge on the Chiefs game?" Actions: 1. Get event_id from `get_sport_schedule(sport="nfl")` 2. Call `evaluate_market(sport="nfl", event_id="<id>")` Result: Fair probability, edge percentage, EV, Kelly fraction, and bet recommendation
Example 5: Browse all markets for a sport User says: "Show me all NFL prediction markets" Actions: 1. Call `get_sport_markets(sport="nfl")` Result: All open NFL markets across Kalshi and Polymarket
Example 6: Price
Read more
name: markets description: | Markets orchestration — connects ESPN live schedules with Kalshi and Polymarket prediction markets. Unified dashboards, odds comparison, entity search, and bet evaluation across platforms. Use when: user wants to see prediction market odds alongside ESPN game schedules, compare odds across platforms, search for a team/player on Kalshi or Polymarket, check for arbitrage between ESPN odds and prediction markets, or evaluate a specific game's market value. Don't use when: user wants raw prediction market data without ESPN context — use polymarket or kalshi directly. For pure odds math (conversion, de-vigging, Kelly) — use betting. For live scores without market data — use the sport-specific skill. license: MIT metadata: author: machina-sports version: "0.3.0"
Markets Orchestration
Bridges ESPN live schedules (NBA, NFL, MLB, NHL, WNBA, CFB, CBB) with Kalshi and Polymarket prediction markets. Before writing queries, consult `references/api-reference.md` for supported sport codes, command parameters, and price normalization formats.
Quick Start
sports-skills markets get_todays_markets --sport=nba sports-skills markets search_entity --query="Lakers" --sport=nba sports-skills markets compare_odds --sport=nba --event_id=401234567 sports-skills markets get_sport_markets --sport=nfl sports-skills markets get_sport_schedule --sport=nba sports-skills markets normalize_price --price=0.65 --source=polymarket sports-skills markets evaluate_market --sport=nba --event_id=401234567 sports-skills markets match_markets --sport=mlb --date=2026-06-06 sports-skills markets get_market_price --venue=kalshi --ticker=KXMENWORLDCUP-26-FR sports-skills markets get_price_history --venue=kalshi --ticker=KXMENWORLDCUP-26-FR --interval=1d
Python SDK:
from sports_skills import markets markets.get_todays_markets(sport="nba") markets.search_entity(query="Lakers", sport="nba") markets.compare_odds(sport="nba", event_id="401234567") markets.get_sport_markets(sport="nfl") markets.get_sport_schedule(sport="nba", date="2025-02-26") markets.normalize_price(price=0.65, source="polymarket") markets.evaluate_market(sport="nba", event_id="401234567") markets.match_markets(sport="mlb", date="2026-06-06") markets.get_market_price(venue="kalshi", ticker="KXMENWORLDCUP-26-FR", at_time="2026-05-01T12:00:00+00:00") markets.get_price_history(venue="polymarket", token_id="<token_id>", interval="1h")
CRITICAL: Before Any Query
CRITICAL: Before calling any orchestration command, verify:
- A `sport` code is provided for sport-aware commands (`get_todays_markets`, `compare_odds`, `get_sport_markets`, `evaluate_market`).
- Price sources are identified correctly before normalization: `espn` = American odds, `polymarket` = 0-1 probability, `kalshi` = 0-100 integer.
Important Notes
- **Sport context is passed through.** `--sport=nba` maps automatically to the correct Polymarket sport code and Kalshi series ticker.
- **Both platforms use sport-aware search.** Polymarket uses `sport` → series_id; Kalshi uses `KXNBA`, `KXNFL`, etc.
- **Prices are normalized.** Everything is converted to implied probability for comparison.
Workflows
Today's NBA Dashboard
sports-skills markets get_todays_markets --sport=nba
Returns each game with ESPN info, DraftKings odds, matching Kalshi markets, and matching Polymarket markets.
Find Arb on a Specific Game
1. Get the ESPN event ID: `get_sport_schedule --sport=nba` 2. Compare odds: `compare_odds --sport=nba --event_id=<id>` 3. If arbitrage detected, response includes allocation percentages and guaranteed ROI.
Full Bet Evaluation
1. `evaluate_market --sport=nba --event_id=<id>` 2. Fetches ESPN odds and matching prediction market price 3. Pipes through `betting.evaluate_bet`: devig → edge → Kelly 4. Returns fair probability, edge, EV, Kelly fraction, and recommendation
Same Game on Both Venues
1. `match_markets --sport=mlb --date=2026-06-06` 2. Each match pairs the Kalshi event (with market tickers) and the Polymarket event (with moneyline token IDs) for the same game — joined deterministically on date + team codes, fuzzy title match as fallback. 3. Feed `kalshi.market_tickers[i]` and `polymarket.markets[i].token_ids[j]` straight into `get_market_price` to compare prices.
Price Movement Over Time
1. `get_market_price --venue=kalshi --ticker=<ticker> --at_time=2026-05-01` for a single point-in-time price (both `yes`/`no` sides, 0-1). 2. `get_price_history --venue=kalshi --ticker=<ticker> --interval=1d` for the full series — same `{timestamp, price}` shape on either venue.
Examples
Example 1: Today's games with prediction market odds User says: "What NBA games are on today and what are the prediction market odds?" Actions: 1. Call `get_todays_markets(sport="nba")` Result: Unified dashboard with each game's ESPN info and Kalshi/Polymarket prices
Example 2: Cross-platform team search User says: "Find me Lakers markets on Kalshi and Polymarket" Actions: 1. Call `search_entity(query="Lakers", sport="nba")` Result: All Lakers markets across both exchanges with prices and volume
Example 3: Odds comparison for a specific game User says: "Compare the odds for this Celtics game across ESPN and Polymarket" Actions: 1. Get event_id from `get_sport_schedule(sport="nba")` 2. Call `compare_odds(sport="nba", event_id="<id>")` Result: Normalized side-by-side comparison with automatic arbitrage check
Example 4: Full market evaluation User says: "Is there edge on the Chiefs game?" Actions: 1. Get event_id from `get_sport_schedule(sport="nfl")` 2. Call `evaluate_market(sport="nfl", event_id="<id>")` Result: Fair probability, edge percentage, EV, Kelly fraction, and bet recommendation
Example 5: Browse all markets for a sport User says: "Show me all NFL prediction markets" Actions: 1. Call `get_sport_markets(sport="nfl")` Result: All open NFL markets across Kalshi and Polymarket
Example 6: Price
Open-source agent skills for live sports data and prediction markets. Built for the Agent Skills spec. Works with sportsclaw, OpenClaw, Claude Code, Cursor, Copilot, Gemini CLI, Hermes Agent, and every major AI agent. Zero API keys. Zero signup.
Other skills on sports-skills.
- /betting
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
Open skill - /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
Open skill - /cfb-data
College Football (CFB) data via ESPN public endpoints and the NCAA's official endpoints — scores, standings, rosters, schedules, game summaries, play-by-play, rankings, injuries, futures, team/player stats, and news for FBS, plus official FCS scoreboards, NCAA game detail with
Open skill - /cricket-data
Cricket data via ESPN public endpoints and Cricsheet open data — live-ish series scoreboards, standings, match summaries and news (ESPN), plus historical ball-by-ball, player stats, and player registry (Cricsheet, ODC-BY 1.0). Zero config, no API keys. Use when: user asks about
Open skill - /esports
Esports data — Dota 2 (OpenDota) and League of Legends esports (Leaguepedia). Pro matches, tournaments, teams, and structured LoL competitive data. Use when: user asks about Dota 2 pro matches/teams/leagues, or LoL esports tournaments/rosters/results. Don't use when: user asks
Open skill - /fastf1
Formula 1 data — race schedules, results, lap timing, driver and team info. Powered by the FastF1 library. Covers F1 sessions, qualifying, practice, race results, sector times, tire strategy. Use when: user asks about F1 race results, qualifying, lap times, driver stats, team
Open skill

