get_average_strain is the only tool that works anything out; the rest hand back what the Whoop API returns for a date range, for the latest cycle, or for the profile, so week-over-week comparisons and trends are the model's job rather than the server's. Two things to weigh before installing: it authenticates with a Whoop email and password rather than an OAuth grant, and there is no workout tool — the project describes itself as covering workout data, but the documented tools stop at cycles, recovery and strain.
A server over the Whoop API with seven tools: cycles, recovery and strain for a start and end date, the most recent cycle on its own, an average strain over a number of days, the user profile, and an authentication check.
- get_cycle_collection returns cycle data for a start and end date; get_latest_cycle returns the most recent cycle on its own
- get_recovery_data and get_strain_data take the same start and end date and return recovery and strain for that range
- get_average_strain averages strain over a number of days — 7 unless you pass a different number
- get_profile returns the user profile; check_auth_status reports whether the server is still authenticated against the Whoop API
- Dates go in as ISO format, YYYY-MM-DD
- A second server in the same project exposes the same functionality over HTTP endpoints, started with run_whoop_server.sh
- Errors come back as readable messages for the usual causes: invalid date formats, API authentication errors, network problems, and missing or invalid credentials
Whoop credentials. The server authenticates to the Whoop API with an email and password, handed to the process as WHOOP_EMAIL and WHOOP_PASSWORD.
