Install
$ agentstack add skill-infersports-infersports-skill-infersports ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
InferSports odds & scores
Live Asian-priced football and basketball odds + scores, over the InferSports REST API. Read-only. Keyless (Free tier) — no setup. Output is CONCISE by default (one short line per item) to stay cheap on a small context window; add --detailed for full JSON only when you truly need it.
Scope: football and basketball only. InferSports carries no other sport. A question about any other sport (baseball, tennis, …) has no answer here — say so; it is not a cue to look elsewhere.
Per-match markets only. Every price is for ONE match (Asian handicap / totals / 1x2); there are no outright/futures markets (tournament winner, to-qualify) and no tournament structure (groups, brackets) — though a team's group-stage opponents fall out of a schedule range query (see the verb table).
Golden rule (determinism)
Answer by running the bundled scripts below. Never fetch a URL yourself, never guess an endpoint, never hand-build an API call, and never web-search for a score, line, or result — this skill is the source of truth for odds and scores. The scripts hold the correct fixed endpoints; you only pick the verb and pass arguments. Each prints a compact, ready-to-read line. If a script returns ambiguous or not found, that is the answer: surface the ask: / alternatives to the user, or re-run with --date / --sport / a more specific name — do not go looking elsewhere.
Report the numbers, never a pick (read-only)
InferSports is read-only and never recommends a bet — and neither do you when relaying it. Give the NUMBERS — line / score / odds / value — exactly as the script printed them; the sentence around them is yours, in the asker's language (next section). Do NOT add a pick of your own, a lean, "best play", "I'd take…", or any betting suggestion — even if the user asks "should I bet?" or "which bet?" For those, give the data and a plain "the call is yours." scan.sh, line.sh and compare.sh surface where a price beats the sharp de-vigged fair line — that detected edge is information (detection only), so relay it faithfully (numbers verbatim), but never turn it into advice or a recommended side.
Answer in the user's language
Relay results in the language the user asked in — the scripts always print English; you translate the prose around the numbers. Keep VERBATIM: evt_…/lg_… ids, all numbers (odds, lines, probabilities, edges, scores), bookmaker names, and dates/times as printed. Team/league names: use the established name in the user's language only when you are confident (World Cup → 世界杯, Mexico → México); when unsure (obscure clubs, youth sides), keep the English name as printed — never invent a transliteration. Script arguments stay English: translate the user's team/league names to English before passing them.
The twelve verbs
Run from this skill's directory. All read-only and safe to repeat. Several package several reads into one ready-to-read answer: preview.sh (one-match brief), digest.sh (today's highlights), scan.sh (today's value) and compare.sh (judge an external price) — the fan-out / de-vig happens for you; you get a capped, concise result.
| The user asks… | Run | |---|---| | What games are on today? | scripts/today.sh [--sport football\|basketball] [--status live\|scheduled\|finished] [--league "World Cup"] [--tz Asia/Shanghai] [--limit N] | | What's on a specific day? / this Friday / June 12 in my timezone — or a competition ("World Cup games today?") | scripts/events.sh --date YYYY-MM-DD [--to YYYY-MM-DD] [--tz Asia/Shanghai] [--sport football\|basketball] [--status live\|scheduled\|finished] [--league "World Cup"] [--limit N] | | A whole schedule window — "all group-stage matches", "Argentina's remaining fixtures" | scripts/events.sh --date YYYY-MM-DD --to YYYY-MM-DD --league "World Cup" — ONE call (range inclusive, ≤31 days); never loop day-by-day. For one team, run the range then keep its lines. | | What's worth watching today? / today's highlights | scripts/digest.sh [--sport football\|basketball] [--limit N(" [--tz Asia/Shanghai] | | Which team is stronger? / a quick one-line brief (pre-match: favored % + sharp line + kickoff; live: score + from-here % + the pre-match opening line) | scripts/preview.sh "" [--tz Asia/Shanghai] [--sport] [--date YYYY-MM-DD] | | What's the sharp line / handicap? | scripts/line.sh "" [--market asian_handicap\|1x2\|totals] [--format hk\|malay\|…] [--sport] [--date YYYY-MM-DD] | | What's the sharp fair (de-vigged) probability? / the reference to check a price against | scripts/fair.sh "" [--market 1x2\|asian_handicap\|totals] [--period] [--sport] [--date] | | What's the most likely score? / correct-score probabilities | scripts/scoreprob.sh "" [--top N(1-10)] [--sport] [--date YYYY-MM-DD] — market-implied scoreline distribution (football, one match) | | Is my Polymarket/Kalshi (external) price good? / is this prediction-market price fair? | scripts/compare.sh "" --prob [--outcome home\|draw\|away\|over\|under] [--market 1x2\|asian_handicap\|totals] [--label polymarket] | | Where's the value today? / today's edges | scripts/scan.sh [--sport football\|basketball] [--market 1x2\|asian_handicap\|totals] [--min-edge PCT] [--limit N] [--status live\|scheduled\|finished] | | Convert odds / explain a handicap | scripts/convert.sh · scripts/convert.sh --handicap -0.75 | | What was the score of a finished match? | scripts/result.sh "" [--date YYYY-MM-DD] · scripts/result.sh --id evt_… |
How to chain them (cheaply)
- Broad question ("what's on today?") →
today.sh; a specific day ("what's on June 12?",
"this Friday") → events.sh --date YYYY-MM-DD (add --tz so the day is your local day, not UTC); a multi-day window ("the whole group stage", "next week's fixtures") → add --to YYYY-MM-DD — one range call, never a per-day loop (tournament rounds cross UTC midnight, so a guessed loop drops fixtures). All return one line per match, capped, each starting with an evt_… id.
- Drill into ONE match →
match.sh(casual: score/favored) orline.sh(betting). Pass either the
team name or the evt_… id straight from today.sh — both work (the id is resolved for you). If a name is ambiguous (senior vs U21, two same-day fixtures), pin it with --date YYYY-MM-DD and/or --sport, or use the more specific name (e.g. "Estonia U21"). A date written into the query (e.g. "Estonia vs Lithuania 2026-06-07") is understood too.
today.shis capped (default 20, max 50) so a busy weekend never floods your context. If you
see "more exist", narrow with --sport/--status/--league, or jump straight to match.sh "". --league takes a competition NAME (fuzzy — --league "World Cup" just works) or an lg_… id; an ambiguous name errors back with the candidate ids.
"Which team is stronger?" — strength from the odds
For the watcher who wants a strength reference (casual, not a pick):
- Before kickoff →
preview.sh "": the favored side + de-vigged win % + the Asian
handicap. Read the AH line as plain language: 0 = evenly matched; ±0.25 a slight edge; −0.5/−0.75 favored; −1 about a goal better; −1.5/−2 dominant; −2.5+ a class apart.
- LIVE → in-play prices answer "who wins FROM HERE given the score and clock", NOT who is the
stronger team (a 0-0 deep in the second half makes the draw the "favorite"). preview.sh on a live match therefore swaps the live line for pre-match: opened -N — the opening line, the strength reference from before kickoff. Answer with both: strength (the opening line, read on the scale above) and the current situation (score + from-here %). Near full time books pull the 1x2, so the from-here segment may be absent — the opening line still answers strength.
- The whole day at a glance →
digest.sh— each line already carries the favored team + win %.
Strength is information, not advice — the no-pick rule above still applies.
Examples
scripts/match.sh "Brazil vs Argentina" --tz America/Sao_Paulo
# → Brazil vs Argentina — LIVE 1h 12 1-0.
# favorite: Brazil (61.4%)
scripts/line.sh "Man City vs Arsenal" --format hk
# → Man City vs Arsenal — consensus AH home -0.5; best home 1.08 …; fair 1.99/2.01.
scripts/convert.sh 2.08 decimal hk,malay,american,probability
# → decimal=2.08 hk=1.08 malay=-0.93 american=108 probability=0.4808
scripts/digest.sh --sport football --limit 5
# → Worth watching today (2026-06-08) — top 5 of 75
# evt_… | A v B | LIVE 1-0 1h 36 | 5 books · value
# evt_… | C v D | 13:00 UTC | 7 books
scripts/preview.sh "France vs Argentina" --tz Europe/Paris
# → France vs Argentina — France favored (84.0%) · AH -2.25 · kicks off 21:10 Europe/Paris
scripts/preview.sh "SJK Seinajoki vs Inter Turku" # live → strength comes from the OPENING line
# → SJK Seinajoki vs Inter Turku — LIVE 1-1 ht · from here: draw 38.8% · pre-match: Inter Turku opened -0.5
scripts/scan.sh --sport football --market asian_handicap --min-edge 1 --limit 5
# → Value scan 2026-06-08 — 5 shown (scanned 76)
# evt_… | A v B | sbobet AH -1 home @2.14 | fair 2.08 | +2.9% | scheduled
# Detection only — the edge is information, not a pick.
scripts/compare.sh "France vs Argentina" --prob 0.52 --outcome home --label polymarket
# → France v Argentina — 1x2 home: sharp fair 55.6% vs polymarket 52.0% → +3.6pp (ROI +6.9%) · GOOD · de-vig pinnacle/power
# ⚠ 1x2 fair = regulation 90-min … (caveats) ; Detection only — the call is yours.
# (You pre-net the prediction-market price for its fee/spread; we never ingest that data.)
scripts/fair.sh "France vs Argentina"
# → France v Argentina — sharp fair (1x2): home 55.6% / draw 28.2% / away 22.5% · de-vig pinnacle
scripts/today.sh --status live --sport football --limit 15
scripts/result.sh "Myanmar" --date 2026-06-06
scripts/events.sh --date 2026-06-12 --tz Asia/Shanghai --sport football
scripts/today.sh --league "World Cup" # a competition by name — World Cup fixtures today
# → Events 2026-06-12 (Asia/Shanghai) — 2 shown
# evt_… | Mexico vs South Africa — Kicks off 03:00 Asia/Shanghai on Jun 12.
# evt_… | Korea Republic vs Czechia — Kicks off 10:00 Asia/Shanghai on Jun 12.
Reading the output
ask: …with a fewevt_… | Home vs Awaylines = the fixture was ambiguous. Put the question
to the user (or use their hint) and re-run with the chosen team / --date / --sport. Do not guess, and do not web-search instead.
ERROR: …thenFIX: …= do exactly what FIX says; it is the repair step.not found= the match isn't live/scheduled, isn't in the 30-day results cache, **or the sport
isn't covered (football + basketball only — baseball/tennis/etc. return not found). Treat it as a final answer: say plainly it isn't in InferSports (you may suggest today.sh for football/basketball). Do not** web-search it or quote odds from another source — this skill speaks only for InferSports.
What this skill does NOT do
It wraps the highest-frequency reads plus two packaged scans (preview.sh, scan.sh). For arbitrage detection, opening-line (初盘) movement, full per-book breakdowns, or the bookmaker catalogue, see [references/full-api.md](references/full-api.md) — the full REST docs and the 16-tool MCP server. (scan.sh already gives today's value top-N; the full API adds per-book depth and arb.) InferSports is informational and read-only — it never places, recommends, or sizes a bet.
Config (all optional)
INFERSPORTS_API_KEY— anisk_…key to raise rate limits / unlock the sharp book. Default keyless = Free tier (enough for these verbs).INFERSPORTS_API_BASE— override the API host (defaulthttps://api.infersports.dev).INFERSPORTS_MOCK=1— answer from bundledfixtures/instead of the network (offline, deterministic; for testing the skill).
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: infersports
- Source: infersports/infersports-skill
- License: MIT
- Homepage: https://infersports.dev
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.