--- title: STRIDE — Local AI Running Coach emoji: 🏃 colorFrom: red colorTo: gray sdk: gradio sdk_version: 6.16.0 app_file: app.py python_version: "3.11" pinned: false short_description: AI running coach for your Strava data, with attitude. --- # 🏃 STRIDE — Local AI Running Coach Turn your running history into a personality-driven coaching report and chat. - **Deterministic engine** (Python) computes the metrics — weekly mileage, pace trends, ACWR training load, and signals — so the numbers are always correct. - **LLM coach** (served via Modal + vLLM) only *interprets* those numbers in a chosen persona; it never does the arithmetic or invents data. - **Gradio UI** with demo athletes, a stock-ticker mileage chart, and a chat to ask the coach follow-up questions. ## Configuration (Space secrets) Set these under **Settings → Variables and secrets**: | Secret | Purpose | |---|---| | `LLM_BASE_URL` | Modal vLLM endpoint, including `/v1` | | `LLM_MODEL` | model name the endpoint serves (must match exactly) | | `LLM_API_KEY` | shared key for the secured endpoint | | `STRAVA_CLIENT_ID` / `STRAVA_CLIENT_SECRET` / `STRAVA_REFRESH_TOKEN` | optional: default account for the "use my data" path | Demo data needs no secrets — only the four `LLM_*` values are required for the coach to respond. ## Run locally ```bash uv run python app.py ```