Repository navigation
Kai v2.0.0
The Garmin skill moves to garminconnect 0.3.x and gets safer login. This is a breaking release for Garmin users: read Upgrading from v1.x. TrainingPeaks, Strava and Kai's instructions are unchanged.
Breaking changes
- Python 3.12 or newer for the Garmin skill (was 3.10). On older systems use
uv venv --python 3.12; the README shows how. garminconnect0.3.x (was pinned to 0.2.38). A plainpip install garminconnectno longer breaks the skill, and the dependency on the retiredgarthlogin is gone.- You must log in to Garmin once more. Tokens saved by v1.x are in a different format and can't be reused.
garmin_auth.py statusrecognises them and tells you. garmin_auth.py login --passwordis removed, and apasswordinconfig.jsonis ignored with a warning. Use the prompt,--password-stdinorGARMIN_PASSWORD.- Anything of yours that calls the Garmin scripts must use the project's
.venv/bin/python3, not the system Python.
What's new
- Password prompt (#6):
loginasks for your password and any MFA code on the terminal (hidden input). The password is never stored; only session tokens are kept (garmin_tokens.json,600in a700folder). - No terminal, no hang: in an agent's shell,
loginstops with "run this yourself" instead of waiting or asking for the password in chat.AGENTS.mdnow tells Kai never to ask for it. - Port to 0.3.x (#5): verified against a live account. All 34 script cases give the same output structure as on 0.2.38 (32 byte-identical; the other two differ by 1 ms in timestamps and by data that changed during the day).
GARMIN_TOKEN_DIRkeeps tokens somewhere else.- Offline tests for the login code (
.venv/bin/python3 -m unittest discover -s tests), and a rewritteninstall.sh. - README: upgrade guide, requirements table,
uvinstructions and a privacy note on passwords.
Known issues
- FIT downloads are saved as a ZIP, so
analyze/parseon them fails (#15). This also happens on v1.x. GPX downloads work. - The Hermes Agent and Codex setups are still untested against live installs.
- Skill symlinks need Linux or macOS (or WSL).
- TrainingPeaks (cookie auth) and Garmin (community library) use unofficial interfaces and can break or be rate-limited.
Full changelog: v1.1.0...v2.0.0