WristVitals

For Withings watches · Android · open source

Your watch. Your data. Nobody in between.

WristVitals replaces the Withings app and cloud. It pairs with your watch directly over Bluetooth, keeps your heart rate, sleep, ECGs and everything else on your phone, and shares only what you choose, end-to-end encrypted.

No Withings account. No ads, no trackers, no selling data. Free software under the AGPL. Not affiliated with Withings. Not a medical device.

The WristVitals dashboard's Today page: heart rate, steps, temperature, SpO2, HRV and watch battery cards, last night's sleep stages and today's activity, for a fictional person named Alex.

What it is

A complete replacement for the official app

Pairing, syncing, notifications on the wrist, alarms, workouts, ECG, settings: everything the watch can do, from an app that answers to you.

Pairs without an account

The keys that pair the app with your watch are generated on your phone. Withings' servers are never contacted, so there is no account to create and nothing to delete later.

Data stays on your phone

Heart rate, HRV, sleep, SpO2, temperature, breathing rate, steps, workouts, ECGs, weight: all stored in an encrypted database on the phone. The app works fully offline.

Share only what you choose

Turn on a server if you want a web dashboard, family sharing or doctor links. Your phone encrypts everything first; the server stores ciphertext it cannot read.

Features

Everything the watch records, explained

The screenshots show the web dashboard with fictional demo data. The Android app shows the same information on the phone, with no server needed.

Heart

  • Continuous heart rate with lowest, average and highest
  • Resting heart rate and HRV baselines over weeks
  • Illness signs: temperature, resting heart rate and HRV together
The Heart page: lowest, average and latest heart rate, HRV, and a day's heart-rate chart.

Sleep

  • Stages every night, wake-ups, efficiency and breathing disturbances
  • Overnight heart rate, HRV, SpO2 and temperature
  • A sleep coach: consistency, sleep debt and a suggested bedtime
The Sleep page: time asleep, bedtime, wake-up, wake-ups, efficiency, breathing disturbances, and the night's stage timeline.

Activity

  • Steps, distance, floors, calories and active minutes
  • Daily goal and weekly patterns: work days versus days off
  • Readiness each morning, from sleep, HRV, resting heart rate and temperature against your own baseline
The Activity page: steps per day over a month, distance, floors and active minutes.

Body

  • Weigh-ins with a trend line, weekly rate, BMI and a goal with a projected date
  • Blood pressure, glucose and symptoms logged by hand
  • Units are one setting, metric or US, everywhere
The Body page: weight trend over months and blood pressure readings.

ECG

  • Record an ECG live from the watch, with guidance on posture and finger placement
  • Saved recordings with the watch's classification
  • PDF strips for your doctor
The ECG page: a list of recordings with their classification and an ECG strip.

Walks and workouts

  • Workouts started on the watch, with heart-rate zones
  • GPS walks recorded by the phone, with car detection and a private map (nothing downloaded unless you ask)
  • Fitness estimate and GPX export
The Walks and workouts page: sessions, distance, time, average heart rate, and a list of runs, rides and walks, one with a route drawn.

On the watch

Notifications from the phone (calls, messages, the apps you pick), smart wake-up alarms, the screens you want in the order you want, reminders, an hourly buzz, units and goals.

Insights

Morning summary, weekly digest, a journal of what affects you, and battery analysis: days per charge, drain per day, and how the battery ages.

Your data, portable

Encrypted backup and restore for a new phone or watch, CSV and PDF export, and an optional write-only export to Health Connect.

Privacy

How your data is protected, in plain words

Privacy is not a setting here; it is the design. Nothing leaves your phone unless you turn something on, and what leaves is encrypted with keys only you hold.

Watch to phone

The watch talks to the app over Bluetooth. The pairing keys are made on your phone, never by Withings.

Phone keeps it

Readings go into an encrypted database on the phone. With no server set up, that is the end of the story.

Optional server

If you link a server, the phone encrypts each day's data (AES-256-GCM) with keys derived from a master key that exists only on your devices.

Browser decrypts

The dashboard unlocks with your recovery key, in the browser. The server hands over ciphertext and never sees a single reading.

What a server can never see

  • Heart rate, sleep, SpO2, temperature, ECGs, weight, routes, or any other reading
  • Your encryption keys or recovery key
  • Alerts, commands and doctor reports (encrypted to the recipient)
  • The code that unlocks a doctor visit link

What a server does see

  • Your username, a password hash and your public key
  • That an encrypted blob exists for a category (say, "sleep") and a day, its size and when it was uploaded
  • Who you share with, and when report or visit links were opened (no IP addresses)
  • Nothing else: no analytics, no trackers, no access logs with health uploads

That metadata is documented honestly in the privacy policy.

Editions

Phone only, your own server, or WristVitals Cloud

