smooth-app
A collaborative, free and open database of ingredients, nutrition facts and information on food products from around the world
Health Relay reads Apple Health on your iPhone and delivers each day, exactly and incrementally, to destinations you choose, in one open schema.
HealthGitHub @patsissonsLatest connection check failedOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Health Relay reads your health data on your phone and delivers it to destinations you choose.
Taken from the repository README
Loading the full README.
Read the full README ↗Health Data Relay reads your health data on your phone and delivers it, in any format, to destinations you choose: your own server, a dashboard, MQTT, email, files or your calendar, when you tap Run or on a schedule. Nothing leaves the phone except to those destinations.
Docs and screenshots: health-data-relay.lgtm.page
docs/schema.md, in Apple
Health's own terms, versioned by name (apple-push/1).| Directory | Platform | State |
|---|---|---|
ios/ | iPhone and iPad (iOS 17+), SwiftUI, HealthKit | v1 |
ios/HealthDataRelayMac | Mac dashboard, reading a phone's server | v1 |
ios/ | Vision Pro | compiled, never run |
android/ | Android, Health Connect | later |
Each platform lives in its own directory and shares no code with the others. What they share is the contract at the top level.
Where it stands against Health Auto Export, with the evidence for each feature: docs/parity-audit.md.
docs/schema.md: the body every platform sends and
every receiver accepts.docs/design.md: the behaviour every platform
implements: which days are sent, batching, retries, triggers.docs/receivers.md: how to write a receiver.fixtures/: push-two-days.json, the canonical example
batch, and empty-push.json, the connection test. Both are in canonical
JSON (node tools/canonical.mjs --check fixtures/*.json).tools/receiver.mjs: a throwaway local receiver
(Node, no dependencies) that every platform is tested against.The site (site/) is built from these docs; see site/README.md.
A platform is done when, for the fixture's synthetic data, it emits
fixtures/push-two-days.json byte for byte, and its pushes are accepted by
tools/receiver.mjs.
node tools/receiver.mjs --token secret --out /tmp/pushes # listens on :8787
curl -H 'Authorization: Bearer secret' --data-binary @fixtures/push-two-days.json http://localhost:8787/