Halite
Open App

Privacy Policy

Effective date: October 16, 2026

Halite is a recipe management application available at app.halite.cc, operated by HALITE LLC, a Michigan limited liability company ("Halite," "we," "us," or "our"). We take your privacy seriously. This Privacy Policy explains what information we collect, how we use it, and the choices you have.

By using Halite you agree to the collection and use of information in accordance with this policy. If you do not agree, please do not use the service.

1. Information We Collect

1.1 Account Information

When you create a Halite account you provide an email address and password, or sign in with Google. We also store a display name derived from your authentication provider (e.g., your Google profile name). This data is processed and stored by Google Firebase Authentication. When you accept the Terms of Service, at sign-up or when we ask you to, we also record which version you accepted and when.

If you arrived at Halite from a tagged link, an advertisement or another website, we also keep with your account where you came from: the campaign labels on that link; any advertising click ID on it (a code that Google Ads or Microsoft Ads adds to the links of their ads); the address of the page that referred you (without any search terms or other query text); the page on halite.cc you first landed on; when you first arrived; which entry point you came in by (for example sign-up, a try-it tool, the recipe clipper, the browser extension, or the Mealime importer); and, if you came from a shared recipe or collection, which one. We use this to measure which channels bring people to Halite and whether those people go on to use it. It is recorded once, when the account is created, and never updated afterwards.

If you came from a Google or Microsoft ad, we may send that ad platform the click ID from your ad and the time you created your account, so it can count the ad as having led to a sign-up. We do not send your name, email address, recipes or any other account details. When you sign up from an ad, Halite checks roughly where you are, from your device's time zone and, where available, the country your connection comes from, without storing either. If that shows you are in the UK, the European Economic Area or Switzerland, we do not keep the click ID at all, so it is never sent.

While you browse halite.cc, your browser keeps the campaign labels, click IDs, referring page, landing page and first-arrival time in its own storage for up to 30 days, so they are not lost if you come back before signing up. When you tap through from halite.cc to the app they are added to the link's address. Clearing your browser's site data removes them.

If you add a passkey, we store the passkey's public key, a usage counter, the kind of authenticator it is (for example, the identifier of the password manager or device that created it), whether it is synced, and when it was created and last used. Your device keeps the private key; we never receive it or any biometric data.

1.2 Recipe & Library Content

Any recipes you import, create, or edit — including titles, ingredients, instructions, images, nutrition estimates, allergen flags, labels, ratings, difficulty tags, and personal notes — are stored in your account. This also includes shopping lists, pantry items, prep-tray selections, collections, meal plans, and the dates you mark a recipe as cooked.

If you use the meal log, the foods you log, their portions and nutrition values, and the dates you log them are stored in your account. When you scan a barcode or search for a packaged food, only the barcode number or your search text is sent to the public food databases listed in Section 3 — never your name, email, or account. If you photograph a nutrition label, the photo is read by our AI vision provider to extract the values. When a label read for a barcode is checked and added to our shared food catalogue, only the product's nutrition facts are copied there; nothing identifying who scanned it is stored with it.

For planning, we also store how many people you cook for (and any per-meal override you set), which recipe collections you want suggestions from, and which lunches are leftovers of a dinner. We use these to size suggestions, shopping lists and portions. If you set allergen preferences, we store them with your account and use them to flag recipes and to filter suggestions ("Safe for me").

Aisle suggestions. When you change the aisle of an item on your shopping list, or the category of an item in your pantry, Halite saves your choice with your account so your lists keep using it. It also saves the item name and the aisle you chose, together with your account ID, as a suggestion. Once at least two different people have suggested the same aisle for the same item, an automated check by two of the AI providers in Section 3 (Groq and Google Gemini) looks at it; they are shown the item name, the aisles involved and how many people suggested it, never who. The Halite team reviews the ones the check is unsure about. Approved suggestions become the default aisle for that item for everyone. If you delete your account, your suggestions that are waiting for review, deferred, or rejected are deleted, and approved ones stay as a shared default (an item name and an aisle) with your account ID removed.

Health-related information. Your meal log, allergen preferences and dietary labels can reveal things about your health or diet. We collect them only because you use those features, use them only to provide those features to you, never use them for advertising, and share them only as described in this policy. Halite is not a medical service, and its nutrition and allergen information is an estimate, not medical advice.

Until you verify your email address, you can import one recipe by link; we record that this one import has been used.

1.3 Usage Counters & Product Analytics

We keep counters tied to your user ID to enforce service-tier limits (for example, recipe imports and AI edits per day) and to record the cost of the AI requests you make.

We also record which features you use and on which days — for example, that you imported a recipe by link, used the meal planner, or generated a shopping list on a given date — and the days you open the app, with the time you were last active. These records hold feature names, counts, dates and times only; they never contain recipe text, notes, or anything you typed. We use them to understand which parts of Halite are used, to decide what to improve, and to show when an account was last active. They are stored with your account and are deleted when you delete it.

Calls an AI assistant makes through the connector (section 1.10) count here too. Every tool call, including one that only reads your data, adds to the count for the connector and marks that day as one on which you used Halite. Tools that change something (for example your shopping list, pantry, meal plan or meal log) also add to the counts for that feature. Reading tools change none of your content, but each call still records this usage count and the diagnostic record described in section 1.10.

