apple-health-sync
Sync encrypted Apple Health data from an iOS device (iPhone, iPad) to OpenClaw, Hermes Agent, Claude, Codex or any other AI agent.
Rank
62
Safety
84
Downloads
3.7k
Updated
Oct 9, 2026
Version
0.9.4
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 3.7K downloads reported by the source. Last updated 10/9/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 9, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 9, 2026
- Adoption signal
- 3.7K downloadsadoption · observed Oct 9, 2026
- Latest release
- 0.9.4release · observed Aug 11, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s173fc1q26bt9850q6h8w8p9fx83f6m9:apple-health-sync- Install using `clawhub skill install s173fc1q26bt9850q6h8w8p9fx83f6m9:apple-health-sync` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/lukasosterheider/apple-health-sync before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-lukasosterheider-apple-health-sync/snapshot"
Documentation
CLAWHUB
150,656 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: apple-health-sync
description: Sync encrypted Apple Health data from an iOS device (iPhone, iPad) to OpenClaw, Hermes Agent, Claude, Codex or any other AI agent.
metadata: {"openclaw":{"homepage":"https://gethealthsync.app/","requires":{"bins":["openssl"],"pythonPackages":["cryptography"]},"config":{"stateDirs":[".apple-health-sync"]},"install":[{"id":"brew-openssl","kind":"brew","formula":"openssl@3","bins":["openssl"],"label":"Install OpenSSL (brew)"},{"id":"pip-cryptography","kind":"pip","packages":["cryptography>=50.0.0,<51"],"label":"Install Python cryptography package"}]}}
---
# Apple Health Sync
Act only on an explicit user request. Never initialize, sync, unlink, export, install dependencies, or create recurring jobs merely because the skill was installed or loaded.
Support this end-to-end encrypted OpenClaw <> iOS Apple Health workflow:
1. Initialize local runtime, keys, and onboarding payload.
2. Offer the user onboarding transport options: QR Code or Hex.
3. Prefer QR Codes when the user has no preference; treat Hex as fallback.
4. Run encrypted fetch/decrypt and persist sanitized day snapshots.
5. Unlink paired iOS devices when needed.
6. Generate data summaries based on the local database on request.
7. Create recurring sync/report schedules only when the user explicitly requests automation and confirms the exact schedule and output behavior.
iOS app `Health Sync for OpenClaw`: https://apps.apple.com/app/health-sync-for-openclaw/id6759522298
Support email: [email protected]
In case this skill has been upgraded from <= v0.7.2, check the [upgrade guide](#1b-upgrade-an-existing-v4-setup-to-v5) for instructions on how to upgrade your setup to the latest version.
## Runtime prerequisites
- Require `python3` and the Python package version pinned in `requirements.txt`.
- If `cryptography` is missing, explain the dependency and ask before running `python3 -m pip install -r {baseDir}/requirements.txt`. Never install it silently.
- The skill stores its local runtime state under `~/.apple-health-sync` by default.
- Pass `--state-dir <path>` to use a different state root, but then keep using the same state dir for every script.
- `onboarding.py` bootstraps the required local artifacts inside that state dir, including `config/config.json`.
- Protocol `v4` uses `config/secrets/private_key.pem`.
- Protocol `v5` uses `config/secrets/signing_private_key_v5.pem` and `config/secrets/encryption_private_key_v5.pem`.
- Both protocol versions perform cryptographic operations in memory with the Python `cryptography` package. The scripts do not invoke OpenSSL or create temporary challenge, signature, ciphertext, or plaintext files.
- `fetch_health_data.py`, `unlink_device.py`, and `create_data_summary.py` depend on those onboarding-generated files.
- Keep state directories private (`0700`) and sensitive state, database, NDJSON, and report files private (`0600`).
## Capability and data-flow contract
Stay within these declared boun_meta.json
{
"ownerId": "kn7ezdsdsb7v3drxwa3trv5ks981eges",
"slug": "apple-health-sync",
"version": "0.9.4",
"publishedAt": 1786448194894
}references/config.md
# Config reference
This skill now uses a centralized app config module plus two data layers:
- `scripts/config.py`: centralized app-owned configuration and shared config loading
- `references/configs.defaults.json`: mutable user defaults shipped with the skill
- `~/.apple-health-sync/config/config.json`: generated and mutable per-user user config
Required local state:
- The default state root is `~/.apple-health-sync`.
- Passing `--state-dir <path>` moves all required local artifacts under that custom root instead.
- State, config, and secrets directories are restricted to mode `0700`.
- Private keys, user config, onboarding artifacts, SQLite/NDJSON health storage, and saved summaries are restricted to mode `0600`; public key files may use `0644`.
- `config/config.json` is created by `scripts/onboarding.py`.
- Protocol `v4` uses `config/secrets/private_key.pem`.
- Protocol `v5` uses `config/secrets/signing_private_key_v5.pem` and `config/secrets/encryption_private_key_v5.pem`.
- `onboarding.py --rotate` archives the current identity under `config/key-backups/<UTC timestamp>/`, then always creates new keys and a new user ID. Keeping the previous user ID during rotation is not supported.
Legacy note:
- `~/.apple-health-sync/config/runtime.json` is still read as a fallback for older installs, but new writes go to `config.json`.
Effective config order:
1. app-owned values from `scripts/config.py`
2. `references/configs.defaults.json`
3. `config.json` (or legacy `runtime.json`)
App-owned values are centralized in `scripts/config.py`, including:
- `onboarding_version`
- `ios_app_link`
- `supabase_region`
- `supabase_get_data_url`
- `supabase_qr_code_generator_url`
- `supabase_unlink_device_url`
- `supabase_publishable_key`
## Skill-shipped config
`references/configs.defaults.json` contains mutable user defaults:
```json
{
"storage": "sqlite"
}
```
## User Config
User config defaults to `~/.apple-health-sync`, or the `--state-dir` path when provided:
- SQLite DB: `~/.apple-health-sync/health_data.db`
- User config: `~/.apple-health-sync/config/config.json`
- Private key: `~/.apple-health-sync/config/secrets/private_key.pem`
Typical user config fields:
```json
{
"user_id": "ahs_...",
"protocol_version": 5,
"algorithm": "RSA-2048",
"state_dir": "/Users/<user>/.apple-health-sync",
"config_dir": "/Users/<user>/.apple-health-sync/config",
"secrets_dir": "/Users/<user>/.apple-health-sync/config/secrets",
"private_key_path": "/Users/<user>/.apple-health-sync/config/secrets/private_key.pem",
"public_key_path": "/Users/<user>/.apple-health-sync/config/public_key.pem",
"public_key_base64": "<base64-spki-public-key>",
"signing_algorithm": "Ed25519",
"signing_private_key_path": "/Users/<user>/.apple-health-sync/config/secrets/signing_private_key_v5.pem",
"signing_public_key_path": "/Users/<user>/.apple-health-sync/config/signing_public_key_v5.pem",
"signing_public_key_base64": "<base64-raw-ed25519-public-key>",
"encryreferences/configs.defaults.json
{
"storage": "sqlite"
}skill-card.md
## Description: Sync encrypted Apple Health data from an iOS device (iPhone, iPad) to OpenClaw, Hermes Agent, Claude, Codex or any other AI agent. This skill is ready for commercial/non-commercial use. ## Publisher: [lukasosterheider](https://clawhub.ai/user/lukasosterheider) ### License/Terms of Use: MIT-0 ## Use Case: External users and developers use this skill to onboard an iOS device, fetch and locally decrypt Apple Health snapshots, unlink devices, and generate daily, weekly, or monthly health summaries for agent workflows. ### Deployment Geography for Use: Global ## Known Risks and Mitigations: Risk: The skill handles Apple Health-derived data and private sync keys stored under the selected local state directory. Mitigation: Keep the state directory private, do not share private keys, rotation backups, databases, NDJSON exports, or saved reports, and preserve the documented file permissions. Risk: The sync workflow uses a disclosed Supabase relay for onboarding, fetching encrypted rows, and unlinking devices. Mitigation: Use only the documented relay URLs and rely on local decryption; do not send private keys or health records to the onboarding relay. Risk: Dependency installation, identity rotation, unlinking, report saving, and recurring schedules can affect sensitive local state or recurring access patterns. Mitigation: Run those actions only after explicit user confirmation of the dependency install, unlink, rotation, report destination, or schedule. ## Reference(s): - [Health Sync homepage](https://gethealthsync.app/) - [Health Sync for OpenClaw iOS app](https://apps.apple.com/app/health-sync-for-openclaw/id6759522298) - [ClawHub skill page](https://clawhub.ai/lukasosterheider/skills/apple-health-sync) - [Config reference](references/config.md) - [Default runtime config](references/configs.defaults.json) ## Skill Output: **Output Type(s):** [text, markdown, shell commands, configuration, guidance] **Output Format:** [Markdown guidance with inline shell commands plus optional text or JSON health summaries] **Output Parameters:** [1D] **Other Properties Related to Output:** [May create local private state, onboarding artifacts, encrypted-sync outputs, SQLite or NDJSON health snapshots, and confirmed saved summaries.] ## Skill Version(s): 0.9.4 (source: server release metadata) ## Ethical Considerations: Users should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/lukasosterheider/skills/apple-health-sync",
"sourceUrl": "https://clawhub.ai/lukasosterheider/skills/apple-health-sync",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T07:01:41.992Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-lukasosterheider-apple-health-sync/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-lukasosterheider-apple-health-sync/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-09T07:01:41.992Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "3.7K downloads",
"href": "https://clawhub.ai/lukasosterheider/apple-health-sync",
"sourceUrl": "https://clawhub.ai/lukasosterheider/apple-health-sync",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T07:01:41.992Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "0.9.4",
"href": "https://clawhub.ai/lukasosterheider/apple-health-sync",
"sourceUrl": "https://clawhub.ai/lukasosterheider/apple-health-sync",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-11T11:36:34.894Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-lukasosterheider-apple-health-sync/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-lukasosterheider-apple-health-sync/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 0.9.4",
"description": "apple-health-sync v0.9.4 - Updated Python cryptography dependency in metadata to an explicit version range: `cryptography>=50.0.0,<51`. - Documented new identity rotation feature for onboarding (`onboarding.py --rotate`), describing safe archival/backup and user workflow.",
"href": "https://clawhub.ai/lukasosterheider/apple-health-sync",
"sourceUrl": "https://clawhub.ai/lukasosterheider/apple-health-sync",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-11T11:36:34.894Z",
"isPublic": true
}
]
}Record generated Oct 9, 2026.
