Digital Oracle
komako-workshop/digital-oracle
Answer prediction questions using market trading data, not opinions.
Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage detection, parlay analysis, and line movement.
$ npx skills add machina-sports/sports-skills --skill betting -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install machina-sports/sports-skills betting --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/betting .claude/skills/betting && 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 "betting" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/betting into .claude/skills/betting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "betting", 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/bettingType 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 betting -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install machina-sports/sports-skills betting --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/betting .agents/skills/betting && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "betting" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/betting into .agents/skills/betting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "betting", 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 betting -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install machina-sports/sports-skills betting --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/betting .cursor/skills/betting && 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 "betting" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/betting into .cursor/skills/betting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "betting", 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/betting--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 betting -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install machina-sports/sports-skills betting --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/betting .gemini/skills/betting && 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 "betting" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/betting into .gemini/skills/betting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "betting", 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 bettingInstalls 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 betting -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/betting .github/skills/betting && 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 "betting" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/betting into .github/skills/betting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "betting", 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 betting -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 betting --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/betting .opencode/skills/betting && 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 "betting" agent skill from https://github.com/machina-sports/sports-skills/tree/main/skills/betting into .opencode/skills/betting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "betting", 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.
bettingBetting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage detection, parlay analysis, and line movement.
Betting is an agent skill from 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…
Its SKILL.md is about 1.7k 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 Polymarket and Kalshi. 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.
5 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.
Betting loads about 1.7k tokens when it runs, and up to ~2.4k if it reads all its reference files. Until then it costs about 193 tokens; SKILL.md has 685 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). 685 words, ~1,731 tokens.
.claude/skills/betting/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Before writing queries, consult references/api-reference.md for odds formats, command parameters, and key concepts.
sports-skills betting convert_odds --odds=-150 --from_format=american
sports-skills betting devig --odds=-150,+130 --format=american
sports-skills betting find_edge --fair_prob=0.58 --market_prob=0.52
sports-skills betting evaluate_bet --book_odds=-150,+130 --market_prob=0.52
sports-skills betting find_arbitrage --market_probs=0.48,0.49
sports-skills betting parlay_analysis --legs=0.58,0.62,0.55 --parlay_odds=600
sports-skills betting line_movement --open_odds=-140 --close_odds=-160Python SDK:
from sports_skills import betting
betting.convert_odds(odds=-150, from_format="american")
betting.devig(odds="-150,+130", format="american")
betting.find_edge(fair_prob=0.58, market_prob=0.52)
betting.find_arbitrage(market_probs="0.48,0.49")
betting.parlay_analysis(legs="0.58,0.62,0.55", parlay_odds=600)
betting.line_movement(open_odds=-140, close_odds=-160)CRITICAL: Before calling any analysis command, verify:
devig before computing edge vs prediction market prices.nba get_scoreboard): Home: -150, Away: +1300.52)devig --odds=-150,+130 --format=american → Fair: Home 57.9%, Away 42.1%find_edge --fair_prob=0.579 --market_prob=0.52 → Edge: 5.9%, EV: 11.3%evaluate_bet --book_odds=-150,+130 --market_prob=0.52find_arbitrage --market_probs=0.48,0.49 --labels=home,awayparlay_analysis --legs=0.58,0.55,0.50 --parlay_odds=600line_movement --open_odds=-140 --close_odds=-160Example 1: Edge check using ESPN and Polymarket prices User says: "Is there edge on the Lakers game? ESPN has them at -150 and Polymarket has them at 52 cents" Actions:
devig(odds="-150,+130", format="american") → fair home probability ~58%find_edge(fair_prob=0.58, market_prob=0.52) → edge ~6%, positive EVkelly_criterion(fair_prob=0.58, market_prob=0.52) → optimal bet fraction
Result: Present edge percentage, EV per dollar, and recommended bet size as % of bankrollExample 2: Arbitrage opportunity detection User says: "Can I arb this? Polymarket has home at 48 cents and Kalshi has away at 49 cents" Actions:
find_arbitrage(market_probs="0.48,0.49", labels="home,away")arbitrage_found in result
Result: If arbitrage: present allocation percentages and guaranteed ROI. If not: present overround and explain no guaranteed profitExample 3: Parlay evaluation User says: "Is this 3-leg parlay at +600 worth it?" Actions:
parlay_analysis(legs="0.58,0.62,0.55", parlay_odds=600)
Result: Present combined fair probability, edge, EV, +EV or -EV verdict, and Kelly fractionExample 4: Line movement interpretation User says: "The line moved from -140 to -160, what does that mean?" Actions:
line_movement(open_odds=-140, close_odds=-160)
Result: Present probability shift, direction, magnitude, and classification (sharp action, steam move, etc.)Example 5: De-vig a standard spread User says: "What are the true odds for this spread? Both sides are -110" Actions:
devig(odds="-110,-110", format="american")
Result: Present each side as 50% fair probability, vig is ~4.5%Example 6: Odds format conversion User says: "Convert -200 to implied probability" Actions:
convert_odds(odds=-200, from_format="american")
Result: Present 66.7% implied probability and 1.50 decimal oddsget_oddscalculate_evfind_edge or evaluate_bet instead.compare_marketsmarkets skill for cross-platform comparison.If a command is not listed in references/api-reference.md, it does not exist.
Error: ValueError: unknown format when calling convert_odds
Cause: The from_format parameter is not one of american, decimal, or probability
Solution: Use exactly american, decimal, or probability as the format string
Error: find_edge returns negative EV when a positive edge is expected
Cause: Fair probability and market probability may be reversed, or de-vigging was skipped
Solution: Run devig on sportsbook odds first, then pass the de-vigged fair_prob to find_edge
Error: find_arbitrage shows no arbitrage even when prices seem low
Cause: Prices may sum to more than 1.0 when all outcomes are correctly included
Solution: Verify you are using the correct probabilities for all outcomes; check total_implied in the result
Error: Kelly fraction is very high (greater than 0.5)
Cause: Edge estimate is very large — often from a miscalculated fair probability
Solution: Use half-Kelly or quarter-Kelly for conservative sizing. Re-verify fair probability via devig
© 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/betting of machina-sports/sports-skills.
Open the folder on GitHubat commit 09eb7e8
Betting 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 |
|---|---|---|---|---|---|---|
| Betting this skillmachina-sports/sports-skills | 243 | — | ~1.7k | 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
Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage detection, parlay analysis, and line movement. Betting is an agent skill from machina-sports/sports-skills. Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage detection, parlay analysis, and line movement.
Betting fits situations like: : user asks about bet sizing; kelly criterion; odds conversion; comparing odds across sources.
Run `npx skills add machina-sports/sports-skills --skill betting -a claude-code`. Or copy the skill folder (skills/betting in machina-sports/sports-skills) into .claude/skills/betting in your project. Claude Code loads it when a task matches its description.
Run `npx skills add machina-sports/sports-skills --skill betting -a codex`. Or copy the skill folder (skills/betting in machina-sports/sports-skills) into .agents/skills/betting 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 betting -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/betting, .gemini/skills/betting, .github/skills/betting and .opencode/skills/betting in your project.
SKILL.md names no scripts, command-line tools or credentials: Betting 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.
Betting is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.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 690 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Betting: 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.