google-health-cli@1.0.9
VERIFIED· install onlyPublisher claims: "Read your Google Health data from any agent: data points for every Google Health data type (heart rate, sleep, steps, distance, weight, blood oxygen, VO2 max, exercise and more), server-side daily roll-ups, a parsed view of exercise sessions, and GET of any read-only v4 API path, all as JSON. `data list`, `rollup daily`, `sessions --raw` and `api get` return every record the API sends for the window you ask for, unfiltered; the parsed `sessions` view leaves out points it can't date and reports how many on stderr. It never writes to Google Health; the only file it writes is its own local OAuth token cache. Also ships auth login/logout/status, doctor, config show/path, version and shell completion. Single static Go binary. Needs your own Google Cloud OAuth client and a one-time browser login; runs headless afterward." Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Nothing executable in the bundle ran; the trace covers the install step only.- Tested
- every file read, file written and host contacted by what ran
- Not tested
- use of the skill by an agent
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (1 scenario; nothing executable in the bundle ran; the trace covers the install step only) on 2026-11-07 and scored it 90/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 1 scenarios · 0 deviationsStatic findings
p = subprocess.run([sys.executable, str(tmp / "scripts" / SCRIPT.name), *args],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.out = subprocess.run(cmd, cwd=ROOT, capture_output=True, text=True).stdoutFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(["git", "-c", "user.email=t@t", "-c", "user.name=t",Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(["git", "init", "-q"], cwd=tmp, check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.Edit shared project documents, not separate agent policies. Root AGENTS.md and CLAUDE.md must remain byte-identical pointers. Cursor loads the same documents through `.cursor/rules/project-instructionFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.default = subprocess.run(["git", "symbolic-ref", "refs/remotes/origin/HEAD"], cwd=ROOT,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(["git", "add", "-A"], cwd=tmp, check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.out = subprocess.run(["git", "ls-files", "-z", "--cached", "--others", "--exclude-standard", top],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(["git", "add", "-A"], cwd=tmp, check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.base = subprocess.run(["git", "merge-base", default or "origin/main", "HEAD"], cwd=ROOT,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.