Privacy Policy

Hey Basil LLC · Last updated October 27, 2026

The short version

Basil is an AI calorie coach you chat with. Your journal, your plan, your conversations, and your memories are stored in a database on your phone, and in your phone's backups if you have them turned on. There is no account, and by default no server of ours stores your food diary. The two exceptions, both described below, are foods you choose to share anonymously and bug reports you choose to send.

Your data stays yours. The AI models that answer you never train on it. To answer you, Basil sends what the answer needs to an AI provider, choosing the model for each request to balance speed, intelligence, and cost. Google may keep the requests it answers, and its responses, for up to 55 days, only to detect abuse and meet legal obligations. It also sends usage analytics, which never include your conversations or health data. This policy says exactly what goes where, and to whom.

Basil is for adults 18 or older. It is not a medical device and does not diagnose, treat, cure, or prevent any medical condition.

Who we are

Basil is made by Hey Basil LLC, 522 W Riverside Ave, Ste N, Spokane, WA 99201-0581, United States. Hey Basil LLC decides how the information described here is used, which makes it the controller of that information. Our Privacy Officer is responsible for this policy and can be reached at privacy@coachbasil.app or by post at that address.

Where your data is stored

Your journal and meal entries, your plan and the details behind it, your chat history, the things Basil remembers about you, and your weigh-ins and imported health readings all live in a local database on the device. We do not receive a copy of that database, and we cannot read it, apart from the food facts you choose to share (see Optional food sharing below).

That database is part of your phone's normal backups. If iCloud Backup is on for your iPhone, or Google backup for your Android phone, the backup includes Basil's database — including readings imported from Apple Health or Health Connect. Those backups are stored by Apple or Google under their terms and controlled by you; we cannot access them. You can manage what is backed up in your phone's backup settings.

Deleting the app deletes the database on the phone, but not copies already in a backup. Settings has Export and Import if you want to keep a copy of your own.

What Basil sends, and to whom

To generate every reply, Basil sends your messages, your food photos, what you have logged, and the journal entries the model reads while working something out to OpenRouter, which routes the request to one of Basil's AI providers: the companies whose AI models write Basil's replies. Today those are Google, OpenAI, and Anthropic. Which AI providers Basil uses changes over time, and we update this list when it does. Each request passes through Basil's server, a Cloudflare Worker that forwards it to OpenRouter as it arrives and stores and logs none of it. Every request also includes your age and sex stored in your plan regardless of whether you typed them or imported them, your active custom trackers (their names, units, goals, and today's values), your latest weigh-in and body measurements (weight, body-fat percentage, height), an estimated daily energy expenditure, and the things Basil remembers about you. If you connect Apple Health or Health Connect, every request also includes your average daily steps over the last 14 days. Other connected health data is included when relevant to the answer. If you enable Basil reaching out, your name, goal, calorie and protein targets, notification preferences, recent meals, calorie and protein totals, weigh-ins, the messages you sent Basil in the last two days, the facts Basil remembers about you, and recent proactive messages are also sent to plan notifications, even when you have not asked for a reply. Basil checks every notification before scheduling it and drops any that contain numbers or health details, because it may show on your lock screen.

Basil can also look things up on the web. Search queries composed by the model are sent through OpenRouter to Exa. Web search is always on.

When you scan a barcode, the barcode number is sent to Open Food Facts to look up the product. The direct connection also exposes network metadata such as your IP address. The scanner reads the barcode on the phone with Google's ML Kit; the camera image is not sent. ML Kit sends Google device details (model and OS version), the app's identifier and version, a random per-installation identifier, and performance and error metrics, which Google uses for diagnostics and usage analytics.

When you send a bug report, it goes to a small Cloudflare Worker, which stores nothing and turns it into an issue in our private GitHub repository. By default a report includes the last 10 minutes of your conversation and the app's technical logs; you can change the conversation window or turn either off. A journal snapshot — a week of totals, your body measurements (including readings imported from Apple Health or Health Connect), your plan and the details behind it, and everything Basil remembers — is included only if you turn it on. The full assembled report is available to review before you send it. Each report carries a random identifier, created on the phone the first time you send one, so we can tell which reports came from the same phone; it is separate from every other identifier Basil uses.

