본문으로 건너뛰기
cccskills
무료GitHub에 공개

whoopskill

WHOOP CLI with health insights, trends analysis, and data fetching (sleep, recovery, HRV, strain).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(23)

  • SKILL.md6.0 KB
  • .env.example102 B
  • .gitignore41 B
  • examples/monitor/cron/README-cron.txt447 B
  • examples/monitor/systemd/whoopskill-monitor.service296 B
  • examples/monitor/systemd/whoopskill-monitor.timer168 B
  • examples/monitor/whoop-refresh-monitor.sh1.7 KB
  • package-lock.json23.1 KB
  • package.json797 B
  • README.md4.4 KB
  • src/api/client.ts3.9 KB
  • src/api/endpoints.ts279 B
  • src/auth/oauth.ts4.8 KB
  • src/auth/server.ts1.9 KB
  • src/auth/tokens.ts3.3 KB
  • src/cli.ts7.2 KB
  • src/index.ts119 B
  • src/types/whoop.ts3.6 KB
  • src/utils/analysis.ts10.5 KB
  • src/utils/date.ts1.0 KB
  • src/utils/errors.ts981 B
  • src/utils/format.ts4.0 KB
  • tsconfig.json458 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

whoopskill

Use whoopskill to fetch WHOOP health metrics (sleep, recovery, HRV, strain, workouts).

Install: npm install -g whoopskill | GitHub

Quick start

  • whoopskill summary — one-liner: Recovery: 52% | HRV: 39ms | Sleep: 40% | Strain: 6.7
  • whoopskill summary --color — color-coded summary with 🟢🟡🔴 status indicators
  • whoopskill trends — 7-day trends with averages and direction arrows
  • whoopskill trends --days 30 --pretty — 30-day trend analysis
  • whoopskill insights --pretty — AI-style health recommendations
  • whoopskill --pretty — human-readable output with emojis
  • whoopskill recovery — recovery score, HRV, RHR
  • whoopskill sleep — sleep performance, stages
  • whoopskill workout — workouts with strain
  • whoopskill --date 2025-01-03 — specific date

Analysis commands

  • summary — quick health snapshot (add --color for status indicators)
  • trends — multi-day averages with trend arrows (↑↓→)
  • insights — personalized recommendations based on your data

Data types

  • profile — user info (name, email)
  • body — height, weight, max HR
  • sleep — sleep stages, efficiency, respiratory rate
  • recovery — recovery %, HRV, RHR, SpO2, skin temp
  • workout — strain, HR zones, calories
  • cycle — daily strain, calories

Combine types

  • whoopskill --sleep --recovery --body

Auth

  • whoopskill auth login — OAuth flow (opens browser)
  • whoopskill auth status — check token status
  • whoopskill auth logout — clear tokens

Notes

  • Output is JSON to stdout (use --pretty for human-readable)
  • Tokens stored in ~/.whoop-cli/tokens.json (auto-refresh)
  • Uses WHOOP API v2
  • Date follows WHOOP day boundary (4am cutoff)
  • WHOOP apps with <10 users don't need review (immediate use)

Sample: whoopskill summary --color

📅 2026-01-25
🟢 Recovery: 85% | HRV: 39ms | RHR: 63bpm
🟡 Sleep: 79% | 6.9h | Efficiency: 97%
🔴 Strain: 0.1 (optimal: ~14) | 579 cal

Sample: whoopskill trends

📊 7-Day Trends

💚 Recovery: 62.1% avg (34-86) →
💓 HRV: 33.8ms avg (26-42) →
❤️ RHR: 63.8bpm avg (60-68) →
😴 Sleep: 75.4% avg (69-79) →
🛏️ Hours: 6.5h avg (5.7-7.8) ↓
🔥 Strain: 5.9 avg (0.1-9.0) ↓

Sample: whoopskill insights

💡 Insights & Recommendations

✅ Green Recovery
   Recovery at 85% — body is primed for high strain.
   → Great day for intense training or competition.

✅ HRV Above Baseline
   Today's HRV (39ms) is 21% above your 7-day average.
   → Excellent recovery. Good day for peak performance.

⚠️ Mild Sleep Debt
   You have 2.0 hours of sleep debt.
   → Consider an earlier bedtime tonight.

✅ Strain Capacity Available
   Current strain: 0.1. Optimal target: ~14.
   → Room for 13.9 more strain today.

Sample: whoopskill --sleep --recovery (JSON)

{
  "date": "2026-01-05",
  "fetched_at": "2026-01-05T13:49:22.782Z",
  "body": {
    "height_meter": 1.83,
    "weight_kilogram": 82.5,
    "max_heart_rate": 182
  },
  "sleep": [
    {
      "id": "4c311bd4-370f-49ff-b58c-0578d543e9d2",
      "cycle_id": 1236731435,
      "user_id": 245199,
      "created_at": "2026-01-05T00:23:34.264Z",
      "updated_at": "2026-01-05T02:23:54.686Z",
      "start": "2026-01-04T19:51:57.280Z",
      "end": "2026-01-05T01:30:48.660Z",
      "timezone_offset": "+04:00",
      "nap": false,
      "score_state": "SCORED",
      "score": {
        "stage_summary": {
          "total_in_bed_time_milli": 20331380,
          "total_awake_time_milli": 4416000,
          "total_light_sleep_time_milli": 6968320,
          "total_slow_wave_sleep_time_milli": 4953060,
          "total_rem_sleep_time_milli": 3994000,
          "sleep_cycle_count": 4,
          "disturbance_count": 4
        },
        "sleep_needed": {
          "baseline_milli": 26783239,
          "need_from_sleep_debt_milli": 6637715,
          "need_from_recent_strain_milli": 148919
        },
        "respiratory_rate": 14.12,
        "sleep_performance_percentage": 40,
        "sleep_consistency_percentage": 60,
        "sleep_efficiency_percentage": 78.28
      }
    }
  ],
  "workout": [
    {
      "id": "4279883e-3d23-45cd-848c-3afa28dca3f8",
      "user_id": 245199,
      "start": "2026-01-05T03:14:13.417Z",
      "end": "2026-01-05T04:06:45.532Z",
      "sport_name": "hiit",
      "score_state": "SCORED",
      "score": {
        "strain": 6.19,
        "average_heart_rate": 108,
        "max_heart_rate": 144,
        "kilojoule": 819.38,
        "zone_durations": {
          "zone_zero_milli": 167000,
          "zone_one_milli": 1420000,
          "zone_two_milli": 1234980,
          "zone_three_milli": 330000,
          "zone_four_milli": 0,
          "zone_five_milli": 0
        }
      }
    }
  ],
  "profile": {
    "user_id": 245199,
    "email": "user@example.com",
    "first_name": "John",
    "last_name": "Doe"
  },
  "recovery": [
    {
      "cycle_id": 1236731435,
      "sleep_id": "4c311bd4-370f-49ff-b58c-0578d543e9d2",
      "user_id": 245199,
      "score_state": "SCORED",
      "score": {
        "recovery_score": 52,
        "resting_heart_rate": 60,
        "hrv_rmssd_milli": 38.87,
        "spo2_percentage": 96.4,
        "skin_temp_celsius": 33.19
      }
    }
  ],
  "cycle": [
    {
      "id": 1236731435,
      "user_id": 245199,
      "start": "2026-01-04T19:51:57.280Z",
      "end": null,
      "score_state": "SCORED",
      "score": {
        "strain": 6.66,
        "kilojoule": 6172.94,
        "average_heart_rate": 71,
        "max_heart_rate": 144
      }
    }
  ]
}

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

이 스킬의 문제 신고