Fud AI Logo Fud AI
Home Features GitHub Privacy Terms

Privacy Policy

Last updated: May 8, 2026

Fud AI ("we", "our", "the app") is an open-source iOS and Android app developed by Apoorv Darshan. This privacy policy explains how your information is handled across both platforms. In short: we don't have Fud AI accounts, in-app analytics, ads, or behavioral tracking. Your app data stays on your device except for the specific AI/STT requests you initiate, optional update metadata checks, platform health sync you explicitly enable, and Fud AI Plus requests when you choose the paid no-key setup on iOS. The public website may use Vercel Web Analytics for aggregate pageview metrics; those website metrics are not connected to your app food log, health data, API keys, or Plus subscription.

Information You Provide

  • Gender, date of birth, height, weight, and body fat percentage (entered during onboarding)
  • Activity level, weight goal, target weight, and weekly weight-change rate
  • Food photos taken within the app
  • Food entries and nutrition data you log (including manual entries)
  • Weight log entries
  • Body fat % readings logged over time, plus an optional goal body fat % (only collected if you opt into body-fat tracking during onboarding or later in Settings)
  • Voice recordings (when using voice meal input)
  • AI Coach chat messages (multi-turn conversation history)
  • AI provider and speech-to-text provider API keys (stored encrypted on device — see below)
  • App preferences: appearance mode, theme color, units (metric / imperial), week-start day, notification times, and speech-language preferences
  • Fud AI Plus subscription status on iOS, if you subscribe, restore purchases, or switch AI Access mode to Plus

How We Use Your Information

  • AI Food Analysis: Food photos, text descriptions, and the text produced from voice input are sent to your selected AI access path. In Bring Your Own Key mode, requests go directly from your device to your chosen AI provider (any of 13 supported: Google Gemini, OpenAI, Anthropic Claude, xAI Grok, OpenRouter, Together AI, Groq, Hugging Face, Fireworks AI, DeepInfra, Mistral, Ollama running locally, or a custom OpenAI-compatible endpoint you configure). In Fud AI Plus mode on iOS, requests are sent to Fud AI's serverless proxy, which forwards them to Google Gemini using Fud AI's API key and applies daily quota/fallback handling. Explicit in-app consent before any data leaves your device: the first time you trigger an AI analysis (photo, voice, text, or nutrition label), the app shows an "AI Analysis Notice" sheet that names your current AI access path, lists exactly what is sent (photo / voice transcript / text / profile data for Coach chat), and requires you to tap Allow before the request fires. Manual entry never requires consent because no data is sent anywhere. Custom AI Instructions (optional, Settings → AI Provider): if you fill in the Custom AI Instructions text box, that text is appended to every AI request so the model sees your context. The text stays local except when included in the AI request payload. Fallback AI Provider (BYOK only): if your primary BYOK provider returns an error, the request can retry with the secondary provider you configured. Note on OpenRouter openrouter/free: when you pick the free-tier default model on OpenRouter, OpenRouter itself selects the upstream provider that handles your request.
  • AI Coach Chat: When you use the Coach tab, the app sends a slim system prompt (your profile, BMR/TDEE/macro formulas, weight forecast, current date/timezone, and a one-line "data available" snapshot) plus your conversation history through your selected AI access path. Coach can additionally call tool functions mid-turn to fetch any date range of your weight, body-fat, calorie, or food-entry history when you ask about specific past dates ("what was my weight in March?", "what did I eat Tuesday?"). The fetched data is sent as part of the AI request and may include meal source, meal type, serving size, and micronutrients when relevant. Full chat history is kept locally; only the last 20 messages are included in each LLM request to cap token cost.
  • Speech-to-Text: If you pick the on-device option (Native iOS on iPhone, Native Android SpeechRecognizer on Android), voice recognition happens on your device and the selected language is passed as a local recognition hint when applicable. If you pick a remote BYOK provider (Gemini Audio, OpenAI Whisper, Groq, Deepgram, AssemblyAI), a short audio recording is uploaded to that provider and its text response is returned to the app. In Fud AI Plus mode on iOS, remote voice input is uploaded to Fud AI's serverless proxy and forwarded to Google Gemini for transcription. If you choose a fixed speech language or "Use Device Language" instead of Provider Auto, the corresponding language code may be sent with the audio so it can bias transcription. Provider Auto for Plus follows your iPhone language.
  • Fud AI Plus Subscriptions: iOS Plus subscriptions are processed by Apple and entitlement status is managed in the app through RevenueCat. Apple and RevenueCat may receive subscription-related identifiers and events such as an app user/customer ID, product ID, purchase, renewal, cancellation, refund, expiration, restore, and related timestamps. We do not receive your payment card details. Subscription records are used only to unlock or restore Plus access and to support subscription management.
  • Plus Quota Checks: Fud AI Plus requests include an anonymous install ID so the serverless proxy can count daily food, speech, Coach, and total usage. If Vercel KV is configured, daily quota counters may be stored there until expiry; otherwise the proxy keeps temporary in-memory counters. Request payloads are forwarded to Gemini for processing and are not used to create a Fud AI account.
  • Local Storage: All food entries, weight entries, body-fat readings, user profile (including any goal body fat %), Coach chat history, food photos, and app preferences are stored locally on your device — in UserDefaults on iOS, in DataStore Preferences on Android. Nothing leaves your device except the specific AI/STT requests described above.
  • API Key Storage: On iOS, your API keys are stored in iOS Keychain (encrypted, hardware-backed, accessible only to the app). On Android, they are stored in EncryptedSharedPreferences using AES-256 with the master key managed by Android Keystore (also hardware-backed on devices with a TEE / StrongBox).
  • Widgets: To display today's calorie and macro totals on the Home Screen / Lock Screen, the main app writes a small snapshot (today's totals + goals) into a shared container — App Group on iOS, the same DataStore on Android. The widget reads this snapshot to render. The snapshot never leaves your device and contains only numbers — no food names, photos, or identifiers.
  • Apple Health (iOS) / Health Connect (Android): If you enable health integration in Settings, the app writes body measurements (weight, height, body fat percentage on iOS; weight on Android) and per-meal nutrition (calories, protein, carbs, fat, sugar, fiber, saturated fat, monounsaturated fat, polyunsaturated fat, cholesterol, sodium, potassium) to the platform's health store. On iOS, it also reads weight + body fat + height + date of birth + biological sex back into your profile, and automatically imports external weight + body-fat samples from any other Health-compatible app (Apple Watch, Withings, Renpho, smart scales). On Android, weight reads + auto-imports work via Health Connect (Samsung Health, Fitbit, Withings, Google Fit); body-fat read-back from Health Connect is currently write-only — body-fat samples logged in Fud AI flow out to Health Connect, but external body-fat samples from other apps are not yet auto-imported (planned for a future Android release). On first enable (iOS), a one-shot historical backfill pulls every past weight + body-fat sample Apple Health knows about into the Progress chart so the chart starts populated rather than blank. You control this via iOS Settings → Health → Data Access → Fud AI, or via the Health Connect app on Android.
  • Notifications: If you enable streak, daily-summary, log-weight, or log-body-fat reminders, they are scheduled locally via iOS local notifications (iOS) or AlarmManager + POST_NOTIFICATIONS permission (Android 13+). All four are smart-fire — they skip on days you've already logged the corresponding metric. No notification content is ever sent to a server.
  • App Update Checks: About can check whether a newer app version exists. On iOS, the app requests public metadata from Apple's iTunes Lookup API for the Fud AI App Store ID. On Android, it requests public GitHub Releases metadata for this repository and filters Android release tags. The installed version is compared locally; the app does not send your food log, profile, API keys, or health data for update checks. If an update is available, tapping Update opens the App Store or Play Store listing.
  • Website Analytics: The marketing website may load Vercel Web Analytics to understand aggregate visits and page performance. This is separate from the mobile apps and is not connected to food entries, health data, API keys, or subscriptions.

