Data
Privacy
FitBuddy is designed so your food log and API keys live on your phone. Network calls only happen for features you use.
Stored on your device
- Profile, body readings, daily targets
- Food and exercise logs, meal presets, saved foods
- AI provider choice, API keys, OpenRouter sign-in token, and model preferences (DataStore)
- Reminder schedule (local notification preference)
- Optional JSON backups you export yourself (optionally password-encrypted)
- Optional custom backup password (encrypted, device-only via the Android Keystore)
- Anonymous Support ID for crash support and cloud backup keying (not your name or email)
There is no FitBuddy user account. Uninstalling the app removes local data unless you keep an export or a cloud backup under your Support ID.
Sent to your AI provider
When you analyze a photo or text, design targets, estimate workout calories, or use Progress Coach, FitBuddy sends the relevant content to the provider you configured (OpenRouter, Gemini, Ollama, OpenAI, or any OpenAI-compatible server you point Local mode at). That can include:
- Meal photos or typed descriptions
- Profile/context snippets needed for the request (e.g. age, weight, goals)
- Compressed progress metrics for insights/chat
Your API key or OpenRouter OAuth credential is sent only as required by that provider’s auth (typically a Bearer header). FitBuddy does not upload your full history to a FitBuddy app server — there isn’t one.
Choose a provider you trust.
Their privacy policy and retention rules apply to prompts and images you send. Prefer local Ollama if you want analysis to stay on your network.
Optional personal cloud backup
When cloud backup is available in your build and you enable it, FitBuddy can upload a backup document keyed by your Support ID to the project’s MongoDB Atlas database (connection credentials are baked into the official release build — not pasted in Settings).
- What goes up: the same BackupData as a local export (logs, profile, settings, presets, and related fields) so you can restore after reinstall, encrypted on-device before upload — the cloud only ever stores encrypted data.
- Encryption: AES-256-GCM with a key derived (PBKDF2-HMAC-SHA256) from either an optional password you set or, by default, your Support ID. Custom passwords are stored device-only via the Android Keystore and are never included in exports or uploads. Forgetting a custom password means the backup can’t be recovered.
- Control: off by default; you opt in, can Upload now, or use Auto-upload on startup (12-hour debounce). Change or reset the password anytime from Settings.
- Restore: during onboarding via Support ID (or a local file), prompting for the password when the backup is encrypted.
If the build shows Cloud backup is not available, no Atlas uploads occur. Local Export still works entirely on-device.
Other network use
- OpenRouter OAuth — browser sign-in and token exchange when you use Continue with OpenRouter.
- Open Food Facts — barcode lookup (product name / nutrition). Barcodes are decoded on-device with an open-source library (no Google ML Kit); only the product lookup needs internet.
- GitHub — release / update checks and APK download when you update.
Optional crash reports (Sentry)
If Send crash reports is on and the build includes a DSN, anonymous crash and ANR data may be sent to Sentry to help fix bugs.
- Not sent: meals, photos, API keys, freeform food text
- May include: stack traces, app/device metadata, Support ID
- Daily heartbeat (when reporting is on): one anonymous pulse per UTC day for fleet health — not an error Issue; no meals/photos/keys
Turn reporting off in Settings anytime. When asking for help, share your Support ID so the developer can find matching events.
Permissions (typical)
- Camera — food photos and barcodes
- Photos / media — gallery pick
- Notifications — daily log reminder (optional)
- Alarms & reminders — timely reminder delivery (optional; otherwise may be delayed)
- Internet — AI, barcode lookup, updates, optional cloud backup, optional crash reports
- Install packages — applying an in-app downloaded update
Open source
FitBuddy is GPL-3.0. Inspect the code at github.com/anantdark/FitBuddy.
Usage guide · FAQ · Onboarding