betting
Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage…
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.
/marketsContext 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
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"
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.
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 calling any orchestration command, verify:
sports-skills markets get_todays_markets --sport=nba
Returns each game with ESPN info, DraftKings odds, matching Kalshi markets, and matching Polymarket markets.
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 ROI — computed from **reference** prices (`price_basis: "reference"`), so confirm both legs on each venue's order book before trading it. 4. `sources` and `completeness` say which venues actually priced this game; a provider error is reported as `error`, not as "no markets".
1. `evaluate_market --sport=nba --event_id=<id> --outcome=0 --fee_per_contract=<dollars per $1 contract>` 2. Verifies the market is this game's full-game winner market for the chosen side, then reads the **ask** off the order book 3. Pipes ask + fee through `betting.evaluate_bet`: devig → edge → Kelly 4. Returns fair probability, edge, EV, Kelly fraction, and recommendation
Without `fee_per_contract` the ask is reported but `evaluation` is `null` — the net numbers are refused rather than assumed free. A ticker or `token_id` that names another team, another date, or a derivative (first-half, spread) market is refused, not substituted. Fees are not currently settable via the CLI; use the Python wrapper (`markets.evaluate_market(..., fee_per_contract=...)`).
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.
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.
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 spec
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.
Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage…
College Basketball (CBB) data via ESPN public endpoints and the NCAA's official endpoints —…
College Football (CFB) data via ESPN public endpoints and the NCAA's official endpoints —…
Cricket data via ESPN public endpoints and Cricsheet open data — live-ish series scoreboards,…
Esports data — Dota 2 (OpenDota) and League of Legends esports (Leaguepedia). Pro matches,…
Formula 1 data — race schedules, results, lap timing, driver and team info. Powered by the…