Reports are kept as private GitHub issues and deleted 30 days after the problem they report is resolved, and no later than 12 months after they arrive. They are read by us and by AI coding assistants that help triage them and may propose a fix: OpenAI Codex reads each report automatically, and we also use Anthropic's Claude to work through reports. To have a report deleted, write to us at the address below.

Basil downloads app updates from Expo, the service it is built with. Checking for an update sends the app's version and platform, along with a random installation identifier Expo uses to deliver updates, and, like any download, exposes your IP address to Expo. Update checks contain none of your journal, conversations, or health data.

Your free week and subscription

Basil's coach is free for your first week and then needs a subscription. To keep track of that without an account, Basil's server keeps a small record for each phone: a device identifier (a random ID stored in the iPhone Keychain, or on Android the ID Android gives Basil alone), the time you first saved a meal or a plan, and, if you subscribe, the App Store or Google Play purchase identifier with the plan, whether it is active, whether it will renew, and when it renews or ends, which the server checks with Apple or Google, along with the random analytics identifier described under Analytics, so that renewals and cancellations Apple or Google tell us about are counted with the app's own events. If you use referrals, it also keeps your referral code, which other device used it and when, and whether that friend started logging, so it can grant and show each phone's free weeks. It is used only to run free access, referrals, and your subscription. It contains none of your journal, conversations, or health data, and no name, email, or payment details: you pay Apple or Google under their terms, and we never see your card.

The device identifier travels with the requests that need it: coach requests, so the server can check your free week or subscription, and referral and subscription requests. When you subscribe, Basil also attaches it to the purchase itself, as the App Store or Google Play account reference, so a support question or refund can be matched to the right phone. On Android, if you installed Basil from a friend's invite link, Basil reads the invite code from Google Play's install information so the invite counts without your typing it. It reads only that code.

The record stays after you delete the app or use Delete all data. This includes referral links and progress, because that is what lets a subscription and referral rewards carry over to a reinstall or a new phone and keeps free access to one offer per phone. To have it deleted, write to us at the address below.

Retention and training by AI providers

No AI model that answers you is trained on your requests. Every request Basil sends asks OpenRouter to route only to providers that do not train on inputs (its data_collection: deny setting), and OpenRouter does not use your requests for training either. OpenRouter does not store what your requests contain. It keeps metadata about each request, such as its size, cost, and timing, and may categorize a small sample of prompts anonymously; its policy is at openrouter.ai/privacy.

When Google answers, it is usually through the paid Gemini API under Basil's own Google account. Google's terms for that service say it does not use prompts or responses to improve its products. Google keeps those requests and responses for 55 days, only to detect abuse and meet legal obligations, and authorized Google employees may review requests and responses that its safety systems flag. Those copies may be stored in any country where Google has facilities, and Google handles them under its data processing terms. If Basil's account is unavailable, OpenRouter sends the request to Google through its own Google Cloud account, which OpenRouter lists as keeping nothing. Every other AI provider is reached only through endpoints that keep nothing (OpenRouter's zdr setting). Any provider may hold a request briefly in memory while answering it.

Web search is the exception: OpenRouter's training and retention controls do not extend to plugins and tools, so anything sent to Exa is governed by Exa's terms. Web searches go to Exa, which may use search queries to improve its service, including training its models. Basil is instructed to write search queries about foods, brands, and restaurants, not about you, but a query can still reflect what you asked.

We do not sell your information, including covered information under Nevada law, and none of it is used for advertising.

Where your information is processed

Hey Basil LLC is in the United States. The companies Basil sends information to (Apple, Cloudflare, OpenRouter, the AI providers listed above, Exa, Open Food Facts, Google (ML Kit), Statsig, GitHub, and Expo) process it in the United States and other countries where they operate, so if you use Basil outside the United States, what Basil sends leaves your country. Each handles it under its own data protection terms, with safeguards such as Standard Contractual Clauses, or certification under the Data Privacy Framework where the company takes part. Write to us for a copy of the safeguards that apply to what you send.