The operator of Halite can see, for an individual account, its email address, display name, how it signs in and when, its plan, whether it has been suspended, its number of recipes, these usage counts (including which features it used on which days over the last 30 days), which feature tips it has seen or dismissed, when it accepted the Terms of Service, and the cost of its AI requests. This view is used to support you, investigate problems, and prevent abuse. It does not show your recipe content, except the step corrections described in section 1.15. We also get an email each time a new account is created, with its email address, display name and campaign label (section 1.1).

When our team changes an account (for example its plan, suspending it, or resetting its password) we keep a record of that action: the account's email address and user ID, what changed, a short reason if the team member gave one, and when. These records are kept after an account is deleted.

1.4 Uploaded Images

When you upload a photo — for a recipe, to clip a printed recipe page, or as a user image — it is stored in Google Cloud Storage and associated with your account. AI-generated recipe images are similarly stored.

1.5 Device & Browser Data

Halite remembers your interface preferences in three different places:

  • In cookies. Your view mode (grid, compact grid or list) and your sort order are saved in two small cookies. Your browser sends them with page requests, so the page loads the way you left it (section 1.6).
  • With your account. Your home-screen tile layouts, your "Measure as you go" switches, and which feature tips you have seen or dismissed are saved with your account, so they follow you from one device to another. They are deleted when you delete your account.
  • In your browser's local storage only. Other interface settings (such as your primary nutrition metric and measurement system, and some notices you have dismissed), drafts of an import you have not sent yet (kept for up to 24 hours), and the campaign labels kept by halite.cc (section 1.1) stay on your device. They are not sent to our servers.

1.6 Cookies

The app at app.halite.cc sets four first-party cookies, all strictly for running the service:

  • __session — a secure, HTTP-only cookie that authenticates your requests after you sign in. It expires after 14 days, or sooner if you sign out.
  • halite_returning — records only that this browser has signed in to Halite before, so the login page opens on "Sign in" rather than "Sign up". It holds no account information, lasts about 13 months, and is removed if you delete your account.
  • halite_view_mode — remembers whether you view your library as a grid, compact grid, or list, so the page loads in that layout. It lasts one year.
  • halite_sort_mode — remembers how you sort your library, so the page loads in that order. It lasts one year.

We do not use any advertising or third-party tracking cookies, and our website analytics (section 1.8) set no cookies at all.

1.7 Halite Browser Extension ("Clip to Halite")

The optional Clip to Halite Chrome extension is the companion to the Halite web app. It is used to save a recipe from the webpage you are currently viewing into your Halite library. The extension only acts on pages where you explicitly click its toolbar icon — it does not run in the background, does not read pages you have not opted into, and does not track your browsing.

The extension also works without a Halite account ("free mode"). When you click its icon while no access token is configured, the extension reads the visible text and URL of the current page and opens the recipe-clipping page at halite.cc/clip with that content, where it is sent to our clipping service to extract the recipe. The extracted recipe is displayed to you and is not stored on our servers unless you choose to create a share link for it. If you do, the recipe as it stands at that moment (title, servings, source URL, ingredients, and steps) is stored so that anyone with the link can read it, and is deleted automatically 180 days after the link is created. Nothing identifying you is stored alongside it — no account, no IP address — and because the link is not tied to an account there is no way to revoke it early; it simply expires. Apart from share links you create, in free mode we retain only transient rate-limit counters (keyed by IP address) and aggregate usage metrics (route, outcome, and AI token counts — never page content). Free mode is limited to a fixed number of clips and AI edits per day.

