Hælan
A self-hosted dashboard and a complete local mirror, built on the Google Health API v4. Every day you have recorded, in one SQLite file, long after the API stops handing it back.
Generated data, no account, nothing to install. The README runs the same thing against your own history.
91 days, every one of them still here 8 June to 6 September 2026 · 4,183 to 15,623 steps · generated data
The mirror
One SQLite file, kept past Google's retention windows and surviving you losing access to the API. Intraday samples age out at the source, so a mirror is the only place minute-level history stays at that resolution.
The dashboard
Dashboard, Records, Activity, Sleep, Recovery, Health, Weight, Nutrition and Notes: sleep with stages, workouts with per-split heart rate, all-time bests over the whole archive, and any reading you know is wrong marked as wrong.
The tools
An MCP server over the same mirror, so a model you choose can ask questions of your own history. The catalogue is generated from what ships, in TOOLS.md.
Why it is self-hosted
Google caps an unverified OAuth client at a hundred users, and clearing verification for health scopes needs a paid third-party security assessment. A hosted dashboard therefore stalls at a hundred signups no matter how good it is. An instance whose only users are the people who own its OAuth client never meets that cap.
The cost is that every household brings its own Google Cloud project. The benefit is that no ceiling exists.
Run it
Then open the instance and follow the setup wizard, which walks through the Google Cloud project and the OAuth client it needs. The README is the full account, including a configuration reference for people who disagree with the defaults.
services:
haelan:
image: ghcr.io/bardesss/haelan:latest
ports: ['4235:4235']
volumes: ['haelan-data:/data']
restart: unless-stopped
volumes:
haelan-data:
The rest of it
Click any screenshot to see it full size. All generated demo data, not anybody's real health history.



