Skip to content
astechticPublic

About

Private, all-in-one health companion for iPhone (SwiftUI) and Android (Jetpack Compose): nutrition, workouts, a local mirror of Apple Health / Health Connect, fasting, water and an AI coach that runs on the API key the user brings. No account, no Ayuvo servers, no analytics.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Ayuvo mark

Ayuvo

Your whole health, in one place.

Website · Contribute · Security · MIT licence

Private, open-source, all-in-one health companion for iPhone (SwiftUI) and Android (Jetpack Compose): nutrition, workouts, health records, medications, a local mirror of Apple Health / Health Connect, fasting, water and an AI coach that runs on the API key the user brings, or on a model that stays on the phone. No account, no Ayuvo servers, no analytics.

Inspired by Fud AI by Apoorv Darshan. Ayuvo started from that MIT-licensed calorie tracker; its copyright notice is kept in LICENSE and shown in the apps under Settings → Legal → Licenses.

What Ayuvo is

Area What it does
Nutrition Meals by photo (up to 10 at once), barcode (Open Food Facts), voice, text, saved meals or manual entry; review calories, macros and 30+ nutrients before saving; "What if?" previews; personalised targets (Mifflin-St Jeor / Katch-McArdle); custom meal times; nutrient goals and Home cards.
Workouts Day-by-day diary with sets, reps, weight, RPE; calculated burn; 1,300-exercise library (shared/exercises) with photos/animations streamed from the upstream dataset.
Health data hub Every Health Connect / HealthKit type the user grants, all history, mirrored into a local SQLite database (shared/health/schema.sql, metric_registry.json); Home tiles, category lists, D/W/M/6M/Y charts, Show All Data, Data Sources, unit options; export/import as ayuvo-health-data zips; never in cloud backups. Contract: docs/health-data.md.
Camera vitals Manual finger scan (rear camera + torch, PPG) and face scan (front camera, remote PPG): heart rate, pulse intervals, HRV, respiratory rate, finger-vs-face compare, personal baselines and a recovery indicator. SpO₂ (experimental) and blood pressure (research) only after the user turns them on and calibrates against their own oximeter or cuff. Every value carries a classification and a confidence. Frames are processed on the device and never stored; scans are not written to Health. General wellness, not a medical measurement. Contract: docs/camera-vitals.md.
Cycle tracking Opt-in period tracker: one-tap period start/end, calendar, daily flow, pain, symptoms, mood and notes, history, trend charts, discreet reminders, and calendar-based estimates of the next period, fertile window and ovulation (labelled as estimates; not birth control, never a diagnosis). Stored in its own local database excluded from cloud backups; optional read/write with Apple Health / Health Connect; Coach access only after consent. Contract: docs/cycle-tracking.md.
Fasting & water Optional fasting timer (1–168 h) with editable history; optional water goals, reminders, widgets. Neither is written to Health.
AI coach Multi-turn chat with tool calls over the user's own data (diary, workouts, weight trend, fasts, and Health data only behind a visible consent toggle). 15 BYOK providers, or on-device models (Gemma 4 E2B, Qwen3 and Google's MedGemma 1.5 4B, a gated research model under the Health AI Developer Foundations terms, not a medical device) / Apple Intelligence; see local-models/README.md; keys in Keychain / EncryptedSharedPreferences.
Platform Apple Watch app + complications, iOS/Android widgets, Siri Shortcuts, iOS Share Extension, 18 languages, 18 accent tints with matching icons, Export/Import All Data zip on both platforms, which also moves a profile and its logs between iPhone and Android (docs/portable-data.md), plus optional Google Drive backup on Android (the Drive backup never includes health data or coach chat).

Tabs on both platforms: Home · Health · Coach · Workouts · Settings. The Health tab switches between Progress (weight, body fat, calories, workouts) and Health Data (the hub).

Privacy model

Everything is stored on the device. Data leaves only when the user acts, and only to a service they chose:

