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
healthsync on Peerlist
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-version

Built 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/upload202 Accepted with 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 | bash
Go
go install github.com/BRO3886/healthsync@latest
Manual
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

  1. Export from iPhone

    Health app → Profile → Export All Health Data → save the .zip

  2. Parse
    healthsync parse export.zip -v
  3. Query
    healthsync query heart-rate --limit 10
    healthsync query steps --from 2024-01-01 --format json
  4. Install agent skill
    healthsync skills install

    Your AI agent can now query your health data directly in conversation.

How it works

ParserStreaming XML with DTD stripping via io.Pipe. Handles 500k+ records in ~30s.
StoragePure Go SQLite. WAL mode, batch inserts (1000/tx), UNIQUE constraints for dedup.
ServerChi router. POST /api/upload returns 202, parses async, poll GET /api/upload/status.
CLICobra. parse, query, server, skills subcommands. --db, --format, --from/--to flags.
Skillsgo:embed. Writes schema + query docs to ~/.claude/skills/ for agent pickup.