BikeControl (SwiftControl)
Use Zwift Click, Zwift Play, Shimano Di2, or any Bluetooth controller with MyWhoosh, Rouvy, Zwift, and more. Free to try on iOS, Android, Windows, and macOS.
live updating kalshi props for NBA
Translation pending
Sports & fitnessPython · HTMLGitHub @horsebot9000OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Self-updating dashboard of every open Kalshi NBA player prop: bid, ask, spread, top-of-book size, order book depth near mid, volume, intraday movement, and a prop-implied DraftKings projection for each player. Runs on GitHub Actions every 15 minutes and publishes to GitHub Pages. No server, no API keys, no manual steps after setup.
main.https://<user>.github.io/<repo>/.The schedule takes over from there.
.github/workflows/update.yml fires at :04, :19, :34 and :49, from 7am to midnight ET.
scripts/pull.py, which uses only the Python standard library. It:
archive/YYYY-MM-DD.json, committed to the repo. That file holds the open and close mids for every market and the final pregame projections. The dashboard date menu lists live dates and archived finals.data/history/ on the Pages site. Each run reads the previous history from the live site, appends, and redeploys, so the repo does not grow every 15 minutes. Only one small archive commit lands per game day.The page refetches data every 5 minutes on its own.
Name,Minutes columns into minutes/ (date in the filename, for example minutes/2026-10-27.csv) to override projected minutes. Overrides change only the rate-filled stats; market-priced stats stay as the market has them.thin means no points rung between 15% and 85% has a spread of 6¢ or less.DraftKings salaries come from DK's public lobby and draftables endpoints, using the classic slate with the most games for each date. Those endpoints are undocumented and could change.
If the DK pull fails, the dashboard still works. Salary and value columns go blank and the error shows at the top of the page.
To override by hand, drop a DK salary export into salaries/ with the date in the filename, for example salaries/DKSalaries_2026-10-27.csv. Manual files take priority over the automatic pull.
SITE_URL to the site's URL so the job can read back its own history.python scripts/pull.py --out site, then serve site/ with index.html copied in.index.html dashboard (single file, no dependencies)
scripts/pull.py puller + model (stdlib only)
.github/workflows/update.yml schedule, archive commit, Pages deploy
archive/ one JSON per finished slate (committed by the workflow)
salaries/ optional manual DK salary CSVs
minutes/ optional manual minutes CSVs (Name,Minutes)