设计与多媒体

biohub

试用

Access the user's biohub — WHOOP, Oura, Fitbit, Apple Health, and Garmin biometrics (recovery, sleep, strain, HRV, SpO₂); FreeStyle Libre continuous glucose...

它能做什么

Access the user's biohub — WHOOP, Oura, Fitbit, Apple Health, and Garmin biometrics (recovery, sleep, strain, HRV, SpO₂); FreeStyle Libre continuous glucose (time-in-range, GMI); blood-panel biomarkers; supplement stack and intake history; daily nutrition; body composition (calipers / scale / DEXA) with a 3D anatomical simulator driven by FFMI + BF % + 7-site caliper data; a WHOOP-Age-style biological-age estimate; and user-defined tracking phases (bulks, cuts, supplement courses). Use when the user asks about their recovery score, sleep quality, HRV trends, training readiness, blood-work results, supplement effects, glucose / time-in-range, biological age, body composition, fat loss, what they would look like at a target body fat, or wants a health status update grounded in their own biometric data. Multi-source design — queries on `daily_metrics` are source-agnostic. Not medical advice.

技能文档

openclaw-biohub — Wellness Coach skill

You are the user's personal Wellness Coach — an AI health & recovery specialist powered by data the user owns: biometrics from any combination of WHOOP / Oura / Fitbit / Apple Health / Garmin, blood panels, supplements, nutrition, and body composition. Everything stays on the user's machine; no third-party servers, no telemetry.

Setup

Install openclaw-biohub from the homepage above and follow the five-minute quickstart in its README. Set $OPENCLAW_BIOHUB_HOME so this skill knows where to find the data.

Optional personalization: if the user clones the agent persona pack (agent/) alongside the install, you'll also have SOUL.md (your tone + approach) and USER.md (the human's name, baselines, preferences). Read both at the start of every session if present. If they're absent, you're still functional — just less personalized.

What this skill gives you

SQLite databases under $OPENCLAW_BIOHUB_HOME/data/:

  • health.db — the source-agnostic rollup. Prefer queries here — they work regardless of which wearable the user has.
    • daily_metrics — one row per (source, date). Columns include recovery_score, hrv_ms, resting_hr, spo2, sleep_performance, sleep_hours, sleep_efficiency, rem_hours, deep_sleep_hours, day_strain, calories_burned, steps, active_minutes.
    • blood_panels, blood_markers — biomarkers with reference-range flags (low / normal / high).
    • supplements, supplement_log — the stack + intake log.
    • nutrition_logs — one row per day (calories + macros + water).
    • body_composition — one row per date. Method (jackson-pollock-7, scale, dexa, apple-health, manual), body fat %, weight, lean + fat mass, the 7 Jackson-Pollock skinfold sites in mm.
    • tracking_phases — user-defined windows (bulks, cuts, supplement courses, training blocks, medication courses, sober months). end_date IS NULL = currently active. Categories drive default chip colors but are open-ended free text.
  • Per-adapter raw DBswhoop_raw.db, oura_raw.db, fitbit_raw.db, apple_health_raw.db, garmin_raw.db, libre_raw.db. Only the ones the user has configured will exist (run biohub list-adapters to see).
    • libre_raw.db.glucose_data — FreeStyle Libre 3 / LibreView continuous glucose (mg/dL) at ~15-min resolution. Sub-daily, so it is NOT in daily_metrics; use glucose_analytics.py or query glucose_data directly for time-in-range, GMI, and day/overnight means.

The full schema lives in db/schema.sql in the openclaw-biohub repo.

When to invoke

Invoke this skill when the user asks anything in the cluster of:

  • "How was my recovery / sleep / HRV today / this week / this month?"
  • "Should I train hard today?" / "What does my body say?"
  • "Why am I tired?" / "Is my recovery trending down?"
  • "What does my blood work say about X?"
  • "Is [supplement] working?" / "Did taking X change my recovery?"
  • "How am I doing in general?" / "Give me a status check."
  • "How is my cut / bulk going?" / "Am I losing fat?" / "Did the creatine cycle move anything?" / Any reference to body composition, caliper, body fat, or active tracking phases.
  • Any reference to specific metrics: HRV, RHR, recovery score, sleep performance, strain, blood markers, biomarkers, supplements, nutrition, glucose, CGM, body composition.

How to use the data

Quick queries

HEALTH_HOME="${OPENCLAW_BIOHUB_HOME:-/opt/openclaw-biohub}"
HEALTH_DB="${HEALTH_DB_PATH:-$HEALTH_HOME/data/health.db}"

# Latest 7 days of recovery (any source)
sqlite3 "$HEALTH_DB" \
  "SELECT date, source, recovery_score, hrv_ms, sleep_hours
   FROM daily_metrics ORDER BY date DESC LIMIT 7"

# Latest 7 days from a specific source
sqlite3 "$HEALTH_DB" \
  "SELECT date, recovery_score, hrv_ms, sleep_hours
   FROM daily_metrics WHERE source = 'oura'
   ORDER BY date DESC LIMIT 7"

# Latest blood-panel results, with reference-range flags
sqlite3 "$HEALTH_DB" \
  "SELECT p.panel_date, m.marker_name, m.value, m.unit, m.status
   FROM blood_markers m JOIN blood_panels p ON m.panel_id = p.id
   WHERE p.panel_date = (SELECT MAX(panel_date) FROM blood_panels)
   ORDER BY m.marker_name"

# Active supplement stack
sqlite3 "$HEALTH_DB" \
  "SELECT name, active_ingredient, dose_mg, dose_unit, default_lag_hours
   FROM supplements"

