Digital Oracle
komako-workshop/digital-oracle
Answer prediction questions using market trading data, not opinions.
Markets orchestration — connects ESPN live schedules with Kalshi and Polymarket prediction markets.
$ npx skills add machina-sports/sports-skills --skill markets -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install machina-sports/sports-skills markets --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/machina-sports/sports-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/markets .claude/skills/markets && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "markets" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/markets into .claude/skills/markets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "markets", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/machina-sports/sports-skills/tree/main/skills/marketsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add machina-sports/sports-skills --skill markets -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install machina-sports/sports-skills markets --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/machina-sports/sports-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/markets .agents/skills/markets && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "markets" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/markets into .agents/skills/markets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "markets", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add machina-sports/sports-skills --skill markets -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install machina-sports/sports-skills markets --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/machina-sports/sports-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/markets .cursor/skills/markets && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "markets" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/markets into .cursor/skills/markets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "markets", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/machina-sports/sports-skills.git --path skills/markets--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add machina-sports/sports-skills --skill markets -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install machina-sports/sports-skills markets --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/machina-sports/sports-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/markets .gemini/skills/markets && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "markets" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/markets into .gemini/skills/markets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "markets", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install machina-sports/sports-skills marketsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add machina-sports/sports-skills --skill markets -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/machina-sports/sports-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/markets .github/skills/markets && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "markets" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/markets into .github/skills/markets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "markets", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add machina-sports/sports-skills --skill markets -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install machina-sports/sports-skills markets --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/machina-sports/sports-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/markets .opencode/skills/markets && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "markets" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/markets into .opencode/skills/markets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "markets", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
marketsMarkets orchestration — connects ESPN live schedules with Kalshi and Polymarket prediction markets.
Markets is an agent skill from machina-sports/sports-skills. 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…
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/api-reference.md`).
It sits in Business, Finance & HR, covering Stock and market analysis. It works with Kalshi and Polymarket. The repository describes itself as: Open-source agent skills for live sports data and prediction markets. Football, F1, Kalshi, Polymarket. Zero API keys. SKILL.md format. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 09eb7e8. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and python).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Markets loads about 2.2k tokens when it runs, and up to ~3.8k if it reads all its reference files. Until then it costs about 178 tokens; SKILL.md has 869 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from machina-sports/sports-skills at commit 09eb7e8, republished under its MIT licence (© machina-sports). 869 words, ~2,243 tokens.
.claude/skills/markets/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.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=1dPython 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:
sport code is provided for sport-aware commands (get_todays_markets, compare_odds, get_sport_markets, evaluate_market).espn = American odds, polymarket = 0-1 probability, kalshi = 0-100 integer.--sport=nba maps automatically to the correct Polymarket sport code and Kalshi series ticker.sport → series_id; Kalshi uses KXNBA, KXNFL, etc.sports-skills markets get_todays_markets --sport=nbaReturns each game with ESPN info, DraftKings odds, matching Kalshi markets, and matching Polymarket markets.
get_sport_schedule --sport=nbacompare_odds --sport=nba --event_id=<id>price_basis: "reference"), so confirm both legs on each venue's order book before trading it.sources and completeness say which venues actually priced this game; a provider error is reported as error, not as "no markets".evaluate_market --sport=nba --event_id=<id> --outcome=0 --fee_per_contract=<dollars per $1 contract>betting.evaluate_bet: devig → edge → KellyWithout 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=...)).
match_markets --sport=mlb --date=2026-06-06kalshi.market_tickers[i] and polymarket.markets[i].token_ids[j] straight into get_market_price to compare prices.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).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:
get_todays_markets(sport="nba")
Result: Unified dashboard with each game's ESPN info and Kalshi/Polymarket pricesExample 2: Cross-platform team search User says: "Find me Lakers markets on Kalshi and Polymarket" Actions:
search_entity(query="Lakers", sport="nba")
Result: All Lakers markets across both exchanges with prices and volumeExample 3: Odds comparison for a specific game User says: "Compare the odds for this Celtics game across ESPN and Polymarket" Actions:
get_sport_schedule(sport="nba")compare_odds(sport="nba", event_id="<id>")
Result: Normalized side-by-side comparison with automatic arbitrage checkExample 4: Full market evaluation User says: "Is there edge on the Chiefs game?" Actions:
get_sport_schedule(sport="nfl")evaluate_market(sport="nfl", event_id="<id>")
Result: Fair probability, edge percentage, EV, Kelly fraction, and bet recommendationExample 5: Browse all markets for a sport User says: "Show me all NFL prediction markets" Actions:
get_sport_markets(sport="nfl")
Result: All open NFL markets across Kalshi and PolymarketExample 6: Price conversion User says: "Convert a Polymarket price of 65 cents to American odds" Actions:
normalize_price(price=0.65, source="polymarket")
Result: Common structure with implied probability (0.65), American odds (-185.7), and decimal (1.54)Example 7: Pair a game across venues User says: "Find the Mets game on both Kalshi and Polymarket" Actions:
match_markets(sport="mlb", date="<game date>")
Result: The game paired across venues — Kalshi market tickers and Polymarket moneyline token IDs side by sideExample 8: Historical price User says: "What was France's World Cup price a month ago?" Actions:
get_market_price(venue="kalshi", ticker="KXMENWORLDCUP-26-FR", at_time="2026-05-03T12:00:00+00:00")
Result: Yes/no prices (0-1) as of that moment; use get_price_history for the full curveget_oddscompare_odds to see odds across sources.search_marketssearch_entity instead.get_scheduleget_sport_schedule instead.If a command is not listed in references/api-reference.md, it does not exist.
Error: No markets returned for a sport
Cause: Sport code may be missing or incorrect
Solution: Check references/api-reference.md for valid sport codes. Use the exact code (e.g., nba, epl, laliga)
Error: compare_odds returns no data for an event
Cause: The event_id is incorrect or the game has not been indexed yet
Solution: Call get_sport_schedule(sport=...) to retrieve the correct event_id first
Error: One source shows warnings in the response Cause: Kalshi or Polymarket is temporarily unavailable Solution: The module returns partial results — use what is available. Retry the unavailable source separately using the kalshi or polymarket skill directly
Error: normalize_price returns unexpected American odds value
Cause: Wrong source parameter — Kalshi uses 0-100 integers, Polymarket uses 0-1 decimals
Solution: Verify the source. Kalshi price of 65 requires source="kalshi", Polymarket price of 0.65 requires source="polymarket"
© machina-sports, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/markets of machina-sports/sports-skills.
Open the folder on GitHubat commit 09eb7e8
Markets next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Markets this skillmachina-sports/sports-skills | 243 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Digital Oraclekomako-workshop/digital-oracle | 878 | — | ~5.9k | Automated safety check: Pass | MIT | |
| Polymarket Tennislivetennisapi/livetennisapi-mcp | 152 | — | ~3k | Automated safety check: Pass | MIT | |
| Feedsalsk1992/CloddsBot | 3k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Marketsalsk1992/CloddsBot | 3k | — | ~286 | Automated safety check: Pass | MIT | |
| Dr Manhattanguzus/dr-manhattan | 204 | — | ~2k | Automated safety check: Pass | Apache-2.0 |
komako-workshop/digital-oracle
Answer prediction questions using market trading data, not opinions.
livetennisapi/livetennisapi-mcp
Build observe-only Polymarket and Kalshi tennis market tooling on the polymarket-tennis Python package (MIT) plus the Live Tennis API free tier.
alsk1992/CloddsBot
Real-time market data feeds from 8 prediction market platforms
alsk1992/CloddsBot
Search and view prediction market data from Polymarket, Kalshi, Manifold, and Metaculus
guzus/dr-manhattan
Trade prediction markets (Polymarket, Kalshi, Opinion, Limitless, Predict.fun) using a unified CCXT-style API.
Superior-Trade/superior-skills
A skill your agent uses when a Polymarket prediction-market thesis rests on an external event — CPI, Fed, elections, court rulings, ETF decisions — and needs market confirmation before committing.
machina-sports/sports-skills
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…
machina-sports/sports-skills
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…
machina-sports/sports-skills
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…
machina-sports/sports-skills
Formula 1 data — race schedules, results, lap timing, driver and team info.
machina-sports/sports-skills
PGA Tour, LPGA, and DP World Tour golf data via ESPN public endpoints — tournament leaderboards, scorecards, season schedules, golfer profiles/overviews, and news.
machina-sports/sports-skills
Kalshi prediction markets — events, series, markets, trades, and candlestick data.
Works with
Categories
Markets orchestration — connects ESPN live schedules with Kalshi and Polymarket prediction markets. Markets is an agent skill from machina-sports/sports-skills. Markets orchestration — connects ESPN live schedules with Kalshi and Polymarket prediction markets.
Markets fits situations like: : user wants to see prediction market odds alongside ESPN game schedules; compare odds across platforms; search for a team/player on Kalshi; check for arbitrage between ESPN odds and prediction markets.
Run `npx skills add machina-sports/sports-skills --skill markets -a claude-code`. Or copy the skill folder (skills/markets in machina-sports/sports-skills) into .claude/skills/markets in your project. Claude Code loads it when a task matches its description.
Run `npx skills add machina-sports/sports-skills --skill markets -a codex`. Or copy the skill folder (skills/markets in machina-sports/sports-skills) into .agents/skills/markets in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add machina-sports/sports-skills --skill markets -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/markets, .gemini/skills/markets, .github/skills/markets and .opencode/skills/markets in your project.
SKILL.md names no scripts, command-line tools or credentials: Markets is instructions for the agent only. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Markets is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Markets: Digital Oracle (komako-workshop/digital-oracle, 878 stars), Polymarket Tennis (livetennisapi/livetennisapi-mcp, 152 stars), Feeds (alsk1992/CloddsBot, 3k stars) and Markets (alsk1992/CloddsBot, 3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
machina-sports (a GitHub organization) maintains it in machina-sports/sports-skills, which has 243 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 5, 2026.
Source: machina-sports/sports-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.