Flow Sent To When
BYOK AI photos, text, coach messages + requested context (health data only with the toggle) provider the user configured analyse / ask
Speech-to-text audio clip provider the user chose (or on-device) voice input
Barcode barcode number Open Food Facts scan
Exercise media plain GET raw.githubusercontent.com (© Gym visual) browsing Workouts
Model download plain GET Hugging Face tapping Download
Cloud backup (Android) archive without health DB / chat user's own Google Drive toggle on
Google Health OAuth sign-in; read-only health data downloaded Google (accounts.google.com, oauth2.googleapis.com, openidconnect.googleapis.com, health.googleapis.com); Android custom-client mode also opens a one-shot 127.0.0.1 listener during consent connect, Sync now, app open if auto-sync on
Update check / review none (public metadata) Apple / Google app open
OS backups per OS settings; health DB and chat excluded Apple / Google —

No analytics, crash or ad SDKs; no accounts; no first-party endpoints. Copy rule: never claim data "never leaves the device"; say "kept on this device, never stored in Drive backup, shared with your AI provider only through Coach".

Repo layout

ayuvo/
├── ios/            # SwiftUI app (target calorietracker), widgets, watch app, share extension, tests
├── android/        # Kotlin + Compose app (com.ayuvo.health), tests, docs
├── shared/         # exercises dataset + health registry/schema shared by both apps; shared/vitals = camera vitals DSP contract; shared/cycle = period tracker contract
├── web/            # static site (Firebase Hosting): landing, feature pages, privacy, terms, support. Generated by scripts/web_build.py
├── brand/          # mark geometry outputs, tints, fonts, brand README
├── scripts/brand/  # icon/marketing renderer (Pillow), scripts/web_check.py, scripts/brand_residue.py
├── scripts/web/    # site content + components, screenshot redaction, social cards (scripts/web_build.py builds web/)
├── marketing/      # logos, store graphics, screenshot storyboard + seed guide
├── docs/           # health-data contract, export format, cloud backup
├── local-models/   # on-device model catalog + third-party notices
├── APPSTORE.md · PLAYSTORE.md · RELEASE_NOTES.md · DEVELOPMENT.md · SECURITY.md
└── LICENSE · THIRD_PARTY_NOTICES.md · ASSET_CREDITS.md

Build & run

# iOS
xcodebuild -project ios/calorietracker.xcodeproj -scheme calorietracker \
  -destination 'platform=iOS Simulator,name=iPhone 17 Pro' build

# Android
export ANDROID_HOME=~/Library/Android/sdk
cd android && ./gradlew :app:assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk
adb shell am start -n com.ayuvo.health.debug/com.ayuvo.health.MainActivity

First launch: onboarding (profile, goals, notifications, Apple Health / Health Connect with the Coach consent toggle, AI provider key). See DEVELOPMENT.md for tests, the web site, the brand pipeline, screenshots and the release checklist.

Release process

  • Versions: iOS MARKETING_VERSION / CURRENT_PROJECT_VERSION in ios/calorietracker.xcodeproj/project.pbxproj; Android versionName / versionCode in android/app/build.gradle.kts.
  • Notes: add a ## vX.Y section to RELEASE_NOTES.md (scripts/release_notes.py refuses to publish without it).
  • Tags: vX.Y → Xcode Cloud archive + GitHub release entry; android-vX.Y → signed AAB uploaded to Play as a draft.
  • Store copy: APPSTORE.md, PLAYSTORE.md; site: cd web && firebase deploy --only hosting.

Contributing

Ayuvo is open source at github.com/astechtic/ayuvo. Code, translations, exercise data and docs are welcome: see CONTRIBUTING.md. Report vulnerabilities privately as described in SECURITY.md.

Licence

MIT — see LICENSE. Ayuvo is inspired by, and built on, the MIT-licensed Fud AI code base; the original copyright notice is retained there and shown in the apps under Settings → Legal → Licenses. Third-party credits: THIRD_PARTY_NOTICES.md, ASSET_CREDITS.md, local-models/legal/.

About

Private, all-in-one health companion for iPhone (SwiftUI) and Android (Jetpack Compose): nutrition, workouts, a local mirror of Apple Health / Health Connect, fasting, water and an AI coach that runs on the API key the user brings. No account, no Ayuvo servers, no analytics.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages