Whoop Connect

v0.5.0

Connect WHOOP wearable to OpenClaw — fetch and store recovery, sleep, HRV, strain, and workout data locally. Use when: user asks about recovery, sleep qualit...

1· 116·0 current·0 all-time
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description, required binaries (python3), required env vars (WHOOP_CLIENT_ID, WHOOP_CLIENT_SECRET), and the listed commands map directly to the included Python scripts that call the WHOOP developer API and persist data to ~/.whoop/whoop.db. No unrelated credentials, binaries, or behavior are requested.
Instruction Scope
SKILL.md instructs only on creating a WHOOP developer app, setting the two OAuth env vars, running the included setup/install scripts, starting optional auto-sync/webhook services, and reading/writing files under ~/.whoop. The instructions do not request unrelated system data or external endpoints beyond WHOOP developer URLs and the optional webhook hosting domain that the user must provide.
Install Mechanism
Install is a local shell script that creates a Python venv and pip-installs well-known packages (requests, flask). No downloads from arbitrary hosts, no extracted archives, and no third-party registries beyond PyPI usage via pip. The installer creates a small wrapper script to invoke the venv python and a ~/.whoop directory with restricted permissions.
Credentials
The skill requires only WHOOP_CLIENT_ID and WHOOP_CLIENT_SECRET, which is appropriate for OAuth. However, operational examples (systemd unit in the setup guide) put the client secret in unit Environment lines; those files and process environment can expose secrets if not handled carefully. The skill warns not to print secrets, but users should consider secure storage and file permissions.
Persistence & Privilege
always is false, the skill does not request permanent platform-wide inclusion, and it doesn't modify other skills. It persists data only under ~/.whoop and creates a virtualenv under the skill directory; this is consistent with its purpose. Running optional daemons or webhooks requires normal user/system service privileges but is user-initiated.
Assessment
This skill appears coherent with its stated purpose, but consider these before installing: - Secrets: WHOOP_CLIENT_SECRET is required. Avoid embedding it into world-readable files. The example systemd unit shows the secret in Environment lines — that can make the secret visible to other local users and in some system tools. Prefer a protected environment file (root-owned, 0600) or a secrets manager, and ensure unit files have restricted permissions. - Local storage: The skill stores tokens and data under ~/.whoop (whoop.db and config.json). Back up or delete these files if you later revoke access. The code includes safeguards (e.g., not to print secrets) but review logs and your systemd service configuration to avoid verbose secret logging. - Network exposure: Enabling webhooks requires hosting a public HTTPS endpoint and configuring WHOOP to call it — that increases your network exposure. Only enable webhooks if you understand and control the hosting domain/reverse proxy and TLS setup. - Auto-sync frequency and rate limits: Default polling is every 5 minutes (or 20 minutes when webhook healthy) with an estimated per-day API-call heuristic and a default daily_api_limit of 10,000. If you run frequent polling or multiple instances, you may hit WHOOP rate limits; adjust sync_interval/daily_api_limit accordingly. - Review code if concerned: The repository is self-contained and uses common libraries. If you want higher assurance, inspect whoop_client.py (token handling, refresh behavior), webhook_server.py (what it logs/returns), and install.sh. The install uses a local venv and pip; no remote arbitrary code downloads are used beyond PyPI packages. If you accept these operational considerations and secure the client secret appropriately, the skill's requests and behavior are proportionate to its functionality.

Like a lobster shell, security has layers — review code before you run it.

latestvk977f2ta67bhwx6dnqqksnsf458387nt

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

💚 Clawdis
Binspython3
EnvWHOOP_CLIENT_ID, WHOOP_CLIENT_SECRET
Primary envWHOOP_CLIENT_ID

Install

uvuv tool install requests flask

Comments