whoop-cli について
whoop-cliはWHOOPの健康データを取得するコマンドラインツールです。端末やスクリプトで指標を扱うユーザーやエージェント向けに、日次スナップショット、期間指定検索、JSON出力を提供します。
主な機能
- 01WHOOPの健康スナップショット
- 02睡眠、回復、ワークアウト、サイクル、プロフィール、身体データ
- 03複数データ種別と期間の検索
- 04複数日の傾向と健康インサイト
- 05JSONまたは対話型テキスト出力
- 06OAuthログインとトークン更新
活用シーン
- 01エージェント向けに日次健康スナップショットを取得
- 02WHOOP指標をJSONでスクリプトに渡す
- 03数日間の健康傾向を確認
- 04自動検索の前に認証状態を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ tomasward1/ whoop-cli --skill whoop-cliインストール後、Claude Code で/whoop-cliを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
eslint.config.js.gitignoreLICENSE.env.exampleREADME.mdpackage.jsonpackage-lock.json.github/dependabot.yml.github/workflows/ci.ymlpublish.ymlenforce-staging.ymlpromote.ymlexamples/monitor/whoop-refresh-monitor.shexamples/monitor/cron/README-cron.txtexamples/monitor/systemd/whoop-cli-monitor.servicewhoop-cli-monitor.timersrc/index.tssrc/api/client.tsendpoints.tssrc/api/__tests__/client.test.tssrc/auth/keepalive.tsconfig.tsserver.tsoauth.tstokens.tssrc/auth/__tests__/config.test.tskeepalive.test.tsoauth.test.tstokens.test.tssrc/utils/__tests__/errors.test.ts詳細
whoop-cli
WHOOP の健康データ用 CLI です。パイプに渡すとすべてのコマンドが JSON を出力し、対話モードでは整形されたテキストを出力します。
コマンドとして whoop と whoop-cli のどちらも使用できます。
インストール
npm install -g @tomasward/whoop-cli
Node.js 22 以降が必要です。
認証
最初に一度、人間が OAuth を完了する必要があります(ブラウザーが必要です)。その後、トークンは自動的に更新されます。
whoop auth login # Opens browser for OAuth
whoop auth status # Check auth (exit code 2 = not authenticated)
whoop auth refresh # Force token refresh
whoop auth logout # Clear tokens
whoop auth keepalive # Install cron for auto-refresh (every 45 min)
初回セットアップ
初回ログイン時に、CLI から WHOOP API の認証情報を求められます。
- https://developer.whoop.com にアクセスします
- アプリケーションを作成します(ユーザー数が 10 人未満のアプリは審査不要です)
- リダイレクト URI に
http://localhost:8787/callbackを設定します - 求められたらクライアント ID とクライアントシークレットを入力します
認証情報は ~/.whoop-cli/config.json に保存されます。環境変数 WHOOP_CLIENT_ID と WHOOP_CLIENT_SECRET を設定すると、設定ファイルの値が上書きされます。
ヘッドレス環境でのセットアップ(サーバー/CI)
mkdir -p ~/.whoop-cli && chmod 700 ~/.whoop-cli
cat > ~/.whoop-cli/config.json << 'EOF'
{"client_id":"<id>","client_secret":"<secret>","redirect_uri":"http://localhost:8787/callback"}
EOF
chmod 600 ~/.whoop-cli/config.json
whoop auth login # Shows URL — open on any machine, paste callback back
whoop auth keepalive # Keep tokens fresh automatically
エージェント向けクイックスタート
# Single-call health snapshot (flat JSON)
whoop check
# → {"ok":true,"checked_at":"...","recovery_score":72,"hrv_rmssd_milli":45.2,"sleep_hours":7.1,"strain":8.3}
# Auth pre-flight
whoop auth status
echo $? # 0 = ok, 2 = needs login
コマンド
check — 1 回の呼び出しで健康状態をスナップショット表示
whoop check # today's metrics
whoop check --date 2026-03-01 # specific date
戻り値:{ok, checked_at, date, recovery_score, hrv_rmssd_milli, resting_heart_rate, sleep_performance, sleep_hours, sleep_efficiency, strain, calories, workout_count}
summary — 1 行で状態を表示
whoop summary # JSON when piped, text when interactive
whoop summary --color # color-coded with status indicators
whoop summary --format json # force JSON
データコマンド — 睡眠、回復、ワークアウト、サイクル、プロフィール、身体データ
whoop recovery # today
whoop sleep --date 2026-03-01 # specific date
whoop workout -s 2026-01-01 -e 2026-03-01 -a # date range, all pages
whoop cycle --format json # force JSON
multi — 1 回の呼び出しで複数のデータ種別を取得
whoop multi --sleep --recovery --workout # today
whoop multi --sleep --recovery -s 2026-01-01 -e 2026-03-01 -a # date range
trends — 複数日にわたる分析
whoop trends # 7-day trends
whoop trends --days 30 # 30-day trends (1-90)
whoop trends --json # force JSON
insights — 健康に関する推奨事項
whoop insights # today
whoop insights --date 2026-03-01 --json # specific date, JSON
出力の動作
- パイプ(TTY なし):標準出力に JSON を出力します。エラーは
{"error":"...","code":2}として標準出力に出力されます。 - 対話モード(TTY):人が読みやすいテキストを出力します。エラーはプレーンテキストで標準エラーに出力されます。
- すべてのデータコマンドで
--format json|pretty|autoを指定できます(デフォルト:auto)。 --prettyは--format prettyの短縮形です。--jsonは trends/insights で使用できる短縮形です。
終了コード
| コード | 意味 |
|---|---|
| 0 | 成功 |
| 1 | 一般的なエラー |
| 2 | 認証エラー(未ログイン、トークンの期限切れ) |
| 3 | レート制限 |
| 4 | ネットワークエラー |
エージェント向けのエラー処理
- 終了コード 2:認証に失敗しました。ユーザーに
whoop auth loginを手動で実行するよう伝えてください(ブラウザーが必要です)。 - 終了コード 3:レート制限です。待ってから再試行してください。
- 終了コード 4:ネットワークの問題です。数秒後に再試行してください。
whoopが見つからない場合は、インストールするようユーザーに伝えてください:npm install -g @tomasward/whoop-cli。
日付の処理
- デフォルト:WHOOP の日(現地時間の午前 4 時を区切りとします)。
- 特定の日付には
--date YYYY-MM-DDを指定します。 - データコマンドと multi コマンドで範囲を指定するには、
--start/--endを使用します。 - すべての結果をページネーションで取得するには、
--all/-aを指定します。
使用しないケース
- このスキルを使うには、CLI がインストールされ、認証済みである必要があります。WHOOP API に直接クエリすることはできません。
- ユーザーがリアルタイムのストリーミングデータや Webhook 連携を必要とする場合、この CLI は対応していません。
リンク
コメント
Markdown 対応