Your health data, visualized entirely on your device
Apple Health, Fitbit/Google, WHOOP/Oura, CGM, endurance files, and CPAP exports — turned into deep, interactive dashboards. Everything is parsed and stored locally in your browser. No accounts, no uploads, and nothing is stored on a server — WHOOP sync is the one exception that touches our server at all, and even that is a stateless relay that keeps nothing.
No signup required — the demo uses generated sample data.
Private by design
Plotoo isn't a service you send your health data to. It's an app that runs in the browser tab you already have open.
Processed entirely in your browser
Every export is parsed locally in a background worker. Your files are never uploaded to a server — ever.
Stored only on your device
A cached copy lives in your browser's IndexedDB so you don't have to re-upload. Clear it anytime, with one click.
Try it with zero signup
The live demo runs on generated sample data — no account, no upload, nothing to lose. See exactly what you'd get.
Nothing tracked, nothing sold
A license key to confirm your subscription, and — if you connect WHOOP — sync requests through a stateless relay are the only things that ever cross the network. Neither is stored on our end.
AI that never phones home
Ask questions about your data using a local AI model via Ollama. Every inference runs on your own machine — no cloud AI, no data ever leaves your device.
What actually crosses the network
Your export file
Apple Health, CGM, CPAP, etc.
Parsing & storage
Background worker → IndexedDB
AI chat via Ollama
Runs on your own machine
PDF export for your doctor
Built on-device, never uploaded
Sees whether your license key is active, and, if you connect WHOOP, relays your sync requests to WHOOP because their API requires it. That relay is stateless — nothing is logged, cached, or stored. No health data, files, or AI prompts are ever kept on a server.
Chat with your health data
Ask anything — trend analysis, pattern spotting, plain-English summaries of months of data. The AI reads directly from your local IndexedDB cache and runs entirely on your machine via Ollama. Not one token is sent to a cloud.
- Works with any Ollama model — Llama 3, Mistral, Gemma, and more
- Sees all your dashboards at once: Apple Health, CPAP, Fitbit, Recovery, Endurance
- Streaming responses with full markdown rendering
Example questions
- How has my sleep quality changed over the past month?
- What's my average AHI this year vs. last year?
- Which days of the week do I train hardest?
8 data sources, one dashboard
Every data source below is free during development — explore each one with a live demo, no account needed.
Apple Health
Activity rings, workouts, and sleep stages from your iPhone.
Fitbit
Years of fragmented Google Takeout JSON, stitched into one timeline.
CGM
Glucose curves, time-in-range, and variability from Dexcom or Libre.
Recovery
WHOOP or Oura: sleep architecture, HRV, and recovery trends beyond the daily score.
Endurance
Second-by-second power, heart rate, and elevation from .FIT/.TCX files.
Strava
Training load, volume trends, and deep analytics across all your Strava activities.
WHOOP
Live recovery, strain, sleep, and workout sync straight from the WHOOP API.
How it works
The same three steps for every data source — your data stays put the whole time.
Export from your device or app
Each data source has its own export — Apple Health's export.zip, a Google Takeout folder, a CGM CSV, or a .FIT file from your watch.
Drop the file in
Open the dashboard for that data source and drop the file in. It's parsed entirely in your browser by a background worker — nothing is ever uploaded.
Explore your data
Browse trends, summaries, and breakdowns across years of data, organized into clear visualizations. Clear it from your device anytime.
See it for yourself
Every dashboard, fully populated with sample data — no upload, no signup, nothing to install.