Install
openclaw skills install @andreasnlarsen/whoop-cliUse when operating the installed whoop CLI for agent-friendly WHOOP access, cross-platform secret storage checks, daily briefs, summaries, health flags, activity trends, exports, or installing the bundled WHOOP agent skill into ~/.agents, Codex, OpenClaw, or another agent skill directory.
openclaw skills install @andreasnlarsen/whoop-cliUse the installed whoop command.
local-vps storage with --accept-local-vps-risk.~/.whoop-cli/profiles/<profile>.json stores non-secret metadata only./usr/bin/swift; do not replace this with command-line secret arguments./usr/bin/swift is unavailable, tell the user to install Apple Command Line Tools with xcode-select --install.whoop command with normal user permissions; do not use secret-bearing command-line arguments as a fallback.whoop; the CLI should write Keychain items non-interactively.onepassword or explicit local-vps.local-vps setup, the expected Telegram handoff is the short-lived WHOOP auth URL and redirected callback URL.summary, day-brief, health, trend, and sync pull.whoop auth login unless the user explicitly asks for login help.If whoop is missing:
npm install -g @andreasnlarsen/whoop-cli@0.5.2
Install this bundled skill for local Codex/agent use:
whoop skill install --target agents --force
That writes ~/.agents/skills/whoop-cli/SKILL.md and links it into ~/.codex/skills/whoop-cli.
Install for OpenClaw when needed:
whoop skill install --target openclaw --force
Install to another skill directory:
whoop skill install --target path --skill-dir /path/to/skills/whoop-cli --force
whoop auth status --jsonwhoop auth loginwhoop auth login --secret-storage onepassword --op-vault ... --op-item ...whoop auth login --secret-storage local-vps --accept-local-vps-riskwhoop summary --json --prettywhoop day-brief --json --prettywhoop summary --json --prettywhoop day-brief --json --prettywhoop strain-plan --json --prettywhoop health flags --days 7 --json --prettywhoop activity list --days 30 --json --prettywhoop activity trend --days 30 --json --prettywhoop activity types --days 30 --json --prettywhoop activity trend --days 30 --labeled-only --json --prettywhoop sync pull --start YYYY-MM-DD --end YYYY-MM-DD --out ./whoop.jsonl --json --prettyactivity rows, often sport_id=-1, are auto-detected and may be unlabeled movement such as housework or incidental activity, not intentional training.activity as confirmed training volume by default.--labeled-only and report total versus filtered counts.whoop activity list --json--labeled-only, --generic-only, --sport-id, --sport-name.jq is available, filter shell-side from raw JSON:whoop activity list --days 30 --json | jq '.data.records | map(select(.sport_id != -1))'
~/.whoop-cli/experiments.json only.whoop experiment plan --name ... --behavior ... --start-date YYYY-MM-DD [--end-date YYYY-MM-DD] --description ... --why ... --hypothesis ... --success-criteria ... --protocol ... --json --prettywhoop experiment context --id ... [--description ... --why ... --hypothesis ... --success-criteria ... --protocol ...] --json --prettywhoop experiment status [--status planned|running|completed] [--id ...] --json --prettywhoop experiment report --id ... --json --pretty--profile only.--all-profiles only when cross-profile visibility is explicitly needed.sourceOfTruth; experimentsFile is kept as compatibility alias.local-vps as a deliberate lower-security mode: it prevents accidental repo/chat/log exposure but not VPS compromise.