Should you build your own Bevel?
iOS app that pulls your Apple Health and wearable data into readable scores, trends and correlations.
Bevel is not sitting on secret data: it reads the same HealthKit records your watch already wrote, then does math and draws charts. An agent can absolutely build you a local dashboard over an Apple Health export that computes rolling averages, sleep and HRV trends, and lag correlations between habits and recovery. The gap is delivery, not analysis: real HealthKit access means an actual iOS app, Xcode, a developer account and background sync, and manual export zips get stale fast. You also lose the part Bevel spends most of its effort on, which is turning noisy sensor data into something you glance at once a day and actually understand. Fine for a curious quantified-self person, annoying for anyone who wants a phone widget.
ENOriginal research content in English. Original prompt preserved in English.
Build a local Apple Health analytics dashboard. Single machine, no accounts, no cloud, no telemetry.
Stack, non negotiable: Python 3.12, DuckDB for storage, Streamlit for the UI, uv for dependency management. No web framework, no Docker, no database server.
Project layout:
- ingest.py: CLI that takes a path to an Apple Health export.zip
- app.py: Streamlit dashboard
- health.duckdb: local database file, gitignored
- .env for anything configurable (default export path), read with python-dotenv
Ingest requirements:
- Read export.xml directly from inside the zip, streaming, using xml.etree.ElementTree.iterparse and clearing elements as you go. The file can be 500MB+, never load it into memory.
- Extract Record elements and Workout elements. Normalise into two DuckDB tables: records(type, source, unit, start_ts, end_ts, value) and workouts(activity_type, start_ts, end_ts, duration_min, energy_kcal).
- Strip the HK prefixes off type names so they read as sleep_analysis, heart_rate_variability_sdnn, resting_heart_rate, step_count, active_energy_burned, respiratory_rate, oxygen_saturation, body_mass.
- Idempotent: re-running on the same export replaces the tables, does not duplicate.
- Print a summary of row counts per type and the date range found.
Dashboard requirements:
- Date range picker, defaults to last 180 days.
- Daily aggregate table built in SQL: steps sum, active energy sum, resting HR mean, HRV mean, sleep hours from sleep_analysis asleep intervals, workout minutes.
- One chart per metric with a 7 day rolling mean drawn over the raw daily points.
- A correlation panel: pick metric A and metric B, pick a lag of 0 to 3 days, show the Pearson r, the n, and a scatter plot. Print a blunt caption saying this is correlation on a tiny sample and means nothing on its own.
- A weekday breakdown: mean of each metric by day of week.
- No composite "scores", no AI summaries, no advice text. Numbers only.
Deliver a README with the exact export steps from the iPhone Health app, the uv commands to run ingest and the dashboard, and one paragraph stating clearly that this needs a manual re-export to stay current and is not medical advice.The prompt opens pre-filled in your agent. Review it before running. · this prompt is generated from the build plan · improve it via PR
What would building your own look like?
Ingest an Apple Health export zip into a local database and serve a dashboard of daily metrics, rolling trends and correlations between behaviour and recovery.
What you will need
- An Apple Health export zip (Health app, profile, Export All Health Data)
- Python 3.12 locally
- Patience with a multi-hundred-megabyte export.xml
- An Apple Developer account and Xcode if you want live HealthKit sync instead of manual exports
Because the value of health metrics collapses if you have to go fetch them. Bevel's job is to be already updated when you open your phone, with a number you trust and a sentence that explains it. A local notebook that needs a manual export every two weeks answers different questions: interesting once, abandoned by month two. People pay for the part that keeps running when their curiosity does not.
xLive background sync; you are re-exporting a zip by hand
xA phone app, widgets and notifications
xTheir opinionated composite scores and plain-English daily readouts
xNon-Apple device integrations and whatever normalisation they do across sources
xCharts that a designer looked at
Nothing worth pointing at. That’s why the prompt exists.
How much does Bevel cost?
- Monthly billing
- $14.99/mo$14.99/mo
- Per year
- $180/yr$180/yr
- On a Brazilian card, with 3.5% IOF
- R$78.33/moR$940/yr
Saved to My list. You will see a notice on this site when the price changes.
You complete the purchase on Bevel’s site. Vibe Radar does not handle payments.
Is it cheaper to build or buy Bevel?
Adjust the numbers: hours to build, your hourly rate, running costs and the subscription price.
Over 24 months, subscribing is cheaper.
Starting hours estimated from the analysis (a weekend). Does not price what you give up (support, integrations, security).
Can I rebuild Bevel?
Kinda. The core of Bevel is buildable in a weekend with the prompt on this page, but there are real gaps: Live background sync; you are re-exporting a zip by hand, A phone app, widgets and notifications. Read the honest list above before committing.
How much does Bevel cost?
Bevel costs about $14.99/mo (Bevel Pro, checked 10/20/2026), which is $180 per year.
What do I lose by replacing Bevel?
Honestly: Live background sync; you are re-exporting a zip by hand; A phone app, widgets and notifications; Their opinionated composite scores and plain-English daily readouts; Non-Apple device integrations and whatever normalisation they do across sources; Charts that a designer looked at. If any of those are load-bearing for you, keep paying.
Is there an open-source alternative to Bevel?
No mature open-source alternative worth pointing at, which is exactly why the one-shot prompt on this page exists.