Health data (Apple Health and Health Connect)

Basil automatically syncs weight, body fat, height, activity (steps, distance, exercise, and calories burned), and sleep from your phone’s health app: Apple Health on iPhone, Health Connect on Android. On iPhone, Basil also reads your date of birth and biological sex to personalize onboarding, reads workout sessions automatically to calculate daily exercise totals, and reads workout details for a date range when you ask. It reads nothing else.

This health data is included in what Basil sends to AI providers through OpenRouter to generate your replies. They never train on it, and it is never used for ads or sold. Google may keep requests and responses containing it for up to 55 days, only to detect abuse and meet legal obligations.

Turn this off at any time with Disconnect in Settings. You can also change what Basil may read in the Health app on iPhone or in Health Connect on Android.

Basil only reads from Apple Health — it requests authorization with an empty write set and never saves anything back. Imported readings are stored in Basil's database on the device, which is included in your phone's backups as described above.

Optional food sharing

Help Basil learn and grow is optional and off until you turn it on. When it's on, Basil sends us the foods you logged on each finished day: names and other common names, the kind of food, portions and their weight or volume, calories, protein, carbs, fat, fiber, saturated fat, sugars, sodium, alcohol percentage, the meal (breakfast, lunch, and so on), the dish a food was part of, the brand or restaurant and the restaurant's city, the barcode, and where the numbers came from, including Basil's explanation and the web pages it used. Anything that looks like contact details is removed first.

It never sends your messages, photos, notes, when you ate, your weight, health data, your plan, or any identifier for you or your device. The foods reach us through Cloudflare, which hosts our server and, like any web host, sees your IP address; we don't store it with the foods. Each food is stored with only the day it arrived, in no particular order. The foods of one dish, like the eggs, muffin, and cheese of a breakfast sandwich, share a random number so the dish can be shown whole; it links them to each other and to nothing else, so nothing in the stored foods ties them back to you. We use these foods to improve Basil's estimates and to grow Basil, for example by publishing food information online.

You can turn it off anytime in Settings, and nothing more is sent. Foods already shared carry nothing that ties them to you, so we can't find them to delete them.

Product analytics and reliability

Basil sends product-usage and basic reliability events to Statsig automatically. Analytics is always on in configured production builds and has no in-app switch. Events measure app visits, feature use, health-service connection status, weigh-in and plan-save actions, weekly-review starts, notification frequency and opens; how long Basil takes to reply: timings, the number of steps a reply took, how many tools it used and whether one of them read your health data or searched the web, request size, how many messages and photos the conversation holds, and which AI model answered; and what each AI reply and each check-in plan cost to run: the AI model, token counts, dollar cost, the kind of message, whether it succeeded, whether you had a plan yet, and how many days since you started; and your subscription: views of the plans screen, purchase attempts and their outcome, and which plan you are on and its list price, with when it starts, renews, changes, is cancelled, is refunded, or ends. These are counts, durations and categories. They do not include your conversations, photos, weight or other health measurements, plan contents, or notification text.

Statsig receives a randomly generated persistent identifier, event times, app/build version, operating system, hardware model, locale, and technical failure categories. Direct connections also expose your network IP address to Statsig, which uses it to estimate your country so we can see where Basil is used; we never use it to find your precise location. The random identifier lets us estimate repeat use and retention; it is separate from the identifier used for support reports and is not your name. It is included in a Basil export, so when you import your data on another phone, Statsig sees the same identifier there. A subscription event Apple or Google tells us about before the app has reported that purchase is sent under a separate pseudonymous identifier, derived from the purchase with a secret key only we hold. This data is pseudonymous, not fully anonymous.

Basic JavaScript crash reporting sends a minimal failure marker on the next app launch. It does not upload crash-log contents, error messages, or stack traces. The Disconnect control above stops health-data sharing with the coach; it does not disable product analytics.

How long information is kept