Information We Do NOT Collect

  • We do not use any in-app third-party analytics, crash reporting, or advertising SDKs
  • We do not track your behavior, location, or browsing activity
  • We do not sell your personal data
  • We do not operate Fud AI accounts, in-app analytics, ads, or tracking servers
  • We do not require an account, sign-in, or cloud sync
  • We do not see your BYOK API keys; Fud AI Plus payloads pass through our serverless proxy only to reach Google Gemini
  • We do not receive your App Store payment card details

Data Storage & Security

DataStorage Location (iOS)Storage Location (Android)Accessible By
Food entriesUserDefaultsDataStore PreferencesYou only
Food photosApp Support directoryfilesDir/fudai-food-images/You only
Weight entriesUserDefaultsDataStore PreferencesYou only
Body-fat entries (history)UserDefaultsDataStore PreferencesYou only
User profile (incl. goal body fat %)UserDefaultsDataStore PreferencesYou only
Coach chat historyUserDefaultsDataStore PreferencesYou only
Widget snapshot (today's totals)App Group containerSame DataStoreYou only
App preferences (theme color, appearance, units, notifications)UserDefaultsDataStore PreferencesYou only
API keys (LLM + STT)iOS KeychainEncryptedSharedPreferences (AES-256, AndroidKeystore-backed)You only
Plus subscription status (iOS)Apple App Store + RevenueCat; small local cache in the app for access state.You + Apple + RevenueCat
Plus quota countersAnonymous install ID + daily task counts in the Fud AI proxy / Vercel KV when configured.Processed for quota enforcement
Food photos (for AI analysis)BYOK: sent to your chosen AI provider. Plus: sent through Fud AI's proxy to Google Gemini.Processed in transit
Voice audio (remote STT)BYOK: sent to your chosen STT provider. Plus: sent through Fud AI's proxy to Google Gemini.Processed in transit
Coach chat messagesBYOK: sent to your chosen AI provider. Plus: sent through Fud AI's proxy to Google Gemini.Processed in transit
Health dataApple HealthKitHealth ConnectYou + apps you authorize

Third-Party AI Providers

When you send a request to an AI or STT provider, you are subject to that provider's privacy policy. Each provider handles data differently — some log prompts, some don't; some train on inputs, some don't. We recommend reviewing the policy of whichever provider you choose:

  • Google Gemini
  • OpenAI
  • Anthropic
  • xAI
  • OpenRouter
  • Together AI
  • Groq
  • Hugging Face
  • Fireworks AI
  • DeepInfra
  • Mistral
  • Deepgram
  • AssemblyAI

If you use Ollama or a custom OpenAI-compatible endpoint, requests go to whatever URL you configure — typically your own machine or a self-hosted server.

If you use Fud AI Plus, AI and remote speech requests are routed through Fud AI's serverless proxy to Google Gemini. The proxy uses an anonymous install ID only for quota enforcement and does not require a Fud AI account.

Payments & Subscription Providers

Fud AI Plus subscriptions on iOS are purchased through Apple App Store in-app purchase and managed in-app using RevenueCat. Apple handles payment processing and billing information. RevenueCat helps the app verify, restore, and synchronize subscription entitlement state. Their policies apply to subscription processing:

  • Apple Privacy Policy
  • RevenueCat Privacy Policy

Permissions Requested

  • Camera — for snapping food photos. Prompted on first use.
  • Microphone / Speech Recognition — for voice meal input. Prompted on first use.
  • Photo Library / Storage — to pick existing food photos. iOS uses PHPicker; Android uses the system PickVisualMedia photo picker — neither requires broad photo-library access.
  • Notifications — only if you enable streak or daily-summary reminders. On Android 13+, this triggers the runtime POST_NOTIFICATIONS permission prompt.
  • Health — only if you flip on Apple Health (iOS) or Health Connect (Android) integration. The system permission sheet lists exactly which read/write types are requested.
  • Internet — required for AI/STT requests to your chosen providers and for optional app-update checks. Implicit on iOS; declared in AndroidManifest.xml on Android.
  • Battery Optimization (Android, optional) — Settings exposes a deep-link to whitelist Fud AI in Android's battery-optimization list. This is needed on aggressive OEM skins (OriginOS, MIUI/HyperOS, One UI) where exact alarms are killed otherwise. Whitelisting only affects local reminder reliability — it does not change anything about data handling.

Open Source

Fud AI is open source under the MIT License. You can review exactly what the app does — including every network call — at github.com/apoorvdarshan/fud-ai.

Data Retention & Deletion

  • All data remains on your device until you delete it or uninstall the app.
  • Delete All Data (Settings → Delete All Data) wipes the app's local storage on both platforms: food log, weight log, body-fat log, profile, Coach chat history, saved meals, widget snapshot, API keys, and preferences. It intentionally does not touch Apple Health or Health Connect — those samples are personal and survive the reset. If you want them removed too, on iOS go to Settings → Health → Data Access & Devices → Fud AI; on Android use the Health Connect app's data management screen.
  • Clear Food Log (Settings → Clear Food Log) removes local food entries only; previously-synced Apple Health / Health Connect samples are kept.
  • Deleting app data or uninstalling the app does not cancel an active App Store subscription. Manage or cancel Fud AI Plus from your Apple ID subscription settings.
  • Uninstalling the app removes everything in its sandbox (same as Delete All Data) — again, Apple Health / Health Connect samples persist unless deleted separately.

Children's Privacy

Fud AI is not directed at children under the age of 13. We do not knowingly collect personal information from children under 13. If you believe a child under 13 has provided us with personal data, please contact us so we can assist.

Changes to This Policy

We may update this privacy policy from time to time as the app evolves. Changes will be reflected in the "Last updated" date above. Continued use of the app after changes constitutes acceptance of the updated policy.

Contact

For privacy questions or deletion requests, contact either of: apoorv@fud-ai.app or ad13dtu@gmail.com

Fud AI Fud AI

An open-source iOS and Android calorie tracker that puts you in charge of the AI, the data, and the device.

Read

  • Features
  • Process
  • Screenshots

Build

  • GitHub
  • Report Issue
  • Request Feature

Legal

  • Privacy Policy
  • Terms of Service
  • MIT License
© 2026 Apoorv Darshan · Set in Fraunces & Manrope Volume 03 · No. 01