Coach
felixrieseberg/claude-coach
Create personalized triathlon, marathon, and ultra-endurance training plans.
Query Google Health API v4 — steps, heart rate, exercise, sleep, weight, SpO2, HRV, ECG, blood glucose, nutrition, and 40 total data types
$ npx skills add Google-Health-API/google-health-cli --skill ghealth -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Google-Health-API/google-health-cli ghealth --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Google-Health-API/google-health-cli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ghealth .claude/skills/ghealth && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ghealth" agent skill from https://github.com/Google-Health-API/google-health-cli/tree/main/skills/ghealth into .claude/skills/ghealth/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ghealth", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Google-Health-API/google-health-cli/tree/main/skills/ghealthType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Google-Health-API/google-health-cli --skill ghealth -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Google-Health-API/google-health-cli ghealth --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Google-Health-API/google-health-cli.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/ghealth .agents/skills/ghealth && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ghealth" agent skill from https://github.com/Google-Health-API/google-health-cli/tree/main/skills/ghealth into .agents/skills/ghealth/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ghealth", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Google-Health-API/google-health-cli --skill ghealth -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Google-Health-API/google-health-cli ghealth --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Google-Health-API/google-health-cli.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/ghealth .cursor/skills/ghealth && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ghealth" agent skill from https://github.com/Google-Health-API/google-health-cli/tree/main/skills/ghealth into .cursor/skills/ghealth/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ghealth", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Google-Health-API/google-health-cli.git --path skills/ghealth--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Google-Health-API/google-health-cli --skill ghealth -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Google-Health-API/google-health-cli ghealth --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Google-Health-API/google-health-cli.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/ghealth .gemini/skills/ghealth && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ghealth" agent skill from https://github.com/Google-Health-API/google-health-cli/tree/main/skills/ghealth into .gemini/skills/ghealth/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ghealth", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Google-Health-API/google-health-cli ghealthInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Google-Health-API/google-health-cli --skill ghealth -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Google-Health-API/google-health-cli.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/ghealth .github/skills/ghealth && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ghealth" agent skill from https://github.com/Google-Health-API/google-health-cli/tree/main/skills/ghealth into .github/skills/ghealth/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ghealth", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Google-Health-API/google-health-cli --skill ghealth -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Google-Health-API/google-health-cli ghealth --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Google-Health-API/google-health-cli.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/ghealth .opencode/skills/ghealth && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ghealth" agent skill from https://github.com/Google-Health-API/google-health-cli/tree/main/skills/ghealth into .opencode/skills/ghealth/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ghealth", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ghealthQuery Google Health API v4 — steps, heart rate, exercise, sleep, weight, SpO2, HRV, ECG, blood glucose, nutrition, and 40 total data types
Ghealth is an agent skill from Google-Health-API/google-health-cli. Query Google Health API v4 — steps, heart rate, exercise, sleep, weight, SpO2, HRV, ECG, blood glucose, nutrition, and 40 total data types
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Productivity & Automation, covering Health and fitness tracking. The repository describes itself as: Google Health CLI — one command-line tool for the Google Health API. Includes AI agent skills. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 9cf0274. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and csv).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ghealth loads about 2.3k tokens when it runs. Until then it costs about 37 tokens; SKILL.md has 869 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Google-Health-API/google-health-cli at commit 9cf0274, republished under its Apache-2.0 licence (© Google-Health-API). 869 words, ~2,339 tokens.
.claude/skills/ghealth/SKILL.md (or your agent's skills folder).CLI for the Google Health API v4. 40 verified data types.
Prerequisites: See ../ghealth-shared/SKILL.md for auth, setup, global flags.
| Goal | Operation | Example |
|---|---|---|
| Daily totals (steps, distance, calories) | daily-rollup | ghealth data steps daily-rollup --from 2026-03-22 --to 2026-03-29 |
| Individual readings (HR, weight, SpO2) | list | ghealth data heart-rate list --from today --limit 20 |
| Sessions (exercise, sleep) | list | ghealth data exercise list --from 2026-03-01 |
| Daily summaries (resting HR, HRV, resp rate) | list | ghealth data daily-resting-heart-rate list --from 2026-03-01 |
| Merged multi-source data | reconcile | ghealth data weight reconcile --from 2026-01-01 |
Why this matters: steps list returns minute-level intervals without counts. Use daily-rollup to get actual step totals (countSum). Same for distance (millimetersSum) and floors.
Run ghealth schema types for the live version. Quick reference:
Use daily-rollup for totals:
steps → countSum per daydistance → millimetersSum per daytotal-calories → kcalSum per day (rollup-only)floors → countSum (rollup-only)active-minutes → (rollup-only)swim-lengths-data → strokeCountSum per daycalories-in-heart-rate-zone → caloriesInHeartRateZones per day (rollup-only)Use list for readings:
heart-rate, weight (writable), body-fat (writable), height (writable), oxygen-saturation, heart-rate-variability, altitude, vo2-max, active-zone-minutes, activity-level, basal-energy-burned, active-energy-burned, blood-glucose, core-body-temperature, respiratory-rate-sleep-summary, run-vo2-max, sedentary-period, swim-lengths-data, hydration-log
Use list for sessions:
exercise (writable) — includes type, duration, calories, HR summary, notessleep (writable) — includes summary by default. Add --detail for per-stage breakdown.Cardiac (dedicated scopes, list-only):
electrocardiogram — waveform samples + rhythm classification. Requires ecg.readonly.irregular-rhythm-notification — alert windows. Requires irn.readonly.Nutrition:
nutrition-log — logged food entries with nutrient/energy breakdown (list, get, rollup, daily-rollup, reconcile)food, food-measurement-unit — reference catalogs (list, get only). No time filter — --from/--to are ignored.Daily summaries (one value per day, filter by date):
daily-resting-heart-rate, daily-heart-rate-variability, daily-oxygen-saturation, daily-respiratory-rate, daily-vo2-max, daily-sleep-temperature-derivations
Get a single point by ID: get --id <id> is supported on exercise, sleep, weight, body-fat, height, hydration-log, nutrition-log, blood-glucose, core-body-temperature, food, food-measurement-unit.
These require judgment that --help and schema don't provide.
Get the user's timezone before querying date-sensitive data:
ghealth user settings get # → timeZone: "Europe/London", utcOffset: "3600s"
# Then use --from/--to with the correct local datesThis reports the account timezone for information only — to have the CLI resolve dates in that zone, set it explicitly with ghealth config set timezone <IANA zone>.
Sleep/exercise page size is capped at 25 per request (auto-paginated by CLI):
ghealth data sleep list --limit 5 # CLI handles pagination internallyPaging through large list results. list returns up to --limit rows (default 500). When more exist, the response carries a nextPageToken and a hint. Pass it back with --page-token to fetch the next page — it resumes exactly where the last page ended, no rows skipped or repeated:
ghealth data heart-rate list --from 2026-06-15 --limit 500
# → {"dataPoints":[…500…], "nextPageToken":"ABC", "_hints":[…]}
ghealth data heart-rate list --from 2026-06-15 --limit 500 --page-token ABC
# → next 500 rowsCorrelate heart rate with exercise sessions:
# 1. Get exercise time window
ghealth data exercise list --from today --limit 1
# → start: "2026-03-29T14:18:32+01:00", end: "2026-03-29T14:39:14+01:00"
# 2. Query HR for that window using --filter (raw API syntax, UTC required)
ghealth data heart-rate list --filter 'heart_rate.sample_time.physical_time >= "2026-03-29T13:18:32Z" AND heart_rate.sample_time.physical_time < "2026-03-29T13:40:00Z"'Use -o <file> to write data to a file. When -o is set, stdout shows only a summary with the column schema — not the data itself. This means you can fetch data and immediately write analysis code using the column names from stdout, without reading the file.
ghealth data steps daily-rollup --from 2026-03-24 --to 2026-03-30 --format csv -o steps.csvWhat stdout shows (this is all the agent sees):
Wrote 6 rows to steps.csv
Columns: countSum, date
Preview:
countSum,date
4062,2026-03-29
9122,2026-03-28
2469,2026-03-27What the file contains (full CSV, not printed to stdout):
countSum,date
4062,2026-03-29
9122,2026-03-28
2469,2026-03-27
6541,2026-03-26
4025,2026-03-25
3995,2026-03-24The agent now knows the columns are countSum and date, and can write pd.read_csv("steps.csv") without ever reading the file.
Do not pipe to file — use -o instead. Piping (> file.csv) sends the full data to the file but prints nothing to stdout, so the agent has no column schema and must read the file to learn the structure.
More examples:
# Sleep — nested stageMinutes auto-flattened to stageMinutes.AWAKE, stageMinutes.DEEP, etc.
ghealth data sleep list --from 2026-03-01 --format csv -o sleep.csv
# Exercise — metricsSummary.caloriesKcal, metricsSummary.averageHeartRateBeatsPerMinute, etc.
ghealth data exercise list --from 2026-03-01 --format csv -o exercise.csv
# Heart rate — 500 readings straight to file
ghealth data heart-rate list --from today --limit 500 --format csv -o hr.csvExercise time series (GPS/heart-rate track) → CSV. export-tcx --as csv flattens the TCX track to one row per trackpoint — pd.read_csv it directly instead of parsing TCX XML:
# Find the exercise id first, then export its track
ghealth data exercise list --from 2026-06-01 --limit 10
ghealth data exercise export-tcx --id <id> --output ride.csv --as csv # or --output - for stdoutColumns (fixed, stable for dataframes): time, activity, lap, sport, latitude_deg, longitude_deg, altitude_m, distance_m, heart_rate_bpm, cadence_rpm, speed_mps, watts. Absent sensors are empty cells (NaN in pandas), never zeros. distance_m is cumulative. 0 rows = indoor/no-sensor activity (Google emits no track for those) — the session summary and workout notes come from data exercise list, not the track export.
Writable types: exercise, sleep, weight, body-fat, height. Writes are async (API returns Operation object).
Discover the correct payload format by inspecting a real response with --raw:
ghealth data weight list --raw --limit 1
# Use the response structure as a template for your create payloadWrite operations use create, update --id <id> [--update-mask fields], delete --ids <ids>.
altitude, distance, floors, steps, total-calories): a date absent from rollup output means the device wasn't worn / didn't sync — NOT zero. countSum: "0" is a true zero (worn, no activity). Never coalesce missing buckets to 0 or average over absent days as zeros — that silently deflates weekly/monthly statsint64 fields (beatsPerMinute, countSum, minutesAsleep) are strings; int32/double fields (weightGrams, caloriesKcal, percentage) are numbers--filter raw syntax: only >= and < comparators. Civil time fields (no Z): interval types use {type}.interval.civil_start_time, sleep uses sleep.interval.civil_end_time (only end-time is filterable), daily types use {type}.date. Physical time fields (with Z): sample types use {type}.sample_time.physical_timelist to verify persistencedelete returns HTTP 500 — this is an API bugupdate returns HTTP 400 ("updateMask not recognized") — API bug; use create + delete as a workarounddaily-rollup aggregates by civil/local day (1-day windows; override with --window-days N). rollup aggregates by physical time (--window-size, default 86400s); bare --from/--to dates anchor at midnight in the configured timezone (ghealth config set timezone <IANA zone>), falling back to machine-local time when unset. For local-day totals use daily-rollup. Both send their window size explicitly — the API rejects requests that omit it© Google-Health-API, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/ghealth of Google-Health-API/google-health-cli.
Open the folder on GitHubat commit 9cf0274
Ghealth next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ghealth this skillGoogle-Health-API/google-health-cli | 266 | — | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Coachfelixrieseberg/claude-coach | 199 | 1 repos | ~4.9k | Automated safety check: Pass | MIT | |
| Fitness Analyzerhuifer/WellAlly-health | 960 | 5 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Master Ajahn Chahxr843/Master-skill | 447 | 1 repos | ~2k | Automated safety check: Pass | CC-BY-NC-SA-4.0 | |
| Mental Health Analyzerhuifer/WellAlly-health | 960 | 5 repos | ~3.2k | Automated safety check: Pass | MIT | |
| Nutrition Analyzerhuifer/WellAlly-health | 960 | 5 repos | ~3.3k | Automated safety check: Pass | MIT |
felixrieseberg/claude-coach
Create personalized triathlon, marathon, and ultra-endurance training plans.
huifer/WellAlly-health
分析运动数据、识别运动模式、评估健身进展,并提供个性化训练建议。支持与慢性病数据的关联分析. An agent skill from huifer/WellAlly-health.
xr843/Master-skill
A skill your agent uses when user asks about 南传佛教, 上座部, Theravada, 巴利经典, 正念 sati, 放下, 三法印, 四念处, 出入息念 anapanasati, 戒定慧, 毗婆舍那, 森林禅林派, 巴蓬寺, 阿姜查, 杜多行, 中道, or wants teaching in 阿姜查 Ajahn Chah's voice.
huifer/WellAlly-health
分析心理健康数据、识别心理模式、评估心理健康状况、提供个性化心理健康建议。支持与睡眠、运动、营养等其他健康数据的关联分析。
huifer/WellAlly-health
分析营养数据、识别营养模式、评估营养状况,并提供个性化营养建议。支持与运动、睡眠、慢性病数据的关联分析. An agent skill from huifer/WellAlly-health.
huifer/WellAlly-health
分析职业健康数据、识别工作相关健康风险、评估职业健康状况、提供个性化职业健康建议。支持与睡眠、运动、心理健康等其他健康数据的关联分析。
Google-Health-API/google-health-cli
Shared prerequisites for all ghealth skills — auth, setup, global flags, command structure
Categories
Query Google Health API v4 — steps, heart rate, exercise, sleep, weight, SpO2, HRV, ECG, blood glucose, nutrition, and 40 total data types. Ghealth is an agent skill from Google-Health-API/google-health-cli.
Ghealth fits situations like: tasks that involve Health and fitness tracking.
Run `npx skills add Google-Health-API/google-health-cli --skill ghealth -a claude-code`. Or copy the skill folder (skills/ghealth in Google-Health-API/google-health-cli) into .claude/skills/ghealth in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Google-Health-API/google-health-cli --skill ghealth -a codex`. Or copy the skill folder (skills/ghealth in Google-Health-API/google-health-cli) into .agents/skills/ghealth in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Google-Health-API/google-health-cli --skill ghealth -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ghealth, .gemini/skills/ghealth, .github/skills/ghealth and .opencode/skills/ghealth in your project.
SKILL.md names no scripts, command-line tools or credentials: Ghealth is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Ghealth is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Ghealth: Coach (felixrieseberg/claude-coach, 199 stars), Fitness Analyzer (huifer/WellAlly-health, 960 stars), Master Ajahn Chah (xr843/Master-skill, 447 stars) and Mental Health Analyzer (huifer/WellAlly-health, 960 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Google-Health-API (a GitHub organization) maintains it in Google-Health-API/google-health-cli, which has 266 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on July 10, 2026.
Source: Google-Health-API/google-health-cli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.