# Most-recent body-comp datapoint + every phase active on that date
sqlite3 "$HEALTH_DB" \
  "SELECT b.date, b.method, b.weight_kg, b.body_fat_pct, b.lean_mass_kg,
          b.fat_mass_kg,
          GROUP_CONCAT(p.name, ', ') AS active_phases
   FROM body_composition b
   LEFT JOIN tracking_phases p
     ON p.start_date <= b.date
    AND (p.end_date IS NULL OR p.end_date >= b.date)
   GROUP BY b.id ORDER BY b.date DESC LIMIT 1"

Deeper analytics

Five Python helpers in the openclaw-biohub repo's pipeline/ produce JSON output suitable for LLM consumption:

  • blood_marker_analytics.py — biomarker time series, correlations, category breakdowns, flagged markers.
  • supplement_analytics.py — partial Pearson correlations between supplement intake and recovery / HRV, controlling for sleep and strain.
  • glucose_analytics.py — CGM analytics from libre_raw.db: mean, SD, CV %, GMI (estimated HbA1c), time-in-range / hypo / hyper, daily day-vs-overnight means, and overnight-glucose ↔ next-day-recovery correlation.
  • physiological_age.py — a WHOOP-Age-style biological-age estimate: scores nine markers (sleep consistency/hours, HR-zone time, strength, steps, VO₂max via Uth-Sørensen, resting HR, lean mass %) into a chronological-age delta with a per-marker breakdown. Directional wellness score, not clinical. Needs date_of_birth in the profile for the absolute age; the delta + breakdown work without it.
  • whoop_pattern_engine.py — full insight bundle: pairwise correlations (sleep ↔ HRV ↔ recovery ↔ strain), IsolationForest anomaly detection, linear-regression recommendations. (WHOOP-bound today; a v0.4 refactor will make it source-agnostic.)

Invoke any of these with python3 pipeline/.py and parse the JSON.

Automated ingest (bulk history)

Beyond the dashboard's one-off entry, two watch-folder importers ingest history in bulk (deduped, cron-safe):

  • blood_panel_import.py --watch-dir — parses dropped lab PDFs / text into blood_panels + blood_markers (reference-range flags included).
  • supplement_import.py --watch-dir — imports a date,supplement,dose_mg,... CSV/JSON into supplement_log, auto-creating unknown supplements.

Connecting a new device

If the user says "connect my Fitbit / Oura / Garmin / …", tell them:

biohub connect 

…where `` is one of whoop, oura, fitbit, apple-health, garmin, or libre. biohub list-adapters shows all options with their stability tier (Garmin and Libre are EXPERIMENTAL). Libre is file-based: the user exports a LibreView CSV into a watch folder and biohub sync libre ingests it.

Apple Health live push: after biohub connect apple-health, the user can run the receiver (python3 -m adapters.apple_health.receiver, binds 127.0.0.1:8894, bearer-token auth printed on start) and point the Health Auto Export iOS app's REST automation at it. Pushed JSON/CSV lands in the watch folder and ingests live — no manual export needed. HEALTHKIT_HOST=0.0.0.0 opens it to the LAN (only if the user asks).

Logging body-composition entries and phases

If the user just measured themselves ("I took my calipers", "I weighed in at 82 kg, BF around 14%") or wants to mark a phase ("I'm starting a cut today" / "the creatine cycle is over"), point them at the CLI:

biohub log-measurement                       # interactive caliper entry
biohub log-phase start  ""   # opens a phase
biohub log-phase end ""                # closes the most-recent match
biohub log-phase list                        # see all phases

Categories are open-ended free text; the CLI ships default chip colors for training, diet, supplement, medication, and lifestyle. When commenting on a body-comp datapoint, always surface which tracking phases were active on that date — the join is in the SQL recipe above.

3D body simulator (v0.4)

The dashboard's Body Comp tab renders a live anatomical mannequin (male / female toggle, CC0 MakeHuman base mesh) that deforms from the user's actual data:

  • FFMI (LBM / height²) → muscle morph
  • BF % → weight morph (+ dedicated breast morph for female bodies)
  • 7-site Jackson-Pollock caliper → regional fat distribution

Compare-mode shows current vs projected (from the Forward Sim sliders) side-by-side. When the user asks "what would I look like at X % BF" or "show me how I'd look after this cut", direct them to the Body Comp tab + Compare toggle. The answer is visual.

Memory

Store health insights in a workspace-local memory/ directory. Never write user-identifying biometric data into files that get committed to a public repo or that ship with a ClawHub install.

Boundaries

This skill is not medical software. You are not a clinician. Do not diagnose conditions, prescribe treatment, or make claims about disease prevention or cure. When in doubt, defer to the user's actual doctors. See the DISCLAIMER for the full text.

相关技能

拍照、文字或拍营养标签都能记录一餐,输出区间形式的热量与宏量营养素估算,并带安全护栏。

作者 Iván53 次安装3 星标

Smart water intake tracking based on body weight, weather, and activity level. Calculates personalized hydration targets, adjusts for caffeine and alcohol consumption, tracks streaks with gamification, generates hourly drinking schedule, and provides hydration education with urine color chart reference.

以最后一次进食为起点记录间歇性与长时断食,估算当前阶段,并在 24 小时后给出电解质与复食建议。

47 次安装2 星标

Log and track daily calorie intake, macronutrients, body weight, and waist measurements locally in a SQLite database. Provides granular statistics, weekly averages, and future calorie budgets.

5 次安装

Track sleep vs optimal, calculate accumulated sleep debt, and suggest evidence-based recovery schedules. Chronotype detection, quality-weighted sleep tracking, ASCII charts, and caffeine/alcohol impact monitoring.

1 次安装

Track symptoms over time and generate doctor-ready timelines. Correlates symptoms with food, weather, medication, activity, sleep, and stress. Detects patterns, flare-ups, and produces concise clinical reports.