Same app, same encryption. Pick where your ciphertext lives, and change your mind later: export from one, import into the other, keys stay with you.

Default

Phone only

  • No server, no network needed
  • Everything the app does, offline
  • Encrypted backup file for a new phone

Best for one person who wants nothing in the cloud.

Home edition

Your own server

  • One Docker container plus PostgreSQL
  • You invite your household; nobody else can sign up
  • Web dashboard, family sharing, alerts, doctor links
  • Optional LAN-only mode and local webhooks

The deployment guide is in the source repository (deploy/README.md).

Hosted edition

WristVitals Cloud

  • Open sign-up at cloud.wristvitals.com
  • 200 MB of encrypted storage per account
  • Zero-knowledge, always: the operator cannot read your health data
  • Runs the same published source as the home edition

For people who can't run a server. Privacy policy · Terms

Doctors

Show your doctor the real data, for one appointment

Doctor visit links. Before an appointment, pick what to share and from when, add your questions, and send the link by email. The code that unlocks it is given in person, so whoever carries the email can't open it. The doctor sees live charts in the browser, read-only, for a few hours, and your phone tells you when the link was opened. End it any time.

Report links. For a frozen snapshot, the phone builds a PDF report, encrypts it with a key that lives only in the link, and uploads just the ciphertext. Optional PIN, expiry and view limit.

Doctors agree to confidentiality terms before opening, and every page is watermarked with their name and the time.

The doctor's view of a visit link: the patient's questions, heart and activity summaries, watermarked with the fictional Dr. Morgan Lee's name and the opening time.

Family

Share with the people who look after you

Per-category sharing

Each person chooses what to share (heart, sleep, temperature, SpO2, weight, walks, ECG, alerts) and with whom. A share is that category's key sealed to the other person's public key; revoking it stops access at once.

Caregiver alerts

Rules such as fever, heart rate outside a range, low SpO2, no data for hours, inactivity or an "are you OK?" check-in. Alerts are encrypted to each caregiver and relayed by the server, which only sees that something was sent.

Home automation

Optional webhooks straight from the phone to Home Assistant, ntfy or any URL you enter, with an HMAC signature. The server is never involved.

Download

Get the Android app

WristVitals is in active development. Builds are published here as APK files; the app can check for updates itself if you turn that on (it only fetches a small version file from this site).

Download for Android

All builds, with checksums: wristvitals.com/download. Android asks once to allow installs from your browser.

Needs Android 10 or newer with Bluetooth Low Energy. Works without Google services (F-Droid friendly: no Play Services, no Firebase, no proprietary maps).

Open source

Free software, AGPL-3.0

The app, the server, the dashboard and the protocol documentation are all published under the GNU AGPL-3.0. Anyone can read how the encryption works, run their own server, or check that WristVitals Cloud runs the code it says it runs.

Protocol facts were worked out for interoperability and written in our own words; no Withings code, firmware or assets are included. Framing and the older handshake were first documented by Gadgetbridge, which we credit.

Source code

Self-hosting: deploy/README.md in the repository walks through Docker Compose and Swarm. The encryption contract is in docs/crypto.md.

FAQ

Questions people ask

Which watches work?

WristVitals was built and is tested with a ScanWatch 2. Other Withings hybrid watches speak the same protocol and can be paired; untested models are marked as such in the app, and the app shows only the features your watch reports having. If something doesn't work on yours, tell us.

Do I need to delete my Withings account?

No, but the watch can only be paired with one app at a time. Pairing with WristVitals starts from a factory-reset watch and never contacts Withings. If you want your old history, request a data export from Withings first; importing it is planned.

Where is my data?

On your phone, in an encrypted database. Nowhere else unless you turn on a server, Health Connect export, webhooks or app updates. The privacy policy lists every connection the app can make and when.

What if I lose my recovery key?

If you use a server, your recovery key is the only way to read the data stored there. We can reset your account (password, phones), but we cannot recover your data: we never have the key. Your phone keeps its own copy, so you can re-upload after creating a new key. Save the recovery key in a password manager or print it.

Is it a medical device?

No. The watch's readings and the app's observations are information, not diagnosis. Never rely on WristVitals in an emergency. Talk to a doctor about anything that worries you; doctor visit links exist to make that conversation easier.

Is WristVitals Cloud free?

Sign-up is open and each account gets 200 MB of encrypted storage, which holds years of watch data. Service terms are in the terms of service.

Can I move between editions?

Yes. Export from the dashboard (everything stored for you, still encrypted), delete the account if you like, and point the app at the new server; the phone re-uploads from its own copy. Keys stay with you.

Does it work on iPhone?

Not yet. The app is Android only (it needs Bluetooth and background access that the watch protocol requires). The web dashboard works in any modern browser.