When you install and use the extension with a Halite account, the following data is handled:

  • Personal access token. When you connect the extension, either with one click from your Halite Settings page (the token passes only from app.halite.cc to the extension in the same browser) or by pasting a token you generated there, the token is stored locally in the browser's extension storage (chrome.storage.local). It is sent with each clip request to authenticate you to your Halite server and is never transmitted to any third party. You can connect up to ten browsers; for each one we store a label (the browser and operating system, read from its user-agent) and when it was last used, so you can see and sign out each browser separately in Settings.
  • Halite server URL. The URL of your configured Halite server (defaults to https://app.halite.cc) is stored locally alongside the token so the extension knows where to send clips.
  • Current page URL. When you click the extension icon, the URL of the page you are on is sent to your Halite server so the recipe can be attributed to its source and, where possible, re-fetched or enriched.
  • Visible page text content. When you click the extension icon, the extension reads the visible text of the current page (via document.body.innerText, with site-specific handling for Reddit posts and comments) and sends it to your Halite server so the recipe can be extracted. This only happens on the single page you explicitly clip.
  • Pasted text (fallback). If a site blocks automatic scraping, the extension shows a fallback dialog where you may paste recipe text. That text is sent to your Halite server.
  • Uploaded screenshots (fallback). The fallback dialog also lets you attach up to six screenshot images of the recipe. These images are sent to your Halite server and, as described in Section 3, may be processed by our AI vision provider (Google Gemini) to extract the recipe text.

Page URL and page text content are used solely to produce the clipped recipe and are stored against your account using the same protections as any other recipe in your library. The extension does not send data to any server other than your configured Halite server. The extension's source code is bundled with the published package — it does not load or execute any remotely-hosted code.

1.8 Website Analytics

We use Cloudflare Web Analytics to understand how many people visit and which pages they use. It is a privacy-first, aggregate-only service: it sets no cookies, does not fingerprint your device, and does not track you across other websites. What it records is the page address, the referring website if you arrived from a link, your country, browser, operating system, device type, and how quickly the page loaded.

It runs on our public pages only: the halite.cc website, and the pages of recipes, cookbooks (collections) and meal plans that someone has chosen to share with a public link. It does not run inside the signed-in app — we do not send your navigation through the app to any third party.

Shared recipe and cookbook links. When someone opens a public recipe or cookbook link, the page also adds one to that link's anonymous view count (and one more to a separate count if they tap Save, where we note only whether they were signed in). If a signed-in person then saves what was shared to their own library, the link's save count goes up by one. These counts hold nothing that identifies the visitor: no account, no IP address and no browser details are stored with them. They are kept without an expiry, so we can see how shared links are used, and they stay even if the link is later turned off or the account that shared it is deleted, because the counts on their own identify no one. While a link exists, our team can see its counts next to the email address of the account that shared it, together with how many accounts were created from the link (section 1.1) and how many of those went on to use Halite. We use this to see which shared links bring new people to Halite.

To avoid counting a reload twice, your browser keeps a timestamp for each shared recipe or cookbook link you open. It stays on your device and is never sent to us, and while it is under 30 minutes old, opening the same link again is not counted. Clearing your browser's site data removes it. The request that carries the count is an ordinary request to our servers, so it also appears in the server logs described in section 1.12.

Do Not Track and Global Privacy Control. On shared recipe, cookbook and meal-plan pages, if your browser sends a Do Not Track or Global Privacy Control signal, the Cloudflare Web Analytics script is not loaded at all. On shared recipe and cookbook pages, that signal also stops the view and save counts described above (and the timestamp that goes with them). This applies to those shared pages only, not to the halite.cc website.

On halite.cc we additionally record a count each time one of the "open the app" links is clicked, noting only which link on the page it was and which campaign or referring source brought you there. This tells us which part of the page is useful. It sets no cookie and stores no identifier.

The halite.cc home page has a "Got a question?" helper. When you ask it something, the text of your question is sent to Anthropic (Claude) to write an answer from the words on our page. We keep a record of the question itself, the answer it was given, whether it could be answered, and which part of the page the answer came from, so we can see what people want to know and fill the gaps on the page. We store no IP address, cookie or other identifier with it, so please don't type personal details into it.

Apart from the shared-link counts that our team sees next to the account that shared the link (described above), none of the analytics described in this section is linked to an account, combined with recipes, or used to build a profile of a visitor. We cannot identify a visitor from it, and it is never sold or shared for advertising. (The campaign labels saved with a new account at sign-up are a separate thing, described in section 1.1.)

1.9 Sign-in Trouble Reports

If you cannot sign in, the login screen lets you send us a report without an account. You provide an email address so we can reply, and a description of what happened. The report also carries technical details that help us diagnose it: your browser and device type, screen size, whether the app was installed to your home screen, which app version was running, and any error messages the page recorded on that visit. It contains no password and no recipe content. It is delivered to us as an email and is not linked to any account.

1.10 AI Assistant Connectors (ChatGPT, Claude, and other MCP clients)

You can optionally connect Halite to an AI assistant such as ChatGPT or Claude through Halite's connector (a Model Context Protocol, or "MCP", server at app.halite.cc/api/mcp). Nothing is shared with an assistant until you connect it yourself and approve access on Halite's consent screen.

What we store when you connect.

  • The assistant's registration — the name the assistant gives itself (for example, "ChatGPT") and the addresses it asks us to redirect to after sign-in. This does not identify you.
  • The grant you approve — which assistant you connected, what it was allowed to do, when you connected it, and when it was last used, stored with your account.
  • Access tokens — stored only as one-way hashes. A sign-in code is valid for 60 seconds, an access token for 1 hour, and a refresh token for 30 days from its last use. A connection unused for 30 days stops working on its own.
  • A diagnostic record of each tool call — kept only to run and troubleshoot Halite. It shows which tool ran, whether it succeeded (and the kind of error if not), how long it took, the names (not the values) of the optional settings the assistant used, and counts such as how many results came back. If the tool used the AI providers in Section 3, it also notes which provider answered, how long that took, how much text it handled (a count, not the text), and, if an attempt failed or was retried, a short note of up to 200 characters taken from the provider's error message. For a link import it adds the website address of the page, without anything after a "?" (so no search terms), how long the page's text was, and a short one-way fingerprint of that text. These records are not built from your recipe text, notes or search words. They are deleted automatically about 7 days after they are made, or when you delete your account, except any copied into a bug report you send (section 1.11).

What each tool receives and returns. When the assistant calls a tool, Halite receives the inputs the assistant sends and returns the data shown below to that assistant. Tools act only on the account you connected. Tools that only read your data change none of your content, but every tool call still counts toward the usage described in section 1.3 and creates the diagnostic record described above.

Tool Halite receives Halite returns to the assistant
whoami Nothing Your email address and display name
search_recipes Search text, a label name, how recently cooked (or never cooked), sort order, how many results to return, and optional limits on total time, allergens, calories and protein Matching recipes: title, short description, labels, rating, total time, servings, link, and per-serving calories, protein and allergens. The last-cooked date and times cooked are included only when the search filters or sorts by what you've cooked. If a very large collection was only partly searched, the result says so.
get_recipe A recipe ID, and optionally whether to include your cooking notes The full recipe: title, a link to open it in Halite, description, source name and web address, servings, times, ingredients and steps (with their section headings and any per-step amounts), nutrition, allergens, equipment, labels, linked sub-recipes, last-cooked date and times cooked. Photos are not sent. Your own cooking notes (up to 20, newest first) are included only when the assistant asks for them (for example, "what did I change last time?").
list_labels Nothing Your label names and colours
get_shopping_list Optionally, which shopping list (by name) The list's name and its items (name, quantity, aisle, and whether each is ticked off). It says so when the list was cut short.
get_pantry Nothing The items in your pantry (name, quantity and category). It says so when the list was cut short.
add_shopping_items Item names and quantities, and optionally which list (by name) How many items were added, how many were merged into items already on the list, the list's name, and any items you already have in your pantry. Adds to your list (a "Groceries" list is created if you have none and none is named); never removes anything.
add_recipe_note A recipe ID and note text Confirmation with the note's ID. The note is saved to that recipe.
create_recipe Recipe content written by the assistant: title, description, ingredients (with sections), steps, prep and cook times, servings, and optionally existing recipes of yours to link as components The new recipe's ID, title and link, how many labels were applied, a note on whether nutrition was estimated, and (if components were linked) how many. The recipe is saved to your library without a photo. Halite works out its allergens and equipment from the recipe text; for accounts with a verified email, labels are suggested and nutrition is estimated by the AI providers in Section 3, as described in Section 2.
update_recipe A recipe ID and the fields to change (title, description, ingredients, steps, times, servings, or linked component recipes) The recipe's ID, link and new version number, with a note on nutrition. A new version is saved; earlier versions remain in the recipe's history. If the ingredients or servings changed, nutrition is estimated again by the AI providers in Section 3 (unless you entered it yourself), and the allergens and equipment of this recipe, and of any recipe that uses it as a component, are re-checked.
update_recipe_labels A recipe ID, labels to add or remove, and optionally permission to create labels that don't exist yet The recipe's resulting labels, any new labels created, which names were matched to a label you already have, and any names too close to an existing label to use without asking you
get_recipe_versions A recipe ID, and optionally how many versions to return The recipe's saved versions, newest first: number, date, title, the change summary saved with that version, and which one is current
revert_recipe_version A recipe ID and a version number Confirmation with the version number and title. That version becomes the current one; later versions stay in the history.
mark_recipe_cooked A recipe ID and optionally a date The recipe's last-cooked date and times cooked. The cook date is saved to its history, and the recipe moves to the top of your recently worked recipes.
rate_recipe A recipe ID, a rating (0 to 5) and/or a difficulty (easy, medium or hard) The saved rating and/or difficulty. It replaces the earlier one; whichever you leave out stays unchanged.
duplicate_recipe A recipe ID and optionally a new title The new recipe's ID, title and link. The recipe's current version, with its photos and labels, is copied into your library as a new recipe; its notes, rating, cooking history and earlier versions are not copied. The original is unchanged.
get_meal_plan A date range (up to 31 days) Each planned day's name and its recipes: title, meal, link, how many people it's for, and whether a lunch is leftovers from a dinner
propose_meal_plan A start date, optionally an end date (up to 7 days in all), a meal (breakfast, lunch or dinner; dinner if left out), and whether to suggest from your recipes, Halite's collection, or both Suggested recipes for open dates (dates that already have a dinner planned are skipped), with titles, times, ratings and source credit. They are picked by Halite's own matching, not by an AI model, and nothing is added to your plan.
add_to_meal_plan A date, optionally a meal (dinner if left out), and a recipe ID (or a suggestion's collection ID) The new plan entry (ID, recipe, date, meal and link). A collection recipe is first copied into your library (once), as it is when you plan it in the app, with a "Halite collection" label; it may also be given labels automatically in the background, using the AI providers in Section 3 as described in Section 2.
update_meal_plan_entry A plan entry ID and a new date and/or meal The entry's ID with its new date and meal
remove_from_meal_plan A plan entry ID Confirmation. The entry is removed from your plan.
get_meal_log A date range (up to 31 days) Each day's logged foods by meal (name, servings, and nutrition) with daily and overall totals
log_food A date, a meal (breakfast, lunch, dinner or snack), and either a recipe ID (with optional servings) or a short description of what you ate (up to 500 characters) The new meal-log entry with its nutrition and the day's new totals. A description is estimated by our AI providers (Section 3), as when you describe a meal in the app; that needs a verified email address and counts toward a daily limit on AI estimates.
update_meal_log_entry An entry ID and new servings, date, meal and/or name The updated entry (its nutrition is rescaled if you change the servings)
delete_meal_log_entry An entry ID Confirmation. The entry is permanently deleted.
copy_meal_log A source date, one or more target dates, and optionally one meal, specific entries, or a different meal to copy into How many entries were created on each target date, with that day's new totals, and how many requested entries weren't on the source date. Entries are copied exactly, with no new AI estimate.
list_shopping_lists Nothing Your shopping lists' names, how many items each holds, and how many are not yet ticked off
add_recipe_to_shopping_list A recipe ID, optionally a list name and servings The list's name, how many items were added or merged, and which you already have in your pantry. If you have no lists and none is named, a "Groceries" list is created.
check_shopping_items Item names, checked or unchecked, and optionally a list name How many items changed, and any names not found
remove_shopping_items Item names, or a request to clear checked items or the whole list, optionally a list name How many items were removed, and any names not found
update_pantry_items Item names with optional quantity and category The names of the pantry items that were added and of those that were updated. If an item with that name is already in your pantry, the quantity or category you give replaces the old one.
remove_pantry_items Item names How many pantry items were removed, and any names not found
import_recipe_from_url A web address, and optionally the page's text (when Halite can't fetch the page itself) and which recipe on the page to import The imported recipe's ID, title and link, the IDs of any further recipes imported from the same page, and a warning if Halite's checks flagged the result as possibly inaccurate. Halite fetches that public page (and, for videos, its public transcript or media) and uses the AI providers in Section 3 to extract the recipe, exactly as when you import a link in the app. If the assistant sends the page's text instead, Halite does not fetch the page and sends that text to the AI providers in Section 3. (Text sent with a YouTube link or a Pinterest pin link that leads to a recipe page, or text that is very short, is ignored and the page is fetched as usual.) If a page holds several recipes and none was chosen, no recipe is saved to your library: the result lists their titles so the assistant can ask which one to import. At most 12 recipes are imported from one link. Through the connector, Halite never asks an AI to generate a photo for the recipe; it keeps the page's own photo when it can.
submit_feedback Your feedback text, its type, an optional short title, optional steps to reproduce as you described them, and an optional link to the Halite recipe it is about The report number. The report is handled as described in section 1.11. It goes with your email address, your user ID, the assistant's name, and the diagnostic records kept for your recent AI requests and assistant tool calls.

Who receives the data. Whatever a tool returns is sent to the assistant you connected, and from then on it is handled by that assistant's provider under their own privacy policy — for example OpenAI for ChatGPT or Anthropic for Claude. Halite does not send your data to an assistant you have not connected, and does not receive your conversations with it beyond the tool inputs listed above.

Your controls. You can see and disconnect every connected assistant at any time under Settings → Connected apps. Disconnecting deletes that connection's tokens immediately, and the assistant can no longer reach your account. Halite keeps a record that the connection existed (the assistant's name, what it was allowed to do, and when it was connected and last used), marked as disconnected, until you delete your account. Resetting your password or deleting your account also disconnects every assistant (an access token already issued expires within the hour). Anything an assistant saved into your library (a new recipe, a note, a shopping item) stays until you delete it, like anything else you saved.

