kalshi — скилл для Claude Code: рынки предсказаний Kalshi
Скилл даёт агенту доступ к рынкам предсказаний Kalshi: события, серии, контракты, сделки и свечи по спортивным исходам. Пригодится, когда нужны цены-вероятности, а не результаты матчей.
npx skills add machina-sports/sports-skills --skill kalshi -a claude-codeЧто делает kalshi
Скилл оборачивает публичный API биржи Kalshi, которую регулирует CFTC. Чтение работает без авторизации, ключ не нужен. Внутри — команды search_markets, get_todays_events, get_markets, get_event, get_market, get_trades, get_market_candlesticks и get_sports_config, плюс get_esports_odds для cs2, lol и dota2. Есть CLI sports-skills kalshi и Python SDK from sports_skills import kalshi.
Цены здесь — вероятности на шкале 0-100: last_price 20 значит 20% на исход. Это не американские коэффициенты, и путать их не стоит. Покрытие — футбол (EPL, UCL, La Liga, Bundesliga, Serie A, Ligue 1, MLS, чемпионат мира), баскетбол, бейсбол, теннис, NFL, хоккей, F1 и киберспорт. На Kalshi «Football» означает NFL, поэтому для европейского футбола нужны коды epl, ucl, laliga.
Перед запросами скилл советует открыть references/api-reference.md — там коды видов спорта, тикеры серий и параметры команд. Параметр sport обязателен для search_markets и get_todays_events: без него поиск вернёт только крупные фьючерсы и пропустит рынки отдельных матчей. Для списка открытых контрактов передавайте status="open", иначе в выдачу попадут уже рассчитанные рынки. Тикеры не всегда собираются как <event_ticker>-<suffix> — группируйте рынки по полю event_ticker, а не разбором строки.
Какие задачи решает
- найти открытые рынки Kalshi по конкретному виду спорта
- посмотреть цены-вероятности на исход матча EPL или NBA
- собрать историю OHLC по тикеру рынка
- отсортировать фьючерсы на победителя турнира по вероятности
- выгрузить недавние сделки по контракту
Примеры запросов агенту
- Какие рынки NBA открыты на Kalshi?
- Покажи цены на Leeds в EPL на Kalshi
- Кто фаворит на победу в Лиге чемпионов по рынкам Kalshi?
Как установить kalshi
1Через Skills CLI (Vercel)
npx skills add machina-sports/sports-skills --skill kalshi -a claude-code2Вручную: положить файлы
~/.claude/skills/kalshi/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/kalshi/
1Через Skills CLI (Vercel)
npx skills add machina-sports/sports-skills --skill kalshi -a codex2Вручную: положить файлы
.agents/skills/kalshi/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add machina-sports/sports-skills --skill kalshi -a cursor2Вручную: положить файлы
.cursor/skills/kalshi/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install machina-sports/sports-skills kalshi2Вручную: положить файлы
.github/skills/kalshi/SKILL.md1Через Skills CLI (Vercel)
npx skills add machina-sports/sports-skills --skill kalshi -a gemini-cli2Командой платформы
gemini skills install https://github.com/machina-sports/sports-skills --path skills/kalshiВручную: положить файлы
.devin/skills/kalshi/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add machina-sports/sports-skills --skill kalshi -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора22
Похожие
Рядом в теме «Финансы и бизнес»
Всё по теме «Финансы и бизнес» →Вопросы о kalshi
Как установить kalshi в Claude?
Выполните npx skills add machina-sports/sports-skills --skill kalshi -a claude-code. Скилл встанет в ~/.claude/skills/kalshi/SKILL.md.
Что делает скилл kalshi?
Тянет данные рынков предсказаний Kalshi: события, серии, контракты, сделки и свечи. Цены приходят как вероятности на шкале 0-100, авторизация для чтения не нужна.
Чем kalshi отличается от polymarket?
Интерфейс общий: search_markets(sport=...), get_todays_events(sport=...) и get_sports_config() работают одинаково. У Kalshi шкала цен 0-100, у Polymarket 0-1, и покрытие спорта у Polymarket шире.
Исходный текст
SKILL.md · MIT
--- name: kalshi description: | Kalshi prediction markets — events, series, markets, trades, and candlestick data. Public API, no auth required for reads. US-regulated exchange (CFTC). Covers football (EPL, UCL, La Liga), basketball, baseball, tennis, NFL, hockey event contracts. Use when: user asks about Kalshi-specific markets, event contracts, CFTC-regulated prediction markets, or candlestick/OHLC price history on sports outcomes. Don't use when: user asks about actual match results, scores, or statistics — use the sport-specific skill: football-data (soccer), nfl-data (NFL), nba-data (NBA), wnba-data (WNBA), nhl-data (NHL), mlb-data (MLB), tennis-data (tennis), golf-data (golf), cricket-data (cricket), cfb-data (college football), cbb-data (college basketball), or fastf1 (F1). Don't use for general "who will win" questions unless Kalshi is specifically mentioned — try polymarket first (broader sports coverage). Don't use for news — use sports-news instead. license: MIT metadata: author: machina-sports version: "0.2.0" --- # Kalshi — Prediction Markets Before writing queries, consult `references/api-reference.md` for sport codes, series tickers, and command parameters. ## Quick Start Prefer the CLI — it avoids Python import path issues: ```bash sports-skills kalshi search_markets --sport=nba sports-skills kalshi get_todays_events --sport=nba sports-skills kalshi get_sports_config sports-skills kalshi get_markets --series_ticker=KXNBA --status=open ``` Python SDK (alternative): ```python from sports_skills import kalshi kalshi.search_markets(sport='nba') kalshi.search_markets(sport='nba', query='Lakers') kalshi.get_todays_events(sport='nba') kalshi.get_sports_config() kalshi.get_markets(series_ticker="KXNBA", status="open") ``` ## CRITICAL: Before Any Query CRITICAL: Before calling any market endpoint, verify: - The `sport` parameter is always passed to `search_markets` and `get_todays_events` for single-game markets. - Prices are on a 0-100 integer scale (20 = 20% implied probability) — do not treat as American odds. - `status="open"` is used when querying markets to exclude settled/closed markets. Without the `sport` parameter: ``` WRONG: search_markets(query="Leeds") → 0 results RIGHT: search_markets(sport='epl', query='Leeds') → returns all Leeds markets ``` ## Important Notes - **On Kalshi, "Football" = NFL.** For football/soccer (EPL, La Liga, etc.), use sport codes: `epl`, `ucl`, `laliga`, `bundesliga`, `seriea`, `ligue1`, `mls`, `worldcup`. - **Formula 1** uses sport code `f1` (drivers'/constructors' champion plus per-Grand-Prix race, podium, pole, fastest-lap, head-to-head and sprint series). - **Market tickers are not always `<event_ticker>-<suffix>`.** Kalshi mints some with a different stem, e.g. `KXATP-26-SHA` sits inside event `KXATP-26USO` (2026 US Open men's singles) next to `KXATP-26USO-SIN`. That is Kalshi's real ticker: pass it verbatim to `get_market`, and group markets by their `event_ticker` field, never by parsing the ticker. - **Prices are probabilities.** A `last_price` of 20 means 20% implied probability. Scale is 0-100 (not 0-1 like Polymarket). - **Always use `status="open"`** when querying markets, otherwise results include settled/closed markets. - **Shared interface with Polymarket:** `search_markets(sport=...)`, `get_todays_events(sport=...)`, and `get_sports_config()` work the same way on both platforms. ## Workflows ### Sport Market Search (Recommended) 1. `search_markets --sport=nba` — finds all open NBA markets. 2. Optionally add `--query="Lakers"` to filter by keyword. 3. Results include yes_bid, no_bid, volume for each market. ### Today's Events 1. `get_todays_events --sport=nba` — open events with nested markets. 2. Present events with prices (price = implied probability, 0-100 scale). ### Futures Market Check 1. `get_markets --series_ticker=<ticker> --status=open` 2. Sort by `last_price` descending. 3. Present top contenders with probability and volume. ### Market Price History 1. Get market ticker from `search_markets --sport=nba`. 2. `get_market_candlesticks --series_ticker=<s> --ticker=<t> --start_ts=<start> --end_ts=<end> --period_interval=60` 3. Present OHLC with volume. ## Commands See `references/api-reference.md` for the full command list with parameters. | Command | Description | |---|---| | `get_sports_config` | Available sport codes and series tickers | | `get_todays_events` | Today's events for a sport with nested markets | | `search_markets` | Find markets by sport and/or keyword | | `get_esports_odds` | Esports markets (cs2/lol/dota2): prices in cents (0-100) plus `implied_probability` (0-1) and `decimal_odds` | | `get_markets` | Market listing (raw API) | | `get_event` | Event details | | `get_market` | Market details | | `get_trades` | Recent trades | | `get_market_candlesticks` | OHLC price history | ## Examples Example 1: NBA market search User says: "What NBA markets are on Kalshi?" Actions: 1. Call `search_markets(sport='nba')` Result: All open NBA markets with yes/no prices and volume Example 2: EPL game markets User says: "Show me Leeds vs Man City odds on Kalshi" Actions: 1. Call `search_markets(sport='epl', query='Leeds')` Result: Leeds EPL markets across all EPL series with prices and volume Example 3: Today's EPL events User says: "What EPL games are available on Kalshi?" Actions: 1. Call `get_todays_events(sport='epl')` Result: Today's EPL events with nested markets Example 4: Champions League futures User says: "Who will win the Champions League?" Actions: 1. Call `search_markets(sport='ucl')` or `get_markets(series_ticker="KXUCL", status="open")` 2. Sort by `last_price` descending (price = implied probability) Result: Top UCL contenders with `yes_sub_title`, `last_price` (%), and volume Example 5: Market price history User says: "Show me the price history for this NBA game" Actions: 1. Get market ticker from `search_markets(sport='nba')` 2. Call `get_market_candlesticks(series_ticker="KXNBA", ticker="...", start_ts=..., end_ts=..., period_interval=60)` Result: OHLC price data with volume ## Commands that DO NOT exist — never call these - ~~`get_odds`~~ — does not exist. Use `search_markets` or `get_markets` to find market prices. - ~~`get_team_schedule`~~ — does not exist. Kalshi has markets, not schedules. Use the sport-specific skill for schedules. - ~~`get_scores`~~ / ~~`get_results`~~ — does not exist. Kalshi is a prediction market. Use the sport-specific skill. If a command is not listed in `references/api-reference.md`, it does not exist. ## Troubleshooting Error: `search_markets` returns 0 results Cause: The `sport` parameter is missing — without it, search only returns high-volume futures and misses single-game markets Solution: Always pass `sport='<code>'` to `search_markets`. Check `references/api-reference.md` for valid sport codes Error: Markets returned include settled/expired contracts Cause: `status` parameter is not set Solution: Always pass `status="open"` to filter to open markets only Error: Series ticker returns no results Cause: The series ticker may be incorrect or have no open markets Solution: Call `get_series_list()` to discover available tickers, or check `references/series-tickers.md` Error: Football/soccer markets not found when searching "Football" Cause: On Kalshi, "Football" refers to NFL — soccer uses league-specific codes Solution: Use `sport='epl'`, `sport='ucl'`, `sport='laliga'`, etc. for soccer leagues
© machina-sports · MIT · machina-sports/sports-skills