A CLI + training methodology for wiring up your Garmin and Strava data and using it to train for — and actually finish — an ultramarathon.
This is two things in one repo:
- A methodology (
methodology/) — the training system: how to fuel, how to train your gut to absorb carbs, trail technique, and how to not trust broken sensor data. This is the part that gets you to the finish line. - A toolkit (
src/fitness_sdk/) — a small Python CLI that pulls your own Garmin/Strava data so you can look at real splits, elevation, and recovery instead of a vendor dashboard.
You bring your own accounts and API keys. Nothing here phones home; your data and credentials stay on your machine.
git clone https://github.com/<you>/fitness-sdk && cd fitness-sdk
python -m venv .venv && source .venv/bin/activate
pip install -e .
cp .env.example .env # then fill in your own Garmin/Strava creds
chmod 600 .env
fitness-sdk garmin snapshot # today's recovery/wellness
fitness-sdk garmin activities -n 5 # recent activitiesFull setup: docs/quickstart.md,
docs/setup-garmin.md,
docs/setup-strava.md.
- Copy
templates/athlete-profile.template.md→ fill in your numbers (age, paces, zones, goal race). - Copy
templates/training-plan.template.md→ lay out your build. - Read
methodology/— especiallyfueling.mdandgut-training.md. Under-fueling, not fitness, is the #1 reason first ultras fall apart. - See
examples/build-to-a-50k/for a worked example.
- Credentials live in
.env(gitignored). Token caches and any health database are gitignored too — see.gitignore. - The tools only ever read your accounts with your keys.
v0.1 — early. The methodology is battle-tested by one runner training for a
mountain 50K; the tooling is a thin, honest wrapper over
garminconnect and
stravalib. PRs and field reports welcome.
MIT licensed.