Separately, a recipe page in the app offers "Ask Claude", which opens the Claude app with a suggested message naming that recipe. Nothing is sent until you review and send that message yourself in Claude.

1.11 Bug Reports & Feedback

When you are signed in and use Report Issue (or ask a connected assistant to send feedback), we receive what you write, your email address, and your user ID so we can follow up. A report sent from the app also carries technical details to help us reproduce the problem: the app version, your browser, device, and screen size, the recent screens and actions in that browser tab, the recent requests the app made to Halite with their results and any error messages, errors recorded in the browser console, and the state of the page you were on (scroll positions, which panels were open, and counts or switches such as a filter setting). These can include the titles or addresses of recipes you had open. You can also attach up to four screenshots; please avoid including anything you would not want us to see.

A report also includes the diagnostic records Halite keeps for your recent AI requests and assistant tool calls (sections 1.10 and 1.12). They show which step or tool ran, whether it worked, how long it took, and, for an import from a link, the website address of the page without anything after a "?". A report sent by a connected assistant has none of the browser details above and no screenshots; it carries the assistant's name, plus the steps to reproduce the problem and a link to the Halite recipe if the assistant included them. Diagnostic records are normally deleted about 7 days after they are made, but once they are copied into a report they are kept with the report instead.

Reports are filed in Halite's private issue tracker hosted by GitHub, and a copy is emailed to our support inbox so we can reply. Attached screenshots are stored in Google Cloud Storage at an unguessable link, so that the tracker can display them; anyone who has that exact link can open it. Reports are kept until the issue is resolved and for our records afterwards. Deleting your account does not delete reports you sent. You can ask us to delete a report, its screenshots and the diagnostic records copied into it at any time (Section 6); email us (Section 10).