Your journal, plan, conversations, memories, and health readings stay on your phone until you delete them, use Delete all data, or delete the app; copies in your phone's backups follow your backup settings. AI providers keep nothing after answering, except Google, which may keep requests and responses for up to 55 days. Bug reports are deleted 30 days after the problem they report is resolved, and no later than 12 months after they arrive. Statsig keeps product analytics from the app and this website while we use Statsig to understand how Basil is used, and website session recordings for 30 days. Analytics carry no name or contact details. App analytics may be linked to the purchase record if you subscribe, as described above; website analytics are not linked to your beta signup. Google Analytics keeps website data for no longer than 14 months. The free-week and subscription record is kept until you ask us to delete it, because it is what carries a subscription to a new phone. The beta list keeps your email address until you ask to be removed or the beta ends. Search queries sent to Exa are kept under Exa's terms.

Your choices

Withdraw consent for sharing with the AI at any time with Stop sharing with the AI in Settings. Basil returns to its first screen, clears the conversation history it sends to the AI, and sends nothing further until you accept the disclosure again; your journal, plan, and memories stay on the device.

Withdraw consent for health sharing at any time with Disconnect in Settings, which purges the health data Basil imported and clears Basil's local AI request history so those readings are not sent again. Copies Google holds for abuse monitoring are deleted after 55 days, and we cannot delete them sooner. You can narrow or revoke what Basil may read in Apple Health or Health Connect directly.

Export your data as a file from Settings → Export; food photos are not included. Delete all data in Settings erases your journal, plan, conversations, memories, and imported health readings from the device. Deletion does not remove copies in your phone's backups, bug reports you have already sent, or the free-week and subscription record described above. To have a report deleted, write to us at the address below.

Depending on where you live, you may have the right to access, correct, or delete your information, to receive a copy of it, to restrict or object to how we use it, and to withdraw consent. Most of it is only on your phone, where the controls above do this directly. For what we hold, such as the free-week and subscription record, bug reports, or the beta list, write to us.

To ask a question about this policy, or to make a request about your information, write to privacy@coachbasil.app. We respond within 20 days, and you can appeal a refusal by replying to our response. You can also complain to your data protection authority, such as the supervisory authority where you live or work in the European Union or EEA, the Information Commissioner's Office in the UK, the Office of the Privacy Commissioner of Canada, the Office of the Australian Information Commissioner, the Privacy Commissioner in New Zealand, or the Personal Data Protection Commission in Singapore.

The beta list on this website

If you join the beta on this website, we keep your email address, phone platform, signup time, which signup form you used, and when you were invited for each phone platform in a Cloudflare database. If you follow a referral link, we also record which link led to your signup so we can prioritize invitations. We do not store your IP address or browser information with your signup. We use your address only to invite you to test Basil and to email you about the beta, and we never sell it or share it for advertising.

The optional referral program gives you a share link and counts new signups through it. We store the link's connection to your signup and a hashed private token for checking its progress. Referrers see counts, not their friends' email addresses. First-party cookies remember the referral link you followed and let you return to your own link's progress for up to 30 days. The cookies are not used for advertising or cross-site tracking. Deleting your signup also removes its share links and referral associations.

Inviting you means giving that address to Apple (TestFlight) or Google (Google Play testing), whose own terms then apply. To be taken off the list, write to privacy@coachbasil.app and we will delete your address.

Analytics on this website

This website sends page views, clicks, and session recordings to Statsig so we can see how visitors use it. Statsig stores a random identifier in your browser to count repeat visits, and receives your browser type, screen size, the pages you view, and your network IP address. Session recordings capture what the page showed and where you clicked, with everything typed into forms masked, so they never contain your email address. None of this is linked to your beta signup, and it is not used for advertising.

This website uses Google Analytics to count visits and see which pages people read. Google Analytics sets first-party cookies with a random identifier, and receives the pages you view, how you arrived, your browser and device type, and your approximate location from your IP address. It does not receive your email address or anything you type into the signup form. Google processes this data under its own privacy policy; you can block it with a content blocker or Google's opt-out browser add-on. The Basil app does not use Google Analytics.

Children

Basil is not directed to children and is intended only for people 18 or older. We do not knowingly collect information from children.

Changes to this policy

If this policy changes in a way that affects what Basil sends or to whom, we will update this page and the date above, and where the change is material we will say so in the app.