mcpField
W
whoop-cli

whoop-cli

github.com/tomasward1その他4847 回インストール25 週間前に更新
リポジトリ

whoop-cli について

whoop-cliはWHOOPの健康データを取得するコマンドラインツールです。端末やスクリプトで指標を扱うユーザーやエージェント向けに、日次スナップショット、期間指定検索、JSON出力を提供します。

主な機能

  1. 01WHOOPの健康スナップショット
  2. 02睡眠、回復、ワークアウト、サイクル、プロフィール、身体データ
  3. 03複数データ種別と期間の検索
  4. 04複数日の傾向と健康インサイト
  5. 05JSONまたは対話型テキスト出力
  6. 06OAuthログインとトークン更新

活用シーン

  1. 01エージェント向けに日次健康スナップショットを取得
  2. 02WHOOP指標をJSONでスクリプトに渡す
  3. 03数日間の健康傾向を確認
  4. 04自動検索の前に認証状態を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tomasward1/whoop-cli --skill whoop-cli

インストール後、Claude Code で/whoop-cliを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

eslint.config.js
.gitignore
LICENSE
.env.example
README.md
package.json
package-lock.json
.github/
dependabot.yml
.github/workflows/
ci.yml
publish.yml
enforce-staging.yml
promote.yml
examples/monitor/
whoop-refresh-monitor.sh
examples/monitor/cron/
README-cron.txt
examples/monitor/systemd/
whoop-cli-monitor.service
whoop-cli-monitor.timer
src/
index.ts
src/api/
client.ts
endpoints.ts
src/api/__tests__/
client.test.ts
src/auth/
keepalive.ts
config.ts
server.ts
oauth.ts
tokens.ts
src/auth/__tests__/
config.test.ts
keepalive.test.ts
oauth.test.ts
tokens.test.ts
src/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 の認証情報を求められます。

  1. https://developer.whoop.com にアクセスします
  2. アプリケーションを作成します(ユーザー数が 10 人未満のアプリは審査不要です)
  3. リダイレクト URI に http://localhost:8787/callback を設定します
  4. 求められたらクライアント 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 は対応していません。

リンク

コメント