1.12 Server Logs & Security

Our servers keep operational logs of requests to diagnose errors, measure reliability, and detect abuse. Each entry records your user ID, the kind of request, its outcome, and timing; recipe text, notes, and AI prompts are shortened or removed before logging. Logs are deleted automatically after 30 days. Our hosting provider also records standard request data (such as IP address and browser type) in the same logs.

If the app hits an unexpected error in your browser, it automatically sends us the page address, the error message and where in our code it happened, and your browser type, so we can fix it. These reports go into the same logs and are deleted after 30 days.

To prevent abuse, we keep short-lived request counters keyed by your user ID (or, when you are not signed in, by your IP address). They hold only a count and a time window.

When you use an AI feature while signed in, we also keep a diagnostic record of the request, stored with your account. It shows which step ran, which provider and model answered, whether each attempt worked (with a short note of up to 200 characters from the provider's error message if one failed or was retried), how long it took, and how much text went in and out as a count. For an import from a link (including page text sent with it by the browser extension or an assistant) it also holds the website address of the page without anything after a "?", the length of the text, and a short one-way fingerprint of it. These records are not built from your recipe text, notes or search words. Each one is deleted automatically about 7 days after it is made, or when you delete your account, unless it is copied into a bug report you send (section 1.11). Assistant tool calls leave a similar record (section 1.10).

1.13 Sharing and Collaboration

When you create a public link to a recipe, collection, or meal plan, anyone with the link can see that content and your display name, shown as the person who shared it. When you invite a collaborator to a recipe by their email address, they can see and edit that recipe. You can turn off a public link or remove a collaborator at any time, and doing so ends their access.

1.14 Purchases

Paid plans and passes are sold through our online reseller Paddle.com, which is the Merchant of Record for every order. Paddle collects your payment details, billing name, email address, country and postal code directly; we never see or store your card number. Paddle tells us what you bought so we can turn it on for your account, and we keep that purchase record (product, price paid, currency, date, order and customer IDs, and any refund) linked to your account. Paddle handles your payment data as an independent controller under its own privacy policy.

1.15 Step Corrections

When you change which ingredients or amounts a recipe step shows, update an amount in the ingredient list from a step, add an ingredient from a step, or tell us something is missing, we keep a record of that correction with your account: the step's text, the ingredient, the amount shown before and after, any note you typed, and the website the recipe came from (its address only, not the page). The operator of Halite can view these records across accounts, without your name or email address, to improve how Halite matches ingredients to steps and how it imports recipes. A weekly summary with short excerpts (up to 120 characters of step text, and no names, email addresses, or user IDs) is filed in our private issue tracker and emailed to our support inbox. Records are deleted when you delete your account; summaries already filed are kept like bug reports (section 1.11). You can turn off Measure as you go in Settings at any time.

2. How We Use Your Information

We use the information described above to:

  • Provide and operate the service — storing your recipes, syncing them across your devices, rendering your library, and turning on the plan or pass you bought (section 1.14).
  • Process AI requests — when you ask Halite to edit a recipe, estimate nutrition, detect allergens, generate a photo, or clip from a URL (for a video link, its public captions or transcript and, when those aren't enough, the video itself), from browser-extension page content, or from an image, we send the relevant recipe data to third-party AI providers (see Section 3). When you describe a meal for your meal log, we send that description. When you ask Halite to plan your meals, we send your request and, for the recipes it may choose from, their titles, labels and when you last cooked them, plus any names you gave to plan days. When you save or import a recipe, we send its title, description, ingredients, nutrition and timing, and your existing label names, so it can suggest which of your own labels fit. When Measure as you go fills in step amounts (automatically when you add a recipe, or when you tap Fill in amounts), we send the recipe's ingredients and steps. Files and screenshots that can't be read on your device (for example a recipe photo, or a text, JSON or saved-page file from another app) are sent to the AI providers in Section 3 to be read. After a recipe is read from text (a web page, pasted text or a video transcript), Halite may also send that text and the recipe it produced to Google Gemini to check the result for mistakes. To match the ingredients and meals you enter to nutrition data, we send their names and amounts to AI providers, and their names to Google's text-embedding service (Section 3). We send only the minimum data needed to fulfill the request.
  • Run try-it tools that need no account — on halite.cc (the recipe-edit demo, the recipe clipper at halite.cc/clip and the "Got a question?" helper) and in the app (the Mealime importer, which works before you sign up). What you enter there — a request, pasted text, the text of a page you link to, or screenshots — is sent to the AI providers in Section 3, and we count requests by IP address to stop abuse. We do not keep what you enter. The exceptions are ordinary server logs (section 1.12), a share link you choose to create (section 1.7), and the questions you ask the "Got a question?" helper (section 1.8).
  • Enforce usage limits — comparing your usage counters against your service tier.
  • Enable sharing — when you create a public link or shared collection, making the recipe content accessible to anyone with the link.
  • Answer connected AI assistants — returning the data described in section 1.10 to an assistant you have connected, only when it calls a tool.
  • Diagnose and fix problems — using bug reports, server logs, and diagnostic records (sections 1.11–1.12) to find and fix errors.
  • Improve the product — using feature-usage counts and the days people open the app (section 1.3) to understand which features are used, step corrections (section 1.15) to improve how ingredients are matched to steps and how recipes are imported, the aisle choices people suggest (section 1.2) to set a shared default aisle for an item, and the anonymous view, save and click counts on halite.cc and shared links (section 1.8) to see what is useful.
  • Understand which channels bring people to Halite — using the campaign labels, any advertising click ID, the referring page and the entry point saved when you sign up (section 1.1), and the counts for each shared link (section 1.8), to see which links, ads and websites new accounts come from, and whether those accounts go on to use Halite. If you came from a Google or Microsoft ad, we may send that platform the ad's click ID and your sign-up time so it can count the sign-up (section 1.1). We do not use your data to target you with ads.
  • Keep Halite secure — rate limiting, detecting abuse, and protecting accounts.
  • Communicate with you — responding to support requests or sending critical service announcements (we will never send marketing email).

We do not use your recipes, notes, or other content to train AI models, and we do not sell your data or use it for advertising.

3. Third-Party Services

Halite relies on a small number of third-party providers to deliver its core features. Each provider receives only the data strictly necessary for its function.

Provider Purpose Data Shared
Google Firebase Authentication, database (Firestore), file storage, hosting Account credentials, recipe data, uploaded images
Groq AI text completion: the first choice for most text features (such as editing a recipe, or reading recipe text longer than 12,000 characters) and a backup for the rest; also the AI behind the halite.cc recipe-edit demo and recipe clipper (sections 1.7 and 2) The request data described in section 2 (for example recipe text, edit requests and meal descriptions), sent per-request; on halite.cc, what you type or paste and the text of any page you clip
Google Gemini (on Google Cloud Vertex AI) AI vision and video: reading recipe photos, nutrition labels, screenshots and videos. Also checks recipes read from text for mistakes, is the first choice for meal-log estimates, and is a backup for other AI text features. The same Google Cloud service provides the text-embedding model that matches ingredient and food names to nutrition data. Recipe text, images and video, meal descriptions, and ingredient and food names, sent per-request
Anthropic (Claude) AI text processing: the first choice for shorter recipe-text imports (up to 12,000 characters), for matching ingredients and meals to nutrition data, and for Measure as you go; a backup for other AI text features; answers to the halite.cc "Got a question?" helper (section 1.8) The request data described in section 2 (for example recipe text, ingredient and meal text, and recipe steps), sent per-request; the text of questions asked on halite.cc
Together.ai AI image generation (recipe photos) Text prompt describing the dish (no personal data)
Cloudflare Hosting and delivery of halite.cc, storage for free-mode share links (section 1.7), and cookieless website analytics (section 1.8) Standard web-request data; recipe content you choose to publish as a share link; aggregate page-visit and performance metrics
Google Fonts Typefaces for the halite.cc website pages (not the app) Standard web-request data (your IP address and browser details) when a page loads the fonts
Paddle Merchant of Record for purchases: checkout, payment processing, sales tax, invoices and refunds (section 1.14) Your email address and Halite user ID at checkout; Paddle collects your payment details itself
Resend Sending account emails (such as address verification), and the notices Halite emails to its own team about new sign-ups and bug reports (sections 1.3 and 1.11) Your email address and the message content
GitHub Private issue tracker for bug reports and feedback (section 1.11), and weekly step-correction summaries (section 1.15) Your report, your email address and user ID, the technical details attached to it, and links to any screenshots; for step-correction summaries, short step excerpts with no names, email addresses, or user IDs
Open Food Facts Nutrition facts for packaged foods in the meal log The barcode number or search text only
USDA FoodData Central Nutrition facts for foods in the meal log and nutrition estimates The barcode number or food name only
Google Ads and Microsoft Advertising Counting which ads led to a sign-up (section 1.1) Only if you came from that platform's ad: the ad's click ID and the time you created your account. Never your name, email address or recipes. Not sent for sign-ups from the UK, the European Economic Area or Switzerland.

AI assistants you connect. If you connect ChatGPT, Claude, or another assistant (section 1.10), the provider of that assistant — such as OpenAI or Anthropic — receives the data its tool calls return. That provider is chosen by you, not by us, and handles the data under its own privacy policy.

Websites you import from. When you import a recipe from a link, Halite's servers fetch that page from its website, which sees a request from Halite rather than from you. (If the browser extension or a connected assistant sends the page's text along with a link to an ordinary web page, Halite uses that text and does not fetch the page. Text sent with a YouTube link or a Pinterest pin link that leads to a recipe page, or text that is very short, is ignored and the page is fetched as usual.)

Apart from the cookieless website analytics described in section 1.8, and the ad click IDs we may report back to Google or Microsoft when an ad led to a sign-up (section 1.1), we use no analytics services, advertising networks, or social-media tracking pixels. We do not sell, rent, or trade your personal data to any third party.

4. Data Storage & Security

All account and recipe data is stored in Google Cloud infrastructure (Firebase / Firestore), which provides encryption at rest and in transit. Access to your data is scoped to your authenticated user ID — no other user can read your private recipes.

Our session cookie is configured with the Secure, HttpOnly, and SameSite=Lax flags. All traffic is served over HTTPS.

While we employ industry-standard safeguards, no method of electronic storage is perfectly secure. We cannot guarantee absolute security.

5. Data Retention

Data How long we keep it
Account (including the sign-up source details and the record of your acceptance of the Terms of Service in section 1.1), recipes, library, meal log, uploaded images, passkeys, feature-usage counts, the days you opened the app and usage counters For as long as your account exists
Purchase records (section 1.14) For as long as your account exists, and afterwards only as long as tax and accounting law requires
Step corrections (section 1.15) For as long as your account exists; weekly summaries already filed are kept like bug reports
Aisle suggestions (section 1.2) Until the Halite team decides on them. Ones that are waiting, deferred or rejected are deleted when you delete your account; an approved one stays as a shared default (an item name and an aisle) with your account ID removed.
Recipes you delete Hidden immediately, fully purged after 30 days
AI assistant connection tokens Sign-in codes 60 seconds, access tokens 1 hour, refresh tokens 30 days from last use; deleted immediately when you disconnect the assistant
The record that an AI assistant was connected (its name, what it was allowed to do, and when it was connected and last used; section 1.10) For as long as your account exists. When you disconnect the assistant the record stays, marked as disconnected, and is deleted with your account.
Browser extension access tokens (and each browser's label and last-used date) 90 days, or until you sign that browser out in Settings
Per-request diagnostic records (AI requests and assistant tool calls; sections 1.10 and 1.12) About 7 days, then deleted automatically, unless they are copied into a bug report you send (section 1.11), in which case they are kept with the report
Server logs 30 days
Rate-limit counters (section 1.12) A count and time window per feature, kept under your user ID (or your IP address when you are not signed in) and reset as each window rolls over. The ones under your user ID are deleted with your account.
Bug reports, feedback and sign-in trouble reports, with their screenshots and any diagnostic records copied into them Until the issue is resolved and for our records afterwards; deleted on request
The emails Halite sends to its own team when an account is created or a bug report is filed (sections 1.3 and 1.11) Kept in our team inbox. They are not deleted when you delete your account; ask us and we will delete the ones about you.
Records of actions our team takes on an account, such as changing its plan, suspending it or resetting its password (section 1.3) Kept after the account is deleted, because they are our record of those decisions
View and save counts of shared recipe and cookbook links (section 1.8) No set end date. They hold nothing about the people who viewed. They remain after a link is turned off or its owner's account is deleted, but from then on our team can no longer see which account shared it.
Counts for the halite.cc website: clicks on its "open the app" links, and the route, outcome and AI token counts of requests to its tools (sections 1.7 and 1.8) About three months, then deleted automatically. Not tied to an account or an identifier.
Questions asked in the halite.cc "Got a question?" helper (section 1.8) About three months, then deleted automatically. Not tied to an account or an identifier.
Free-mode share links from halite.cc/clip 180 days from creation, then deleted automatically. Not tied to an account and cannot be revoked before it expires.

Account deletion. You may delete your account at any time from the Settings page. This permanently removes your account and the data stored with it: recipes and their history, notes, labels, shopping lists, pantry, meal plans, meal log, collections, public links, passkeys, uploaded images, your sign-up source details, your record of accepting the Terms of Service, usage counters and feature-usage records, diagnostic records, the records of connected assistants and their tokens, extension tokens, and the request counters kept under your user ID. You are also removed from any recipe someone shared with you as a collaborator. Your aisle suggestions (section 1.2) that are waiting, deferred or rejected are deleted; an approved one stays as a shared default, an item name and an aisle, with your account ID removed.

Deleting your account does not delete bug reports or feedback you sent us (including any diagnostic records copied into them), weekly step-correction summaries already filed, the emails Halite sent to its own team, or the records of any action our team took on your account (see the table above). Ask us and we will delete a report or an email about you. Server logs expire on their own after 30 days. The shared-link counts in section 1.8 hold nothing about who viewed them and stay, but once your account is deleted our team can no longer see that they came from your links. Content an AI assistant already received from Halite is held by the assistant's provider.

6. Your Rights

Depending on your jurisdiction, you may have the right to:

  • Access your personal data.
  • Correct inaccurate information.
  • Delete your data and account.
  • Export your recipes. In the app, open the menu on the Home page and choose Export. Cookbook (.html) is a printable book of your recipes that opens in any browser and works offline. Recipe files (.zip) holds a Paprika file for other recipe apps, a Markdown file for each recipe, and a full Halite backup, with every saved version and the photos, that you can restore through Import. You can export everything, the recipes in the view you have filtered to, or the recipes with one label. Exports cover your recipes only. For the rest of your data (for example your recipe notes, meal log, pantry, shopping lists, meal plans, and the usage records in section 1.3), contact us and we will provide it in a portable format.
  • Object to or restrict certain processing.

Controls you can use yourself at any time:

  • Settings → Connected apps — see and disconnect AI assistants.
  • Settings — revoke browser-extension tokens, manage passkeys, and delete your account.
  • Shared links — turn off any public link you created.
  • Edit or delete any recipe, note, list, or meal-log entry.

To exercise any other right — including deleting a bug report you sent — please contact us at the address below. We will respond within 30 days.

7. Children's Privacy

Halite is not directed at children under 13 (or the applicable age of digital consent in your jurisdiction). We do not knowingly collect personal information from children. If you believe a child has provided us with personal data, please contact us and we will promptly delete it.

8. International Transfers

Your data may be processed in the United States or other countries where our third-party providers operate. By using Halite you consent to such transfers. We rely on provider-level safeguards (e.g., Google's data processing terms) to protect your data.

9. Changes to This Policy

We may update this Privacy Policy from time to time. When we make material changes we will update the "Effective date" at the top of this page. We encourage you to review this page periodically.

10. Contact

If you have questions about this Privacy Policy or your data, please contact us at:

HALITE LLC
support@halite.cc

Halite

Save any recipe. Make it yours.

Open App Privacy Policy Pricing Terms of Use Refund Policy

© 2026 Halite. All rights reserved.