healthsync
Your Apple Health data, locally stored and queryable by AI agents. Parse exports into SQLite. Query from the CLI, or let your coding agent ask the questions.
Heart Rate
Steps
Sleep
Blood Oxygen
VO2 Max
Workouts
zsh — 80×24
$ curl -fsSL https://healthsync.sidv.dev/install | bash
✓ healthsync v0.3.0 installed to /usr/local/bin/healthsync
$ healthsync parse export.zip
⣾ 540,110 records · 1,011 workouts · 18,432/s · 30s
Records: 540,110
Workouts: 1,011
Duration: 30.621s
$ healthsync query heart-rate --limit 3
┌──────────────────────────┬───────┬──────────────────────────────┐
│ SOURCE_NAME │ VALUE │ START_DATE │
├──────────────────────────┼───────┼──────────────────────────────┤
│ Siddhartha's Apple Watch │ 72 │ 2026-02-12 19:11:31 +0530 │
│ Siddhartha's Apple Watch │ 68 │ 2026-02-12 19:06:22 +0530 │
│ Siddhartha's Apple Watch │ 75 │ 2026-02-12 18:58:14 +0530 │
└──────────────────────────┴───────┴──────────────────────────────┘
$ healthsync skills install # teach your AI agent to query health data
✓ Installed to ~/.claude/skills/healthsync/
Files: healthsync.md, .healthsync-versionBuilt for AI agents
Run healthsync skills install to give your AI coding agent the schema, CLI reference, and SQL examples it needs to answer questions about your health data directly in conversation.
- "What was my average resting heart rate last month?"
- "How many hours did I sleep on average this week?"
- "Show me my VO2 Max trend over the past year."
- "Which workout type burns the most calories for me?"
The skill installs to ~/.claude/skills/healthsync/ and is picked up automatically by Claude Code and compatible agents on next session start.
What it does
- Streaming parser Handles 950MB+ exports at constant ~10MB memory. 500k records in ~30 seconds.
- Local SQLite Stored at
~/.healthsync/healthsync.db, WAL mode, auto-deduplication. - 40+ metrics Cardiac, activity, body, sleep, mobility, running, blood pressure, workouts, and more.
- Flexible output Table, JSON, or CSV. Date range filters with
--from/--to. - HTTP server Async upload via
POST /api/upload—202 Acceptedwith progress polling. Works over Tailscale. - Zero dependencies Single binary, no CGO, pure Go SQLite via modernc.org/sqlite.
Install
macOS / Linux
curl -fsSL https://healthsync.sidv.dev/install | bashGo
go install github.com/BRO3886/healthsync@latestManual
tar -xzf healthsync-darwin-arm64.tar.gz
sudo mv healthsync /usr/local/bin/Windows: download healthsync-windows-amd64.zip or healthsync-windows-arm64.zip from GitHub Releases and add the binary to your PATH.
Quick start
- Export from iPhone
Health app → Profile → Export All Health Data → save the
.zip - Parse
healthsync parse export.zip -v - Query
healthsync query heart-rate --limit 10 healthsync query steps --from 2024-01-01 --format json - Install agent skill
healthsync skills installYour AI agent can now query your health data directly in conversation.
How it works
| Parser | Streaming XML with DTD stripping via io.Pipe. Handles 500k+ records in ~30s. |
| Storage | Pure Go SQLite. WAL mode, batch inserts (1000/tx), UNIQUE constraints for dedup. |
| Server | Chi router. POST /api/upload returns 202, parses async, poll GET /api/upload/status. |
| CLI | Cobra. parse, query, server, skills subcommands. --db, --format, --from/--to flags. |
| Skills | go:embed. Writes schema + query docs to ~/.claude/skills/ for agent pickup. |