Data and privacy
Last updated: 2026-10-15
Your recipes, pantry, shopping list, and menu history stay inside your kitchen. This page covers the narrow exceptions: an aggregate signal about ingredient names that the operator uses to grow the shared ingredient catalog, counts about how well ingredient matching did on the new recipes you add, and what the AI features send to four outside AI companies — to Anthropic only when someone in your kitchen uses Mirabel or asks the Add Recipe sheet to read a recipe with AI, to Mistral AI only when someone imports a recipe from a photo, and to Typesafe AI and OpenAI on their own, though a kitchen owner can turn recipe sketches off. What goes to Typesafe AI includes the name of a new item you type onto your shopping list, so Mirepoix can suggest its aisle, a recipe you import with no category, as Mirepoix read it, with your kitchen’s category names, so Mirepoix can suggest one, and every line of text read from a photo you import, so Mirepoix can sort it into a recipe. It also covers what leaves your kitchen when a member sends it somewhere through an app or tool they connect with their own token: one a kitchen owner lets members connect by turning on agent access, or the Mirepoix iPhone app once it’s out, which connects whether agent access is on or off. And it covers the pieces an error report can carry when something goes wrong: such a report goes to Honeybadger, an error-monitoring company, and it can include a page’s address, which can name a recipe or an item on your shopping list, and words from your screen. It covers a recipe line a member chooses to send with Report this when Mirepoix can’t count that line’s nutrition: the line’s text reaches the operator, the project’s private issue tracker on GitHub, and the AI agents that work on the shared catalog, on models from Anthropic and OpenAI, as described under Reported nutrition gaps. Last, for a kitchen that has asked the operator for one, it covers the Pantry diary: a record of what each member does at the Pantry and on the shopping list, and when, which the operator and the AI agents working for them, on models from Anthropic and OpenAI, read, with that kitchen’s menu history, to study and improve the Pantry and Groceries, as described under Pantry diary.
What stays in your kitchen
The operator can’t read these through the admin console:
- Your recipes and their text, tags, or categories, apart from a recipe line a member sends with Report this, described under “Reported nutrition gaps”
- Your menu and meal plan
- Your pantry contents and overrides, apart from the Pantry diary of a kitchen that asked for one, described under “Pantry diary”
- Your shopping list, custom items, and aisles, apart from that diary
- Your menu history, apart from a diary kitchen’s, read beside its diary
- Who in your kitchen typed what, or when, apart from that diary
What the operator sees
When you type an ingredient name (or an app or tool adds one for you) that isn’t in the shared catalog yet, Mirepoix saves it as a pending discovery in your kitchen. The operator’s admin view collects those pending names across every kitchen. It shows two things drawn from kitchen data — yours and everyone else’s — per name:
- The ingredient name itself
- A count of how many kitchens have seen it
The view also shows a suggested USDA food match for each name — found by looking that same name up against the bundled USDA reference data, offered as a starting point for a new catalog entry. The lookup uses only the name shown above; the match itself — its description, nutrients, everything about it — is USDA’s own public data, nothing pulled from your kitchen or anyone else’s.
The view leaves out anything that could tie a name back to you:
- No kitchen identity, name, or slug
- No user identity
- No recipe, quick bite, or pantry entry it came from
- No name that appears in fewer than three kitchens
That last threshold is a floor, not a setting. A name has to show up in at least three separate kitchens before it’s visible to the operator at all.
A gap a member reports with Report this skips that floor. Because a cook chose to send it, a single report from a single kitchen reaches the operator, with the line’s text. Reports aren’t part of this view; how they reach the operator, and who else reads them, is described under “Reported nutrition gaps.”
Getting to the admin view takes a separate admin sign-in that times out every twelve hours. Every page load lands in the security log.
What it’s used for
One thing: deciding which entries to add to the shared ingredient catalog. New entries give future kitchens nutrition data and the right unit handling out of the box.
The aggregate isn’t fed into any machine-learning model or training pipeline — it’s a read-only signal a person reads and acts on. A reported gap, described next, is used for a related thing: deciding which entries to add to the shared catalog, and which entries need nutrition data or a weight filled in. It’s a signal that a person and the AI agents working for them read and act on. The operator doesn’t use it to train any machine-learning model, or feed it into a training pipeline. Adding entries to the shared catalog is a separate, reviewable change to the project’s source, not a click in this view. Names drop off the view once the catalog can resolve them.
A kitchen’s Pantry diary, described under “Pantry diary,” isn’t part of this view, and the “one thing” above doesn’t cover it: the operator and the AI agents working for them use it to study and improve the Pantry and Groceries, which includes fitting and testing models on it.
Reported nutrition gaps
When Mirepoix can’t count a recipe line’s nutrition — its name has no catalog match, its catalog entry has no nutrition data, or there’s no weight on file for its unit — the line’s detail panel on the recipe page offers kitchen members Report this. Tapping it sends a report, so the shared catalog can be fixed for every kitchen. Signed-out visitors and people who aren’t members of the kitchen don’t see the button. A kitchen the operator has suspended doesn’t either, but one that’s read-only because its plan has lapsed can still report.
A report holds:
- The ingredient’s name, in the lowercase, accent-free form Mirepoix uses to compare names. For a line matched to a catalog entry, it’s that entry’s name, or, for a line matched to your kitchen’s own ingredient, that ingredient’s name.
- Which of the three gaps it is
- The line’s unit, such as
bunchorcup, when it has one - The line’s text, written out the way the recipe format writes it: the name, the amount, and any note after them, such as
Dill, 1 bunch: chopped. A note holds whatever was typed there, and it goes with the report as it is. For a line your kitchen has switched to a substitute, it’s the substitute’s text alone. Text past 300 characters is cut off. - When the report was made
Nothing else goes into a report: no kitchen, no member or account, and no recipe — not its title, its other lines, or which recipe the line came from. The server’s logs can still tie a report back to all of these for a while, the member through what Mirepoix keeps about each sign-in, as described next. Mirepoix works out the name, the gap and the text itself, on its own server, from the line you tapped; the tap sends only which line it was.
A report isn’t anonymous. It names no kitchen, but Mirepoix has few kitchens, and the wording of a line can be enough to tell whose it is. Matching a report’s time against what else the server keeps can also tie it back:
- Your kitchen, the recipe and the exact line. The tap leaves a line in the server’s request log, described under “Sign-in and security logs.” It records the address the tap was sent to, which names your kitchen and carries an identifier for the exact recipe line, and so the recipe it’s in. It also records the network (IP) address the tap came from, and when. The front-end server’s own log records the same address and IP address, with your browser’s software name. Each log keeps a line for as long as that section describes: the request log until about the sixth update after it, usually a couple of weeks or less, and the front-end log until newer lines push it out. The hosting company’s daily copies of the server, described under “Backups,” can keep both for up to a week longer.
- The member who sent it. The logs’ lines name no member, but the IP address they record can lead to one. When a member signs in, Mirepoix keeps the IP address and browser software name that sign-in came from, filed under their account: the IP address is the one the Account page lists for each sign-in under Where you’re signed in. So a tap from the same address a member signed in from can be matched to that member, or, where several members signed in from one address, such as a household sharing a network, to those members. If a member’s address has changed since they signed in, that match can fail, but the security log can fill the gap: when a sign-in is used from an address or browser other than the one it began on, it notes that under the sign-in’s identifier, at most once an hour, beside the request log’s line for the same request. This works for as long as the logs keep the tap’s line, described just above. What’s kept about a sign-in can outlast that line, and an encrypted backup can keep an older copy of it, as described under “Backups.” In a kitchen with one member, the kitchen is the member. To stop a flood of reports, Mirepoix also counts each member’s reports over an hour, but only in the running server’s memory: the count is never written to its database or a backup, and it’s lost when the server restarts. A second counter counts every kitchen’s reports together over a day, under no name at all.
Neither the logs, what’s kept about a sign-in, nor the counters are part of a report or go to GitHub with it.
Where a report goes. Mirepoix’s server only stores reports. It never connects to GitHub or sends a report anywhere itself. From time to time, the operator, or an AI agent working for them, reads the new reports with a command run from the operator’s own computer. The command only reads; it changes nothing on Mirepoix’s server. It files what it reads on GitHub, in the project’s private issue tracker: one issue for each gap, quoting the reported lines’ text, and a new comment on that issue when more reports of the same gap arrive. The operator and the AI agents that work on the shared catalog for them read those issues. Those agents run on models from two AI companies: Anthropic, for the agents that do the catalog work, and OpenAI, for one that reviews their changes. A reported line’s text may also be kept in the project’s private source code on GitHub, as evidence for a catalog change. The promises under “AI features and third-party processing” cover what Mirepoix’s own features send; they don’t cover these agents. Whether Anthropic or OpenAI may keep or train on a reported line is set by the operator’s terms with them, and GitHub keeps what it holds under its own terms.
How long it’s kept. Mirepoix deletes a report 90 days after it’s made, in a cleanup that runs once a day, whether or not anyone has read it yet. A report holds no recipe or kitchen, so deleting the recipe, or your whole kitchen, doesn’t delete it: it’s deleted on the same 90-day schedule. An encrypted backup may keep an older copy until it rotates out, as described under “Backups.” Text that has already reached GitHub stays there after Mirepoix deletes the report: an issue, its comments and the project’s source code have no set end.
Mirepoix doesn’t contact anyone about a report, and there’s no status to check. Reporting changes nothing about the ingredient for your kitchen.
Imported ingredient matches
When you add a new recipe — typed into the editor, imported with Add Recipe, saved from Mirabel, added by an app or tool with your token (described under “Agent access (beta)”), or brought in from a file or a backup archive — Mirepoix records what its ingredient matcher decided about that recipe’s ingredient names shortly after the recipe is created, weighed against the shared catalog only. One record per distinct name in that recipe: the name as the recipe wrote it, which catalog ingredient the matcher picked or that it had no candidate at all, whether it was confident, and how far ahead of the runner-up its pick was. A recipe you bring back from Recently deleted isn’t recorded again, and neither is a file import that overwrites a recipe you already have. Editing a recipe afterward doesn’t add more records, and nothing else does either. Two things from before 2026-10-01 stay as they were. Some records carry a note, for a name the matcher was sure of, of whether a Typesafe AI check on the new recipe set its pick aside or replaced it. And some records were added later by an operator’s rerun of that new-recipe check, for names still waiting on a match. That check and its rerun no longer run; the operator’s rerun of matching over lines, described under “AI features and third-party processing”, writes no records here.
If you later choose an ingredient for one of that recipe’s lines in the recipe editor — a catalog ingredient, one of your own kitchen’s ingredients, or Keep as written — the choice is stamped onto that recipe’s record for the line’s name, when it has one: which catalog ingredient you chose, or that you kept the line as written, and when. A choice you make before renaming the line (other than in capitalization or spacing) is dropped when you save, and isn’t stamped; if you rename the line first and then choose, in the same save, the stamp goes on the record for the name the line had before that save. Choosing one of your kitchen’s own ingredients that isn’t in the shared catalog is stamped as a correction too, but it names no ingredient: the record has room only for a catalog one, so it says the matcher was wrong without saying what you picked instead. One of your kitchen’s own ingredients that is based on a catalog ingredient is stamped as that catalog ingredient. Only the first correction is kept; a later choice for the same name on that recipe doesn’t overwrite it. The stamp lands on that recipe’s record alone, not on other recipes that use the same name. A choice made while you’re creating a recipe isn’t stamped, because that recipe’s records are written just after it’s saved, and neither is a choice for a line you add in the same save. Corrections recorded before this change, from the retired Review ingredients dialog, stay as they were.
These records stay inside your kitchen. There’s no admin page for them — the operator’s admin console doesn’t show them at all. They’re deleted when the recipe is deleted, and nothing else expires them: they last as long as the recipe does.
What leaves your kitchen is counts. The operator can run a report on the server that groups these records by which path a recipe came in on — the editor counts as one — and shows, per path: how many kitchens, how many ingredient lines, how many the matcher was confident about, how many it was unsure about, how many had no candidate, and how many were later corrected. No ingredient name, no recipe, no kitchen identity — and a path shows up only when at least three separate kitchens have added recipes through it, the same floor the catalog-gaps view uses. That report can also print the records line by line, ingredient names included, for a single kitchen the operator names by hand when running it. That’s a command on the server, not a page in the admin console.
Each new recipe also writes one line to the server’s own log carrying those same counts for that recipe — how many ingredient lines, how many confident, how many unsure, how many with no candidate — along with which path it came in on (the editor counts as one) and which kitchen it happened in. Counts only: that line carries no ingredient name, though other lines in the same log can, as described under “Sign-in and security logs.”
All of this is used for one thing: measuring how well ingredient matching does on recipes it has never seen before, so the matcher and the shared catalog can be improved. A correction is the only honest signal that a match was wrong, which is why it’s recorded. None of it is fed into a machine-learning model or a training pipeline — the matcher is ordinary code working against the shared catalog, and a person reads these numbers and acts on them.
AI features and third-party processing
Four outside AI companies receive content from your kitchen: Anthropic powers Mirabel, Mistral AI reads the text on photos you import, Typesafe AI checks ingredient lines and suggests aisles for new shopping-list items and categories for imported recipes, and OpenAI draws recipe sketches. For each, this section says what kind of content goes, when, what you can turn off, and what the company may do with it. The help pages for Mirabel, importing from a photo, checking ingredients, aisle suggestions, importing with Add Recipe and recipe sketches describe how each feature works today; the promises are the ones on this page.
Four things hold for all four:
- Mirepoix adds nothing that identifies you or your kitchen. No name, email address, or account goes with a request, and nothing naming your kitchen, such as its title or its page address. What you wrote goes as you wrote it, so a recipe or message that names someone carries that name.
- None of them uses it to train its models. Each company’s own commitment is below.
- Mirepoix’s own logs never hold it. They keep counts, timings and costs of these requests, never what was sent or what came back, apart from the site name of a page Mirabel fetches for you.
- These features send it to no other company. Beyond these four, content leaves your kitchen in four other ways. One is an app or tool a member connects with their own token — one a kitchen owner lets members connect by turning on agent access, or the Mirepoix iPhone app once it’s out, which connects whether agent access is on or off; it goes where that member sends it, as described under “Agent access (beta).” The second is an error report: when something goes wrong, a report sent to Honeybadger can carry a page’s address and words from your screen, such as a recipe’s title, as described under “Error reports and email.” The third is a recipe line a member sends with Report this, which reaches the project’s private issue tracker on GitHub and the AI agents working for the operator, as described under “Reported nutrition gaps.” The fourth is the Pantry diary, kept only for a kitchen that asked the operator for one, which the operator and the AI agents working for them read, with that kitchen’s menu history, on models from Anthropic and OpenAI, as described under “Pantry diary.” Mirepoix’s own backups are kept with a storage company too, but encrypted so that company can’t read them, as described under “Backups.” And Mirepoix’s emails are delivered by an email company, Resend; an email can name your kitchen, but carries no recipe, Menu, Pantry or shopping list.
Mirabel and AI import (Anthropic). Mirabel, the in-app assistant, is powered by Anthropic, and so is the AI import she runs when a recipe needs reading with AI, which the Add Recipe sheet also runs when you ask it to (see “Importing with Add Recipe” below). Nothing goes to Anthropic unless someone in your kitchen uses her or asks the sheet to read a recipe with AI (a line sent with Report this, and a kitchen’s Pantry diary, aside — see “Reported nutrition gaps” and “Pantry diary”). When they do, what’s sent is what she needs for that request. That’s what you type and the recent back-and-forth of your conversation, and the recipe text and web pages you give her to import. When what you ask calls for it, it’s also content from your kitchen: your recipes, your Menu and how long recipes have spent on it, your Pantry, your shopping list, and your kitchen’s category and tag names. With each message she also gets a short note of which page you’re on, and your kitchen’s saved cooking preferences if it has any. A photo you attach doesn’t go to Anthropic: it’s resized on your device, its camera and location data are removed before it’s sent, and then it goes to Mistral AI to be read, as described under “Photo import (Mistral AI)” below. Mirepoix keeps it only until her draft is ready, then deletes it. The draft made from it joins your conversation like any other, so the text read from the photo goes to Anthropic with your later messages to her, and when you ask her to change or condense it. When you give her a link, Mirepoix’s server fetches the page for you. Pages are fetched only when you ask, are not stored, and each fetch is recorded by site name only. When the page offers a recipe photo, Mirepoix’s server fetches that image too and holds it briefly — until you save the recipe, or the conversation is cleaned up after about three days — so it can be added to the recipe if you save; like any recipe photo, its location metadata is stripped before it’s stored. She can’t change anything in your kitchen on her own: anything she offers to add, change or take off waits for you to tap to confirm. Under its commercial terms, Anthropic may not train its models on what Mirepoix sends it. Anthropic deletes what it receives within 30 days, unless it needs to keep it longer to enforce its usage policy or the law requires it. Mirabel says which imports she reads on Mirepoix’s own server first.
Importing with Add Recipe. The sheet that Add Recipe opens reads a link or pasted text on Mirepoix’s own server, without Mirabel, and nothing it reads goes to Anthropic unless you choose it. When a read doesn’t come out cleanly and you tap Read it with AI, the page or text you gave the sheet is read with AI import, the same one Mirabel runs, and goes to Anthropic as described above for an import, with your kitchen’s category and tag names, but without Mirabel: none of it goes into her conversation. While that read runs, Mirepoix’s server holds the link or text you gave the sheet, and then the draft it makes, until the sheet picks the draft up, and deletes it then. If the sheet never picks it up, for example because you closed it, nothing can read it 30 minutes after you tapped, and it’s cleared from the server’s cache within two weeks. From a photo hands the photo to Mirabel, and then it’s read as described under “Photo import (Mistral AI)” below. When you give the sheet a link, Mirepoix’s server fetches the page for you, under the same rules as a page Mirabel fetches: only when you ask, not stored, and each fetch recorded by site name only. When the page offers a recipe photo, Mirepoix’s server fetches that image to show it to you in the editor, and again when you save the recipe, so it can be added. Nothing of it is kept in between, and if you don’t save, nothing of it is kept at all. Like any recipe photo, its location metadata is stripped before it’s stored. The ingredient lines it reads, from a page, pasted text or a file, can go to Typesafe AI, as described next. When what it reads gives the recipe no category, the recipe as Mirepoix read it (its title, description, ingredient lines and steps) can also go to Typesafe AI, with your kitchen’s category names, so it can suggest a category, as described under “Category suggestions for imports” below.
Ingredient checks and aisle suggestions (Typesafe AI). To read and match ingredient lines — whether a line is an ingredient or a heading, how the items in a line like “chickpeas or white beans” relate, and which ingredient in the shared catalog a line names — Mirepoix sends ingredient lines and names to Typesafe AI, with entries from the shared catalog to choose among. They come from your recipes and QuickBites, and from recipe pages you import. When Mirepoix pieces a recipe together from text itself — text you paste or a single file you give Mirabel or the Add Recipe sheet, a web page without structured recipe data it can read, or a video’s description — it also sends the lines its reader takes for the ingredient list, with any headings inside that list, so Typesafe AI can say which of them are ingredients. When you import a recipe from a photo, Mirepoix sends every line of text Mistral AI read from it, so Typesafe AI can say which lines are the title, the ingredients, the steps and so on. Some of those lines turn out not to be ingredients: a heading, the recipe’s title, a step or tip, a serving, time or nutrition line, or part of the website around the recipe. Each line goes as it’s written, so anything inside one, such as a web address or a name, goes with it. Mirepoix adds nothing that identifies you or your kitchen, and no page address of its own. Nothing else from a recipe, or from the text or page it came from, goes with these checks. These checks run on their own, without anyone asking — for example shortly after a recipe or QuickBite is saved, while a recipe page or text is imported, or when the operator reruns matching over lines already saved — and there’s no setting to turn them off. Typesafe AI’s answer can change which ingredient a line is matched to; Check ingredients covers how. Typesafe AI also suggests an aisle for a new item on your shopping list. When you type an item onto the list, Mirepoix can send its name to Typesafe AI, with the aisle names from the shared catalog to choose among, to ask which aisle a shopper would most likely find it in. Nothing else from your list, your stores or your kitchen goes with it. These suggestions also run on their own, and there’s no setting to turn them off. The answer only decides which aisle the new item first lands in. Typesafe AI’s privacy policy says it won’t train or fine-tune any model on what it receives. How long Typesafe AI keeps what it receives is set by that policy, which names no fixed period.
Category suggestions for imports (Typesafe AI). When you import a recipe with the Add Recipe sheet, from a link, pasted text or a single file, and what Mirepoix reads gives the recipe no category of its own, Mirepoix can ask Typesafe AI to suggest one. It sends the recipe as Mirepoix read it, the same draft the editor then opens with: its title, its description, and each step’s heading, ingredient lines and instructions, with the name of any other recipe a step points to. It sends your kitchen’s category names with it to choose among, and asks which category a cook would file the dish under. A very long recipe is cut short. Each part goes as it’s written, so anything inside it, such as a name or a web address, goes with it, but Mirepoix adds nothing that identifies you or your kitchen, and no page address of its own. Nothing outside that draft goes: not the comments, menus, links to other recipes or the rest of the page or text Mirepoix left out of it, and not the recipe’s servings, times, tags or source. When Mirepoix pieces a recipe together from text itself, a line from around the recipe can end up in the draft, and then it goes too; you’d see it in the editor. These suggestions run on their own, and there’s no setting to turn them off. The answer only fills in Category in the editor, which you can change before you save. When Typesafe AI picks none of your categories, or doesn’t answer, Category stays at None, as before. What Typesafe AI may do with what it receives is the same as for the checks above: its privacy policy says it won’t train or fine-tune any model on it, and sets how long it’s kept.
Photo import (Mistral AI). When you import a recipe from a photo, Mirepoix sends each photo to Mistral AI, which reads the text on it. Each photo goes on its own, resized on your device and with its camera and location data removed before it’s sent, with nothing that identifies you or your kitchen and nothing from your conversation. Everything in the photo goes with it, so anything else in the picture, such as a handwritten name, goes too. Mistral AI only reads the text; it doesn’t write any of the recipe. Nothing goes to Mistral AI unless someone in your kitchen imports a recipe from a photo. Under its commercial terms, Mistral AI doesn’t train its models on what Mirepoix sends while training is turned off for Mirepoix’s account, and it is. Mistral AI may keep a photo under its own terms, for a period those terms don’t state.
Recipe sketches (OpenAI). Mirepoix draws a small sketch of each recipe for its card. To do that it sends the recipe’s text — never its photo — to OpenAI, whose models decide whether the recipe can be drawn and draw it. Sketches are on for every kitchen unless a kitchen owner turns off Draw a sketch of each recipe for its card under Recipes in Settings. They’re made on their own in the background, after a recipe is saved or later, and again when a member of your kitchen asks for a new sketch of a recipe. Turning the setting off stops sending: a sketch already under way may still finish, and cards stop showing sketches. An owner can turn it off even while the kitchen is read-only. OpenAI doesn’t use what it receives through its API to train its models unless the customer opts in, and Mirepoix hasn’t. OpenAI keeps requests and its replies for up to 30 days to watch for abuse, longer when the law requires it or it’s reasonably necessary to protect OpenAI’s services or anyone else from harm. Anything from your recipes that Mirepoix leaves with OpenAI is deleted, or set to expire, within that time. Mirepoix keeps what comes back with the recipe — the drawing and OpenAI’s written answer, or a note that the recipe couldn’t be drawn. These aren’t part of a kitchen export, and they’re deleted when the recipe or the kitchen is deleted; an encrypted backup may keep an older copy until it rotates out. Sketches already made stay stored while the setting is off, so turning it back on shows them again.
How long this is kept. Mirabel conversations — and the drafts and import text in them — are kept on Mirepoix’s servers for about three days, then deleted automatically. Her answers can also carry two small bookkeeping notes, kept and deleted on that same schedule. The first applies only when an answer failed, and records whether trying again could help, so Mirepoix can leave out a Try again button that couldn’t work. The second applies only to a recipe draft, and records that you saved a recipe from it — a yes, not which recipe — so Mirabel stops treating a recipe you’ve already saved as the draft in front of you, and the choices under the draft show it as Saved. The first holds nothing you typed or anything else from your kitchen, and the second holds only that yes. Neither is sent to Anthropic — each is written on Mirepoix’s own server after the answer is made. That’s long enough to recover a request you started on another device or after closing the tab, not a lasting record. An encrypted backup may keep an older copy until it rotates out.
AI import, photo import and Mirabel draw on your kitchen’s monthly AI allowance, which they share. The ingredient checks and the aisle and category suggestions don’t, and neither do recipe sketches.
So the operator can see what the AI features cost to run, Mirepoix also keeps a monthly tally of that spending for each kitchen, on its own servers. For each kind of work that goes to Anthropic — Mirabel’s chat, AI import, condensing a recipe, and revising one — it records what that month’s requests to Anthropic cost, how many there were, how many of them had to prepare Mirepoix’s own standing instructions at Anthropic afresh, and how many could reuse them from a recent request, which costs less. Those instructions are the same for every kitchen and hold nothing from yours. For photo import, it records what that month’s photo reads at Mistral AI cost and how many photo imports there were. For recipe sketches, it records what that month’s sketch requests cost at OpenAI and how many there were, whether or not a request ended in a drawing. Each sketch’s own cost is also kept with the sketch, and deleted with it. Keeping these figures doesn’t make sketches draw on the AI allowance. The tally holds nothing you typed and none of your kitchen’s content, and says nothing about which member made a request, which recipe a sketch was for, or when, beyond the month. Unlike the allowance, it doesn’t clear at the start of a month: each month’s tally is kept until the kitchen is deleted, and an encrypted backup may keep an older copy until it rotates out. The operator reads it one kitchen at a time with a command on the server; it isn’t a page in the admin console.
Recipe photos
When you add a photo to a recipe, Mirepoix removes its location metadata before storing it. That covers the GPS a camera records and the location a photo editor can add. Stored recipe photos carry no location.
This matters most when you share. A recipe holds one photo, and a shared link shows it as the preview — the full-size photo, not a thumbnail. Because the location is already gone, the link can’t reveal where the photo was taken.
When you delete a recipe, its photo is kept for as long as the deleted recipe is, so Restore in Recently deleted can bring it back. Meanwhile the photo isn’t shown anywhere, and Mirepoix stops serving it at its old address. For a kitchen that’s published, a copy cached on the way out can go on answering that address for up to an hour. Delete forever deletes it along with the recipe, though an encrypted backup may keep an older copy, as described under “Backups.”
Menu history
Adding a recipe to your menu records when it joined, and taking it off records when it left. Those stretches — which weeks a recipe has spent on your menu — power Mirabel’s meal-planning suggestions, like forgotten favorites, and two touches on your Recipes page: it’s one of the signals that can lift a recipe to the top of a large category instead of behind the fold, and it sets the order recipes take within a folded list. Those page touches are for your kitchen’s own members: someone who opens a published kitchen’s link without being a member of it sees the recipes themselves, in full — no working set and no fold. The record itself stays inside your kitchen too: the operator can’t read it through the admin console. For a kitchen that asked for a Pantry diary, though, the operator and the AI agents working for them may read its menu history beside the diary, as described under “Pantry diary.” It’s kept for 13 months after a recipe leaves the menu and then deleted automatically, so suggestions can reach back across the seasons without keeping the record indefinitely. Deleting a recipe deletes its menu history at once. Restoring the recipe from Recently deleted doesn’t bring that history back, and a new recipe given a deleted recipe’s name starts with none. (When you ask Mirabel what to cook, figures derived from it are sent to Anthropic to generate her reply, as described under “AI features and third-party processing.”)
Pantry diary
The Pantry diary is a record of what a kitchen does at the Pantry and on its shopping list. It’s off for every kitchen. The operator switches it on for a kitchen only when that kitchen asks, and only once the kitchen’s owner has confirmed that its members know. There’s no setting for it in Mirepoix, and members aren’t notified when it starts. To have it switched off, ask the operator.
What it records. While the diary is on, each change to an item’s Pantry or shopping-list state records, for every item the change touched:
- The item’s name, and the words a member used to add it to the shopping list, when they differ from that name
- What happened: for example Need it, Have it, a new reminder length, Don’t ask, adding an item to the shopping list, checking it off, unchecking it or taking it off, Skip this trip, swapping in a substitute that moves it on the shopping list, a buy and what committed it (Done shopping, Mirepoix settling a check-off on its own, or a later answer about the item after it was checked off), and an item that was merged into another, cleaned up or deleted
- The before and after of whatever changed among: whether it’s on the shopping list, when it was checked off, when it was last bought, when the Pantry next asks about it, its reminder length, Don’t ask, a count the Pantry keeps of Have it answers since the last buy, which its Recommended length is worked out from, that length itself, and when its shopping-list state last changed
- Who did it: the member, by their account; or Mirepoix itself, for a change one of its own timers or cleanups made; or an import, for a reminder length or Don’t ask that importing a backup archive set, which names no member
- How a member did it: in a browser; by confirming an offer from Mirabel; in the Mirepoix app, or through the Mirepoix iPhone app’s own token, as Siri and Reminders use it, once the app is out (it isn’t yet); or through another app or tool connected with a token the member created
- When the member acted, and when the change reached Mirepoix. A tap made offline and sent later can put these days apart
It also records a member’s tap that reached Mirepoix but changed nothing, with the item’s name and what the tap was. And once a day it records every item on the Pantry page, with which part of the page it’s in, how many days it has left, and its reminder length.
It doesn’t record which pages anyone opens, anything typed anywhere else, your Menu (menu history, described above, already records when recipes join and leave it), or your recipes. It keeps no IP address or browser name.
Who reads it, and why. The operator reads it with a command on Mirepoix’s server. It isn’t a page in the admin console, and Mirepoix shows it nowhere in the app. The operator, and the AI agents working for them, use it to study and improve the Pantry and the shopping list: they chart it, look for patterns in it, and fit and test models on it, away from the running app. What’s learned from it may change the app for every kitchen. Those agents run on models from Anthropic and OpenAI. The promises under “AI features and third-party processing” cover what Mirepoix’s own features send; they don’t cover these agents. Whether Anthropic or OpenAI may keep or train on what the agents read is set by the operator’s terms with them. Beside the diary, the operator and those agents may also read the kitchen’s menu history, described above under “Menu history,” for the same purpose and under everything this paragraph says. Findings drawn from the diary, such as counts and charts, may be written up in the project’s private source code on GitHub, with no set end; the diary’s entries themselves stay with the operator and those agents. It isn’t sold, used for advertising, or shared with anyone else.
How long it’s kept. Each entry is deleted automatically 13 months after it’s recorded. Switching the diary off deletes every entry for the kitchen at once, and deleting the kitchen deletes them too. When a member leaves the kitchen, or is removed from it, the entries naming them stay. Deleting a member’s account keeps the entries, but they no longer name anyone. An encrypted backup may keep an older copy until it rotates out, as described under “Backups.” A copy the operator takes from the server to study isn’t deleted by any of these. The diary isn’t part of a kitchen export.
Pending imports
When you capture a page with your own recipe-import bookmarklet, save one from Safari’s Share menu with the Mirepoix iPhone app, or have an app or tool you connect with your own agent token save one (described below), Mirepoix holds what it harvested on the server, tied to the kitchen member who captured it, in that member’s pending-imports tray. What the bookmarklet and the Share button gather is:
- the page’s structured recipe markup, up to about 30,000 characters;
- the page’s text, or the text of its recipe or main section when it marks one out, up to about 40,000 characters, or about 2,000 when structured recipe markup is found;
- the page’s title, address, and site name;
- on recipe sites that mark each ingredient up separately, up to 40 of those ingredient lines.
The Mirepoix iPhone app isn’t available yet, so no one can save a page with its Share button today — see The iPhone app (coming soon). What this section says about the Share button, and about the copy of your capture token the app keeps on your iPhone, describes how they’ll work once the app is out.
The Share button gathers the same kinds of things from the page that the bookmarklet does, and sends them with the same personal capture token to the same place, so a capture from either is held under the same rules. The Share button only saves the page for later; it doesn’t start an import. A capture is kept so you can import it at your leisure instead of finishing the import the moment you capture, until you import or dismiss it — dismissing deletes it right away, and importing deletes it once the import has gone through. One you never touch is deleted automatically after 30 days. Nothing about a pending capture is sent to Anthropic until you choose to import it; what importing it can send is described above under “AI features and third-party processing.”
So the Share button can save on your behalf, the iPhone app keeps a copy of that capture token — the same one behind your bookmarklet in Settings — on your iPhone, together with the kitchen it saves into. It’s kept where only the Mirepoix app and its own extensions — its Share button and its home-screen widget — can read it, and it’s deleted when you sign out of the app. If you don’t have a capture token yet, signing in to the iPhone app creates one: the same token your bookmarklet in Settings would use, stored the same way on Mirepoix’s servers. Nothing else new is stored on Mirepoix’s servers for the Share button. Once the app is out, the app also keeps its agent token, whether or not your kitchen has agent access turned on, described under “Agent access (beta)”, on your iPhone in that same place only the Mirepoix app and its own extensions can read. When the app’s sign-in ends, or the app switches to another kitchen, it stops using that token at once and asks Mirepoix to revoke it. It keeps a copy of the token in that same place only until Mirepoix confirms it’s revoked, which can wait until your iPhone is next online, and then deletes it. After a switch, it gets a token for the new kitchen. Reset bookmarklet in Settings replaces the token, and the copy on your iPhone stops working; the Share button then asks you to open the app once, so it can fetch the new one.
The third way is an app or tool you connect with your own read-and-change agent token, described under “Agent access (beta).” Mirepoix doesn’t fetch the page for it: the app or tool reads the page itself and sends what it gathered, the same kinds of things the bookmarklet gathers. The limits in the list above are what the bookmarklet and the Share button apply while gathering, so they don’t bind an app or tool. What Mirepoix itself enforces on a page saved this way is: text up to 40,000 characters, even when structured recipe markup is found; each block of structured recipe markup up to 30,000 characters, with no separate limit on their total; the page’s title and site name up to 300 characters each; its address up to 2,048 characters; up to 40 ingredient lines; and the whole capture up to 64 KB, the limit every capture has, however it’s saved. It lands in the tray of the member the token belongs to, in the token’s kitchen, and from there it’s kept and deleted exactly as a bookmarklet capture is. Sending the same page content again within 10 minutes, while the first is still waiting in that member’s tray in that kitchen, keeps the one entry, whichever way each was saved. It counts toward the same daily limit as the bookmarklet and the Share button: at most 50 captures made in the last 24 hours can be waiting in a member’s tray at once, counting every way of saving and every kitchen, and importing or dismissing one frees its place. A capture saved this way records nothing about which token saved it. When you import a capture, however it was saved, a recipe photo its markup names is fetched the way a linked page’s photo is, as described under “AI features and third-party processing.”
Agent access (beta)
Agent access lets the members of a kitchen connect their own apps and tools to it, such as a command-line tool. It’s off for every kitchen until a kitchen owner turns it on in Settings, and members aren’t notified when an owner does. The Mirepoix iPhone app also connects with a token, once the app is out (it isn’t yet), but agent access doesn’t govern it: the app connects whether agent access is on or off. This section covers both kinds of token.
What it allows. Once agent access is on, a member can create a token: a secret that lets an app or tool use that one kitchen as that member. You create one on your Account page, or by approving a command-line tool as described below. Whether agent access is on or off, the Mirepoix iPhone app creates its own token while you’re signed in to it, once the app is out. A token is either read-only or read-and-change. A read-only token can read the kinds of kitchen data listed below. A read-and-change token can read the same, and it can also add recipes and change existing ones. Adding a recipe never overwrites one already in the kitchen: if a recipe with that name is there, nothing is saved. A change never saves over a newer edit: if someone changed the recipe’s text after the app or tool read it, nothing is saved. A change that renames a recipe also updates the other recipes that link to it, as the recipe editor does, and the app or tool is told those recipes’ titles. A read-and-change token can also save a page to its member’s pending-imports tray, as described under “Pending imports.” When an app or tool saves a page, or asks what saving one would do (which a read-only token can ask too, without anything being saved), it’s told whether the page is saved — or, when it only asked, would be — or was already waiting in that tray, and the page’s title as Mirepoix reads it from what was sent; past the daily limit, it’s told only that the limit has been reached. A read-and-change token can also change the shopping list and the Pantry. It can put items on the shopping list, check them off, uncheck them, and take them off. For a Pantry item, it can say you need it, which puts it on the shopping list; say you have it, so the Pantry asks again after a length it may choose from the Pantry’s own, 3 days to 12 weeks, or in a week if it chooses none, as picking 1 week under Have it does; or have the Pantry ask about it today. Either of the last two can also take the item off the shopping list. A read-and-change token can also add recipes to the Menu and take them off, but not QuickBites. Either change records when the recipe joined or left the Menu, as described under “Menu history,” the same as a change made on the Menu page; neither the Menu nor its history records which member or token made it. A token you create on your Account page or by approving a device is read-only unless you choose otherwise; the iPhone app’s token is always read-and-change. The help page lists what a token can do.
What a token can read. Depending on what an app or tool asks for, a token can read five kinds of kitchen data:
-
Your recipes’ titles, each with its page address, category, and tags, when it last changed, and a fingerprint of its contents. With suggestions of what to cook, it also gets when a recipe was added or how long it takes to make. And it gets the page addresses of deleted recipes still in Recently deleted, with when each was deleted.
-
A recipe’s whole text — its description, details such as servings, time, and source, its steps, its ingredients with their amounts, and its notes — and the names of its ingredients.
-
What’s on your Menu now: the titles of its recipes and QuickBites, and the category each is filed under. With suggestions of what to cook, it also gets how many weeks a recipe has spent on your Menu and the month it was last there.
-
What’s on your shopping list: each item’s name, its amount as the list shows it — such as “2 cans”, or on a row for lemons that also covers lemon zest, “2 + 1 tbsp lemon zest” — its aisle, whether it’s checked off, and whether it’s in Mirepoix’s shared ingredient catalog or is your kitchen’s own, plus your stores’ names and which store’s list is shown.
-
What your Pantry says about ingredients: whether it tracks one and has it on hand, what’s due for a check, when an item is next due, which of a recipe’s ingredients you have or still need to buy, and which recipes you have everything for. It can also read the names of your kitchen’s own ingredients, the ones that aren’t in Mirepoix’s shared catalog, and of up to 150 ingredients your kitchen bought most recently.
Where it goes. What a token reads goes wherever the member who holds it sends it — for example to Apple, when the iPhone app answers you through Siri, or to whichever AI model a member drives a command-line tool with. Mirepoix doesn’t control those destinations; their own terms apply there, including whether what they receive is used to train a model. Your kitchen’s data is shared among its members, so recipe text and other content written by other members can reach those destinations this way too.
What Mirepoix keeps about a token. Mirepoix stores, on its own servers, only a fingerprint of each token (a digest it can check a presented token against), never the token itself; the Account page shows a new token once, when you create it. With the fingerprint, Mirepoix keeps which member and which kitchen the token belongs to, its kind (the iPhone app, or the command line and the Account page), its access, the name you or the device gave it, when it was created and last used, and when it was suspended, if it was. For the iPhone app’s token it also keeps which sign-in the token belongs to and an installation id the app generates. The name is shown to you, on your Account page and in the emails below, and to your kitchen’s owners in Settings. Once a token other than the iPhone app’s adds or changes a recipe, its name is also shown to every member of the kitchen, in that recipe’s history, as described next. The iPhone app’s token is the exception on your Account page: it appears there as part of its sign-in, under “Where you’re signed in”, without its name. An app or tool holding a token can also ask Mirepoix about that token: its kitchen’s page address, its kind, its access, its name, when it was created and when it was last used, and whether it can make changes right now, which depends on its access and on the kitchen’s plan. Mirepoix gives that answer only to whoever presents the token.
What recipe history keeps. When a token adds or changes a recipe, that recipe’s history records the change the way it records any other: as a version saved by the member the token belongs to. That version is also marked with where the change came from. A token created on your Account page or by approving a device shows as via CLI, followed by the token’s name. The iPhone app’s token shows as via Siri, without its name; the name is still stored with the version, but history never shows it. When a token’s change renames a recipe, each other recipe updated to link to the new title gets a version saved the same way, with the same mark. Every member of the kitchen can see a recipe’s history. The mark is a copy, kept with the version, so it stays after the token ends: when it’s revoked, suspended, or deleted after 90 days unused, when agent access is turned off (which ends every token but the iPhone app’s), when its member leaves or is removed from the kitchen, or when its member’s account is deleted. Once the account is deleted, the history no longer shows the member’s name, but it still shows the token’s. The mark is kept with the version for as long as the version is kept, and every version is deleted when the kitchen is.
How a token ends. You can revoke, on your Account page, any token you created there or by approving a device, and an app or tool can revoke its own. A kitchen owner sees every member’s tokens for the kitchen in Settings and can revoke any of them. An iPhone app’s token comes back, though, whether an owner revoked it or it was suspended. While its member stays signed in, the app gets a new one when it’s opened after Siri has found the old one refused, or once the old one is a day old. To cut off a member’s iPhone app for good, the owner removes the member from the kitchen, as described below. Turning agent access off deletes every token for the kitchen except the iPhone app’s, and turning it back on restores none of them; the iPhone app’s tokens stay. A token created on the Account page or by approving a device that goes unused for 90 days stops working and is deleted, the next time it’s presented or by Mirepoix’s daily cleanup, whichever comes first. The iPhone app’s token ends with the sign-in that created it. Leaving a kitchen, or being removed from it, makes your tokens for it stop working and deletes them, the iPhone app’s included, and deleting your account or the kitchen deletes them too.
Automatic suspension. A token that goes over its own rate limits in three separate stretches within a day is switched off automatically, and the member it belongs to is emailed. The shared hourly budget for one member in one kitchen can refuse a token’s requests too, but that never counts toward switching a token off. A switched-off token can’t be used again; it stays in your list and the owners’ list, marked as suspended, until someone dismisses it or it ends in one of the ways above. The iPhone app’s token shows as suspended on its sign-in’s row instead of in your list. The iPhone app replaces its own switched-off token with a new one the next time it’s opened while you’re signed in, which deletes the old one.
Emails. Mirepoix emails you whenever you create a token on your Account page, and whenever a device you approved collects its token. That email names the token, the kitchen, its access, and the time, and shows the IP address and browser of the request that created it. For an approved device, that’s the request that collected the token — for a command-line tool, normally the machine that asked to connect and the software name it sent, not the browser you approved it in. The iPhone app’s token gets no email of its own: signing in to the app is a sign-in like any other, and you’re emailed about a sign-in from a device Mirepoix doesn’t recognize. Mirepoix also emails you when one of your tokens is suspended, as described above.
The request log. Mirepoix’s own request log, described under “Sign-in and security logs,” records each request’s IP address and the address it asked for. For an app or tool, that address names which operation it asked for, and in which kitchen; the log doesn’t keep what it sent for that operation to work on. The API accepts content only when it’s sent as JSON; a request carrying content sent any other way is refused without running. Saving a page to Pending imports can also write the page’s host to the separate security log, as described under “Sign-in and security logs.”
Connecting a command-line tool by approving it. A command-line tool can connect without you copying a token: it shows you an eight-character code, and you type that code on Mirepoix’s Connect a device page (/device) in a browser where you’re already signed in. While the request waits, Mirepoix keeps the name the tool gave itself, the IP address the request came from, the software name the request sent (its user-agent string), and when it asked. The approval page shows you all four so you can tell whether the request is yours. If you approve, you choose which kitchen the tool may use and whether its token is read-only or read-and-change, and the request records that you approved it, that kitchen and access, and when. If you deny it, the request records when. It also records when the tool last checked back and when it collected its token. Once the tool has collected its token, that token is a command-line token like one you create on your Account page: Mirepoix keeps, emails about, and ends it as described in this section. A request lasts ten minutes. Mirepoix deletes it within about an hour of its expiring or of the tool collecting its token. A request you approved is deleted as soon as that kitchen’s agent access is turned off, you leave or are removed from that kitchen, or the kitchen or your account is deleted. On Mirepoix’s own servers, both codes are stored only as fingerprints, never as the codes themselves.
What the command-line tool keeps on your own computer. “What Mirepoix keeps about a token” and “Connecting a command-line tool by approving it” describe what Mirepoix’s own servers keep. Mirepoix’s own command-line tool, described in The command-line tool, also keeps some things in files on the computer you run it from — files only that computer account can read, that Mirepoix’s servers never see:
- Your token, with the kitchen it’s for, its access, its name, the server it’s for, its kind, and when. It stays until
auth logoutconfirms the token is revoked or already invalid, or until you delete the file yourself. If logout can’t confirm that the token was revoked, the tool keeps it unless you tell it to forget it anyway, and either way it says to revoke it on your Account page to be sure. Logging in again, or adding a different token for the same kitchen, replaces the saved one and tries to revoke it; if that fails, it tells you which token to revoke on your Account page. - A login you’ve started but haven’t finished, with its device code, the name the tool gave itself (which includes your computer’s name unless you chose one), the server, how often it’s been polling, and when it expires — until the tool collects its token or learns you denied it. If it expires first, the tool deletes it the next time you run any command, whatever that command is.
- A cached copy of the API’s own description of what it can do. It holds nothing from your kitchen except the page address of the kitchen it was fetched for.
If the tool is stopped while saving, a leftover temporary file of its own, which can hold a token or a device code, is deleted by the first command you run once it’s ten minutes old; it leaves other files alone. If a login succeeds but its new token can’t be saved or isn’t one the tool can use, the tool tries to revoke it at once; if that fails too, or the token is one it can’t send at all, it tells you which token to revoke on your Account page.
What the iPhone app keeps on your iPhone for Siri. Once the app is out, it keeps some of your kitchen’s names on your iPhone, so Siri can recognize what you say. It reads them with its agent token, as described under “What a token can read,” when it gets its token and when you open the app, at most once every 15 minutes:
- A copy of your kitchen’s ingredient names: every ingredient in Mirepoix’s shared catalog with its other names, your kitchen’s own ingredients, and up to 150 your kitchen bought most recently. It’s kept in the app’s own storage, which its Share button and widget can’t read, and it can’t be read until you first unlock your iPhone after it restarts.
- On iOS 18 or later, ingredient names in iOS’s search index on your iPhone: the catalog’s names, with their other names, and your kitchen’s own names, so Siri can recognize them.
- Suggestions for Siri’s phrases: up to 150 names your kitchen bought most recently.
All of it is for the kitchen the app is in. Signing out of the app, or switching it to another kitchen, deletes the copy, takes the names out of iOS’s search index, and withdraws the suggestions. The app itself sends none of these names anywhere. When you use one of the app’s Siri actions, what leaves your iPhone for Mirepoix is the request that action makes with its agent token, one of those described under “What it allows.” Where Siri’s answer can go from there is described under “Where it goes.” When Siri adds to Reminders instead, what reaches Mirepoix is described next.
The app gives iOS no item names from your shopping list as suggestions for Siri’s phrases. When you check something off and Siri asks “Which item?”, the app gives Siri the items on your list that match your answer. It looks first in the copy of your list it keeps for its widget, and otherwise reads the whole list with its agent token, leaving out what’s already checked off. If more than one item matches, the names Mirepoix offers to choose from go to Siri too.
What the iPhone app reads from Reminders. Once the app is out, you can turn on Add with Siri through Reminders on your Account page in the app and choose one of your lists in Apple’s Reminders app, so that what Siri adds to that list ends up on your shopping list. Turning it on asks iOS to give the app full access to your reminders. iOS grants that access to all of your lists at once, but the app reads only these:
- The names of your reminder lists, with the account each belongs to. Apple’s list picker shows you the lists you can change, and the app looks among them for one named Groceries to start the picker on, and for your chosen list again if iOS gives it a new identifier.
- The open reminders on the one list you chose: each one’s title, and the identifier iOS gives it, so the app can delete the right ones. It leaves completed reminders alone, and doesn’t read a reminder’s notes, dates or other details.
When you open the app, when it gets its agent token, while it’s open and Reminders changes, and in the background when iOS allows, the app sends those titles to your kitchen as items for your shopping list, with its agent token. That’s the same request “What it allows” describes for putting items on the shopping list, and it’s sent to the kitchen the app is in. A title longer than 100 characters isn’t sent. The app then deletes from that list each reminder whose item Mirepoix answers is now on your shopping list, or was already there; any other reminder stays for next time. If you share that list with other people in Reminders, this includes reminders they add, and deleting them removes them from the list for everyone who shares it. Which list you chose, its name, and the identifiers iOS gives it and its account are stored only on your iPhone, in the app’s own storage. Turning the setting off forgets them, and so does signing out of the app; switching the app to another kitchen keeps them, and from then on items go to the new kitchen. Turning it off doesn’t take back the app’s access to your reminders, because iOS gives an app no way to do that; you can take it back in iOS’s Settings, under Privacy & Security, then Reminders. The app’s own log on your iPhone records how many reminders each import sent and deleted, never a title. Nothing new is kept on Mirepoix’s servers: what arrives is the request the app’s token already makes to put items on your shopping list, and Mirepoix’s log keeps of it what “The request log” describes. In a kitchen with a Pantry diary, the diary records each item this adds, as it does any other add, as described under “Pantry diary.”
Dates and times
So dates and clock times read the way you expect them to, Mirepoix asks your browser what it already knows about where it is and how it writes things down. On each visit your browser records two small notes on your own device: the name of its time zone — an entry from the standard public list, like America/New_York — and three formatting hints, namely which day your week starts on, whether you use a 12- or 24-hour clock, and whether you write the day or the month first.
These are hints, and Mirepoix checks each one against a fixed list of values it accepts. Anything it doesn’t recognize is treated as not set rather than stored.
When you create a kitchen, those four values are saved as that kitchen’s own settings. That is the part worth stating plainly: before, they were only ever read for the request at hand; now a new kitchen starts out holding them. From then on they are ordinary kitchen settings — shown and editable under Dates and times in Settings, changeable by a kitchen owner like any other setting, and no longer tied to whichever browser happened to create the kitchen. Changing them there is what governs; your browser’s notes don’t overwrite a kitchen that has its own.
For a kitchen that has no time zone saved, your browser’s note is used for that request only, to work out what “today” means for you, and isn’t stored.
A time zone is coarse location information, and it’s worth saying so plainly. An identifier like America/New_York tells Mirepoix roughly which part of the world you’re in, and the standard list labels its zones with city names, so a place name is often right there in the text. What it is not is a precise location: Mirepoix keeps no coordinates and no address, and a zone is shared by everyone across a wide band of the map — it doesn’t narrow you down within that band, and nothing here is used to work out where you are beyond making your dates and clock read correctly.
These settings stay inside your kitchen, the operator can’t read them through the admin console, and none of them is sent to Anthropic.
Sign-in and security logs
Mirepoix writes short lines to a security log so the operator can spot abuse like a password-guessing run. Most lines record a refusal at a security checkpoint — a sign-in, an invitation or join code, an email change, an agent token, or an incoming payment-provider message that didn’t pass — or a member typing too many codes on the Connect a device page. Others record a security event that succeeded, such as a sign-in completing, a new device appearing, a passkey being registered, sessions being ended or revoked, an invitation or join code being used, a kitchen transfer completing, an agent token being created, revoked, or suspended, a device asking to connect by approval or a member approving or denying one, or a kitchen owner turning agent access off. These lines never contain your recipes or anything else in your kitchen. Which details a line carries depends on which checkpoint wrote it. Some note only what happened; others also record the network address (IP) the request came from, an email address, an identifier for the account, kitchen, or sign-in the request belonged to, or some combination of these:
- The request’s IP address is recorded when a sign-in, passkey, invitation, or join-code attempt is refused or throttled by network address, and when an incoming payment-provider message is rejected.
- The IP address of a device asking to connect by approval, described under “Agent access (beta),” is recorded when Mirepoix accepts its request — before anyone has approved it, so a request nobody approves is recorded too. The lines for a member approving or denying a request carry only identifiers (and, for an approval, the access chosen), never an IP address. Typing too many codes on the Connect a device page writes a line naming which limit refused it, also with no IP address; a mistyped code writes no line, and neither do the limits on how often a device can ask to connect or check back.
- The request’s IP address is also recorded for agent tokens: when one is created, on your Account page, by the iPhone app, or by approving a device to connect; when a real token is refused — it went unused too long, its sign-in ended, its member left the kitchen, agent access was turned off, or it was used against another kitchen; when a rate limit refuses a token’s request after the token has been checked (once per limit window, not on every refused request — the API’s own limit by network address, which runs before any token is checked, writes no line); and when a token is suspended. For a token created by approving a device, the address recorded when it’s created is that of the request that collected it: for a command-line tool, normally the machine that asked to connect, not the browser you approved it in. It’s never recorded for a token Mirepoix doesn’t recognize, so guessing at tokens leaves no IP trail.
- The email address that was typed to sign in is recorded when someone tries to sign in with an address that isn’t a member here, and when a sign-in or email-change attempt is throttled by account.
- The new address someone tried to change their email to is recorded when that email change is refused because the address is already in use — a different address than the one above, since it’s the destination of the change rather than the one someone signed in with.
- For entries tied to a signed-in person, to a specific kitchen, or to a device’s request to connect — a payment-provider message, or a device asking to connect, can write one with nobody signed in — an identifier for the account, kitchen, sign-in, agent token, or device request the entry belonged to. Never a name or email address by itself, and never anything from inside your kitchen.
- The web address (host only — never the full page address) of a page sent to the operator’s recipe-capture intake is recorded on every capture attempt, accepted or refused. The endpoint serves the operator’s own browser bookmarklet, but a refused attempt from anyone on the internet is logged the same way.
- The web address (host only — never the full page address) of a page sent through your own recipe-import bookmarklet, or saved with the Mirepoix iPhone app’s Share button once that app is available (it isn’t yet) — both tied to your account by the same token and sent to the same place, separate from the operator’s own bookmarklet described above — is recorded when a capture is accepted, and when one is refused for being too large or for going over your account’s daily limit. It is never recorded for a rejection caused by a missing, wrong, or expired token, or a kitchen you don’t belong to, so an attempt to guess a working token leaves no host trail at all.
- The same web address (host only — never the full page address) is recorded for a page an app or tool saves to Pending imports with your agent token, described under “Pending imports”: when the page is saved, when it was already waiting and is sent again, when it’s refused for going over your account’s daily limit, and when it’s refused because the whole capture is over 64 KB. It is never recorded when only asking what saving would do, when a single part of the capture is over its own limit, when a read-only token or a kitchen that’s read-only because its plan has lapsed refuses the save, when the token itself is refused, or when the request itself is too large for the API to read at all (over 256 KB), which is refused before the capture is looked at. No IP address is recorded on this line.
You already see your own request’s IP address and browser in the sign-in, new-device, passkey-change, and new-agent-token emails Mirepoix sends you — which reach you through Mirepoix’s email company, as described under “Error reports and email” — and the approval page shows you the IP address and software of a device asking to connect. What this section adds is that the IP address is also kept in the server’s security log — the browser is not — alongside the admin catalog-gaps page views described above.
Enforcing those limits also means counting recent attempts, and unlike the log lines above — written only when one of the events described there occurs — a counter is written on every attempt. The sign-in and sign-in-code counters are filed under the email address that was typed together with the request’s IP address. The rest are filed under the request’s IP address alone, or under your account, your kitchen, one of your agent tokens, or you and one kitchen together — no other counter pairs an address with an IP. (The agent API counts by IP address before it checks any token, then counts each token’s requests, and counts each member’s requests in each kitchen, reads and changes alike, against a shared hourly budget. Connecting a device by approval counts a device’s requests to connect, and its checks for its token, by IP address, and counts codes typed on the Connect a device page by your account and by IP address.) Pairing the two is deliberate: it keeps someone else’s attempts from using up the allowance for your own sign-in.
To enforce these limits, Mirepoix temporarily stores counts of recent attempts using the identifiers described above. Each counter stops affecting access when its rate-limit window ends; the sign-in and sign-in-code windows last 15 minutes, and the agent API’s last one minute, or one hour for the shared budget for a member in a kitchen. Connecting a device by approval uses ten-minute windows, except for a device’s checks for its token, which use one minute. To switch off a token that keeps going over its own limits, Mirepoix also keeps notes under that token, written only when a limit refuses it: one per limit, which stops counting when that limit’s window ends, and a list of when it went over its own limits, one entry per window, each of which stops counting after a day. The counters and these notes are removed later through routine cache cleanup.
Alongside the security log, Mirepoix’s server keeps an ordinary request log, as web servers generally do. It writes a line for nearly every request it receives, whether anyone is signed in or not, recording the network address (IP) the request came from, the address it asked for, and when. That address is a page’s own address, so it can name your kitchen and the recipe or page you opened, and some addresses name an item: checking one off your shopping list, or answering about one in your Pantry, asks for an address with the item’s name in it. The line also records which part of Mirepoix answered and how, but nothing a request sent beyond its address: not a recipe you save, an item you add, a name you give a store, an aisle or a category, what you send to Mirabel, or the name of a file you import. When the server hands work to a background job, it writes a line naming the kind of job, never what it handed over. The operator reads this log to keep the service running and to trace abuse, such as a run of requests from one address. The front-end server that receives each request before passing it to Mirepoix keeps a log of its own, which also records each request’s IP address and the address it asked for, along with how the request was answered and the software name it sent (its user-agent string). That log is capped at about 10 MB: once it fills, older lines are dropped to make room for new ones, so how far back it reaches depends on how busy Mirepoix is, not on the calendar, and an update to Mirepoix doesn’t clear it.
The security log and the request log are one log on Mirepoix’s server, kept and cleared together. They don’t expire on a set schedule — what clears them is a new release. Each time Mirepoix is updated the server starts fresh with an empty log, and updates ship every few days, so a line usually survives days rather than months. A storage budget of about 300 MB caps the log as well, but at the rate these lines are written it has never been reached, so it isn’t what removes them. Each update keeps the logs of the five server copies before it and deletes older ones, so a line lasts until about the sixth update after it was written — usually a couple of weeks or less, and longer whenever releases are further apart. There’s no fixed ceiling here: how long one of these lines survives tracks how often Mirepoix is updated. The hosting company’s daily copies of the whole server, described under “Backups,” can keep these logs for up to a week longer. And when a request or a background job fails, the last lines the server wrote to these logs before the failure can travel with its error report to Honeybadger, as described under “Error reports and email,” where Mirepoix’s updates don’t clear them.
Error reports and email
Two more companies handle part of Mirepoix’s work: Honeybadger collects reports of errors, and Resend delivers Mirepoix’s email.
Error reports (Honeybadger). When something goes wrong — a page fails, a save errors out, a background job breaks — a report goes to Honeybadger, an error-monitoring company, so the operator can find and fix it. A report is sent only when something goes wrong; Honeybadger isn’t sent a record of ordinary use. Reports come from two places.
When a request to Mirepoix’s server fails, the server’s report carries:
- what went wrong, and where in Mirepoix’s code
- the address the request asked for, which can name your kitchen, a recipe, or an item on your shopping list
- what the request sent, with these blanked out of it — no recipe text you saved, no QuickBite, no item you added to your shopping list, no name you gave a store, an aisle or a category, nothing you sent to Mirabel but an imported page’s site name, and no password, sign-in code or token. Most other text a request sends is blanked as well, apart from identifiers, the short names in page addresses and a few settings, but not all of it: text sent as a list, or as the name of a field rather than its value, can arrive as it was sent. Numbers and yes-or-no choices are left as they were sent
- the request’s headers, which include your network (IP) address and your browser’s software name (its user-agent string), but not its cookies, which are blanked
- the request’s session data, which holds bookkeeping for your sign-in and the next notice a page shows you, such as a kitchen’s or a token’s name — never your recipes, Menu, Pantry or shopping list
- a short trail of what the server did just before: the last lines it wrote to its log, the pages it drew, and the database queries it ran, with the queries’ values left out
- sometimes, an identifier for your kitchen, a recipe, or another record — a number, never its name
When a background job fails, its report carries what the job was handed, and the same kind of trail. Less is blanked out of it than out of a request’s report: recipe text, a list item, a name and other things you type are blanked where the job holds them under a label Mirepoix knows to blank, as are passwords, sign-in codes and tokens, but the rest is reported as the job was handed it. That’s usually identifiers. Some carry more: the one that updates nutrition after one of your kitchen’s ingredients changes carries those ingredient names; the one that sends a sign-in code carries the IP address and browser that asked for the code; and one that sends you an email carries what that email names, such as your kitchen’s name, a passkey’s or token’s name, an old and a new email address, or an IP address and browser.
When a page hits an error in your browser, your browser sends the report to Honeybadger itself, so Honeybadger sees your network address, as any site you reach does. The report carries what went wrong, the page’s address and the address of the page you came from, your browser’s software name, and a short trail of what happened on the page before it: pages you went to, requests the page made, notes it wrote to the browser’s console, and the text of what you tapped or clicked, up to 300 characters, with a description of where it sits on the page that can include the labels and titles on it and around it. That text can be a recipe’s title, an item on your shopping list, or words from one of Mirabel’s answers. Mirepoix’s sign-in cookies can’t be read from the page, so a browser’s report never carries them.
How long Honeybadger keeps a report is set by its own terms, not by Mirepoix.
Email (Resend). Mirepoix’s emails — sign-in codes, invitations, and the notices described on this page — are delivered by Resend, an email-delivery company. Each one passes through Resend with what it says. Besides your email address, depending on the email, that can be your name, your kitchen’s name, another member’s name or email address, a sign-in, invitation or confirmation code and its link, the old and new address of an email change, the name of a passkey, a device or an agent token and the app it’s for, and the IP address and browser of the request it’s about. No email carries your recipes, Menu, Pantry or shopping list. How long Resend keeps what it delivers is set by its own terms, not by Mirepoix.
Backups
Every hour, Mirepoix backs up its databases and the files it stores, such as recipe photos, so a backup holds your kitchen’s content and your account. The logs described above aren’t part of it. Each backup is encrypted on Mirepoix’s server before it’s sent to a storage company, away from that server, and the storage company doesn’t hold the key, so it can’t read them. Older backups are thinned out as they age: Mirepoix keeps the newest backup from each of the last 24 hours, seven days, four weeks and twelve months in which a backup was made, and deletes the rest. The count is of backups, not of the calendar: while backups run every hour that comes to about a year, but if they stopped for a while, the oldest kept ones would reach back further by the same gap. So something deleted from Mirepoix — a recipe, a conversation with Mirabel, a whole kitchen — can stay in an older backup for about a year, or longer after such a gap, until that backup is deleted in turn. Separately, the company that hosts Mirepoix’s server keeps a copy of the whole server for each of the last seven days. Backups are there to bring Mirepoix back after a failure; the operator also restores one from time to time to check that restoring works.
What never happens
Your kitchen’s content — your recipes, tags, pantry, shopping list, menu history, and the link between any of those and your account — never:
- Gets sold
- Gets shared with third parties
- Gets used for advertising, recommendations, or behavioral profiling
- Gets exported to third-party analytics
- Gets used to train any machine-learning model, by the operator or by any third party
- Gets mapped to your kitchen identity in the admin view or in exports, or in logs other than the request log described under “Sign-in and security logs,” whose page addresses can name your kitchen and a recipe — or in an error report, described under “Error reports and email,” whose addresses and identifiers can do the same
The Pantry’s own Recommended reminder length is worked out inside your kitchen from your own answers. It’s shown only there, and never shared or used for anything else, apart from the Pantry diary of a kitchen that asked for one, which records it each time it changes, as described under “Pantry diary.”
The one exception is the k-anonymized ingredient-name aggregate described above under “What the operator sees.” That aggregate is used solely by a human operator to decide which entries to add to the shared catalog. It isn’t sold, isn’t shared with third parties, isn’t used for machine-learning training, and contains no link back to your kitchen.
The import-matching counts described above under “Imported ingredient matches” are the second carve-out, and a narrower one: they carry no ingredient name at all, and the cross-kitchen report shows a figure only once at least three kitchens stand behind it. The one place a kitchen identity does appear is the server’s own log line for a new recipe, which records which kitchen the recipe was added in beside those counts — never an ingredient name, and nothing else from the recipe. Like the aggregate above, none of it is sold, shared with third parties, or used for machine-learning training.
A third carve-out is the content the AI features send to the four outside AI companies described above under “AI features and third-party processing”: to Anthropic when someone in your kitchen uses Mirabel or AI import; a photo you import to Mistral AI, to read its text; ingredient lines, the lines Mirepoix’s reader takes for a recipe’s ingredient list when it pieces one together from text, every line of text read from a photo you import, the names of new items typed onto the shopping list, and a recipe imported with no category, as Mirepoix read it, with your kitchen’s category names, to Typesafe AI, on their own; and a recipe’s text to OpenAI, unless a kitchen owner turns sketches off. Mirepoix adds nothing that identifies you or your kitchen, none of the four uses it to train its models, and Mirepoix’s logs never hold it. What Mirabel works with is kept on Mirepoix’s servers for about three days, associated with your kitchen and account for that window, then deleted automatically. What Mirepoix keeps from a sketch stays with the recipe until the recipe or the kitchen is deleted, except that its cost also goes into the monthly spending tally described there. None of it is sold, or shared with anyone beyond those four.
A fourth carve-out is what an error report can carry to Honeybadger, described above under “Error reports and email”: a page’s address, which can name your kitchen, a recipe or a shopping-list item; what a failed request sent, apart from what’s blanked out; the server’s recent log lines, which can name an ingredient; an identifier for your kitchen or a recipe; what a failed background job was handed, such as ingredient names; and, from your browser, the addresses of recent pages and requests, console notes, and the text of what you tapped or clicked. A report is sent only when something goes wrong, and only so the operator can find and fix it. Mirepoix doesn’t sell it or use it to train any model.
A fifth carve-out is a recipe line a member sends with Report this, described above under “Reported nutrition gaps”: the ingredient’s name, which gap it is, the line’s unit and its text. It skips the three-kitchen floor, because a cook chose to send it. It goes to GitHub, in the project’s private issue tracker and possibly its source code, and the AI agents working for the operator read it there, on models from Anthropic and OpenAI. A report names no kitchen, but it isn’t anonymous: Mirepoix has few kitchens, and matching its time against the server’s logs can tie it to your kitchen, the recipe, the exact line and the IP address it came from, and matching that address against the one Mirepoix keeps for each sign-in can tie it to the member who sent it, for as long as the logs keep the tap’s line. Mirepoix doesn’t sell it, use it for advertising, or train any model on it. Whether Anthropic or OpenAI may keep or train on a reported line is set by the operator’s terms with them, and GitHub keeps it under its own terms.
A sixth carve-out is the Pantry diary, described above under “Pantry diary,” kept only for a kitchen that asked the operator for one: a record of each change to an item’s Pantry or shopping-list state, with the member who made it and when, and a daily list of what’s on the Pantry page. Everything this paragraph says also covers that kitchen’s menu history, which the operator and those agents may read beside the diary. It names your kitchen and the member who acted, so it’s released from the line about mapping your content to your kitchen identity, and from “the link between any of those and your account.” It’s a record of how your household uses the Pantry and the shopping list, read to study and improve them, and what’s learned from it may change the app for every kitchen, including what the Pantry suggests, so it’s released from “recommendations” and “behavioral profiling.” The operator and the AI agents working for them may fit and test models on it, so it’s released from the training promise too. Those agents run on models from Anthropic and OpenAI, so it reaches those companies, and whether they may keep or train on what the agents read is set by the operator’s terms with them; findings drawn from it may also be written up in the project’s private source code on GitHub. Beyond that, it isn’t shared. Mirepoix doesn’t sell it, use it for advertising, or export it to third-party analytics.
The last carve-out is content a member of your kitchen directs elsewhere with their own token, described above under “Agent access (beta).” For an app or tool a member connects with a token they create, it applies only if a kitchen owner has turned agent access on. For the Mirepoix iPhone app’s token, once the app is out, it applies whether agent access is on or off. Kitchen content an app or tool reads with a member’s token goes wherever that member sends it — Mirepoix doesn’t send it there or choose where it goes — and what happens to it there, including whether it’s used to train a model, is up to that destination and its own terms. Mirepoix itself still doesn’t sell it, share it, or use it to train any model.
Changes
- 2026-10-15 — Described the Pantry diary, in a new section, “Pantry diary.” It’s off for every kitchen. The operator switches it on only for a kitchen that asks, once its owner has confirmed that its members know, and there’s no setting for it. While it’s on, each change to an item’s Pantry or shopping-list state records the item’s name, and the words a member used to add it to the shopping list when they differ from that name; what happened; the before and after of what changed; which member did it, or that Mirepoix or an import did; how a member did it (a browser, the Mirepoix app, an offer from Mirabel, the iPhone app’s token, or another app or tool with a token); and when they acted and when it reached Mirepoix. It also records taps that changed nothing and, once a day, every item on the Pantry page with which part of the page it’s in, how many days it has left and its reminder length. Until now this page said that who in your kitchen typed what, or when, stayed inside your kitchen, and that your pantry and shopping list were never used for recommendations or behavioral profiling, never used to train a model, never shared with third parties, and never tied to your kitchen identity outside the logs and error reports; and that the Recommended length was never used for anything else. The operator and the AI agents working for them, on models from Anthropic and OpenAI, read the diary, and beside it that kitchen’s menu history, to study and improve the Pantry and Groceries, including fitting and testing models on them, and what’s learned may change the app for every kitchen. Until now this page also said a kitchen’s menu history stayed inside it. Whether Anthropic or OpenAI may keep or train on what the agents read is set by the operator’s terms with them, and findings drawn from it may be written up in the project’s private source code on GitHub. An entry is deleted 13 months after it’s recorded. Switching the diary off, or deleting the kitchen, deletes every entry at once, and deleting a member’s account keeps their entries, naming no one. An encrypted backup may keep an older copy, and a copy the operator takes to study isn’t deleted by any of these. The diary isn’t part of a kitchen export. Amended so they stay true: the page’s opening; “Your pantry contents and overrides”, “Your shopping list, custom items, and aisles”, “Your menu history” and “Who in your kitchen typed what, or when” under “What stays in your kitchen”; “The record itself stays inside your kitchen too” under “Menu history”; “What it’s used for”, whose “One thing” now sets the diary aside; “Nothing goes to Anthropic unless someone in your kitchen uses her” under “AI features and third-party processing”, which now sets the diary aside, and the ways content leaves your kitchen there, now four; the last paragraph of “What the iPhone app reads from Reminders”, which now says the diary records what it adds; the Recommended length’s “never shared or used for anything else” under “What never happens”; and “What never happens”, which gains a carve-out for the diary that releases it from “shared with third parties”, “recommendations”, “behavioral profiling”, the training promise, and the lines about your kitchen identity and your account, for the diary and that kitchen’s menu history alike. The Terms’ promise not to train machine-learning models on your content gains the same exception, in their own 2026-10-15 entry. Nothing changes for a kitchen that hasn’t asked for the diary, and nothing new is asked of you.
- 2026-10-14a — Disclosed a new outside company, Mistral AI, which reads the text on photos you import, described in a new paragraph, “Photo import (Mistral AI)”, under “AI features and third-party processing.” Each photo goes to Mistral AI on its own, with nothing that identifies you or your kitchen and nothing from your conversation. It’s resized on your device, and its camera and location data are removed before it’s sent: Mirepoix’s server now removes them itself, because a phone’s browser can leave camera data in a photo it resizes, so the page no longer says this happens on your device. Training is turned off for Mirepoix’s account, so under its commercial terms Mistral AI doesn’t train on what Mirepoix sends; its terms don’t say how long it may keep a photo, and this page promises no period. Photos for import no longer go to Anthropic. The draft made from one joins your conversation like any other, so its text goes to Anthropic with your later messages to Mirabel. Typesafe AI now also receives every line of text read from a photo you import, to say which lines are the title, the ingredients, the steps and so on. Photo import draws on the AI allowance, and the monthly spending tally now records what photo reads cost at Mistral AI and how many photo imports there were. Amended so they stay true: the page’s opening, the section’s opening, “Mirabel and AI import (Anthropic)”, “Importing with Add Recipe”, “Ingredient checks and aisle suggestions (Typesafe AI)”, the AI allowance and tally paragraphs, and the AI carve-out under “What never happens.” Nothing new is asked of you.
- 2026-10-14 — Deleting a recipe now deletes its menu history right away, described under “Menu history.” Before, deleting a recipe took it off the menu and closed its record, and that record was kept like any other, deleted 13 months after the recipe left the menu. Meanwhile, restoring the recipe, or giving a new recipe the deleted one’s name, picked that record back up. Now a restored recipe, or a new one given a deleted recipe’s name, starts with no menu history. The 13-month retention for the recipes you keep is unchanged. Nothing new is kept or sent anywhere.
- 2026-10-13c — The Add Recipe sheet now reads a recipe with AI itself, described under “AI features and third-party processing”, “Importing with Add Recipe.” When a read doesn’t come out cleanly, its AI choice is Read it with AI, which runs the same AI import Mirabel runs, in the sheet, where it used to hand the link or text to Mirabel. What goes to Anthropic is the same as before: the page or text you gave the sheet, with your kitchen’s category and tag names. What changes is where it’s kept. Before, it went into Mirabel’s conversation, which is kept for about three days. Now none of it goes there: Mirepoix’s server holds the link or text, and then the draft, only until the sheet picks the draft up, and deletes it then; if the sheet never does, nothing can read it 30 minutes after you tapped, and it’s cleared from the server’s cache within two weeks. From a photo still hands the photo to Mirabel. It draws on the AI allowance as before. Amended so they stay true: the page’s opening, and the opening of “Mirabel and AI import (Anthropic)”, which now say that something goes to Anthropic when someone asks the sheet to read a recipe with AI, and the latter that the sheet runs AI import too. Nothing new is sent to any outside company.
- 2026-10-13b — Corrected what the agent API’s shared hourly budget counts. Under “Sign-in and security logs”, the page said Mirepoix counts reads for each member in each kitchen against it; it now counts every request, reads and changes alike, including asking what a change would do. The counter is filed under the same thing as before, you and one kitchen together, and keeps nothing new.
- 2026-10-13 — Disclosed a new use of Typesafe AI, described in a new paragraph under “AI features and third-party processing”, “Category suggestions for imports.” When you import a recipe with the Add Recipe sheet and what Mirepoix reads gives it no category of its own, Mirepoix can send Typesafe AI the recipe as Mirepoix read it (its title, description, and each step’s heading, ingredient lines and instructions, cut short if very long), with your kitchen’s category names to choose among, so it can suggest a category. Until now this page said that only ingredient lines, and the lines Mirepoix’s reader took for an ingredient list, went to Typesafe AI from a recipe, and that nothing else from a recipe, or from the text or page it came from, went. A recipe’s title, description and steps, and your kitchen’s category names, are new. Nothing outside the draft goes: not the comments, menus or the rest of the page or text Mirepoix left out of it, and not the recipe’s servings, times, tags or source. Mirepoix adds nothing that identifies you or your kitchen. The suggestions run on their own, there’s no setting to turn them off, and they don’t draw on the AI allowance. The answer only fills in Category in the editor, which you can change before you save; a recipe that already names a category keeps it, and nothing is asked. Mirepoix’s logs keep the counts, timings and sizes of these requests and how each suggestion turned out, never the title, a line or a category name. Amended so they stay true: the page’s opening; the opening of “AI features and third-party processing”; the last sentence of “Importing with Add Recipe”; the Typesafe AI paragraph, whose “Nothing else from a recipe … goes” now speaks for the ingredient checks; the line about the AI allowance; and the third carve-out under “What never happens”. Nothing new is kept on Mirepoix’s servers.
- 2026-10-12b — Described Report this, in a new section, “Reported nutrition gaps.” On a recipe line whose nutrition Mirepoix can’t count, a kitchen member can now tap Report this in the line’s detail panel. Mirepoix stores a report of it on its own server: the ingredient’s name, which gap it is, the line’s unit, the line’s text, note included, and when it was made, with no kitchen, member or recipe. Until now this page said your recipes’ text stayed inside your kitchen apart from what the AI features, a member’s token and an error report carry. A reported line’s text now goes further. It skips the three-kitchen floor that keeps a name out of the operator’s view, because a cook chose to send it. The operator, or an AI agent working for them, copies reports into the project’s private issue tracker on GitHub, one issue per gap, and the line’s text may also be kept in the project’s private source code there. The AI agents that work on the shared catalog read it there, on models from Anthropic and OpenAI. The promises under “AI features and third-party processing” don’t cover them: whether Anthropic or OpenAI may keep or train on a reported line is set by the operator’s terms with them, and GitHub keeps it under its own terms. A report isn’t anonymous. Mirepoix has few kitchens, and matching a report’s time against what else the server keeps can tie it back. The tap’s line in the request log names your kitchen and the exact recipe line, and so the recipe, with the IP address it came from; the front-end server’s log records the same with your browser’s software name. Those logs keep it for about six updates, usually a couple of weeks or less, or until newer lines push it out, and the hosting company’s daily copies up to a week longer. The logged IP address can tie it to the member who sent it too: Mirepoix keeps the IP address each sign-in came from under that member’s account, as the Account page’s Where you’re signed in list shows, so a tap from the same address can be matched to them, for as long as the logs keep the tap’s line; in a kitchen with one member, the kitchen is the member. To stop a flood, Mirepoix counts each member’s reports over an hour, but only in the running server’s memory, never in its database or a backup. A second counter counts every kitchen’s reports together over a day, under no name. Mirepoix deletes a report 90 days after it’s made, whether or not anyone read it, including after the recipe or the kitchen is deleted; an encrypted backup may keep an older copy, and text that reached GitHub stays there with no set end. Amended so they stay true: the page’s opening, which now names Anthropic and OpenAI as the agents’ model makers; “Your recipes and their text” under “What stays in your kitchen”; “What the operator sees”; “What it’s used for”, which now says a reported gap is used to decide which catalog entries to add or fill in, and is read and acted on by a person and the AI agents working for them, while the catalog-gaps aggregate’s use is unchanged; “Nothing goes to Anthropic unless someone in your kitchen uses her” under “AI features and third-party processing”, which now sets a reported line aside, and the ways content leaves your kitchen there; and “What never happens”, which gains a carve-out for reports that releases them from its training promise.
- 2026-10-12 — Corrected what the request log and an error report are said to hold, described under “Sign-in and security logs” and “Error reports and email.” The request log no longer records what a request sent, apart from its address, and a line handing work to a background job no longer names what it handed over, but this page still said it did: that a request’s contents were recorded apart from a list of things blanked out, so a new name for a store, an aisle or a category, or the name of a file you import, was recorded as sent, and that a job’s line could name ingredients from your kitchen. Neither is written now. The request log keeps less than this page described. An error report for a failed request now says what it blanks in its own words, instead of pointing to the request log’s old list: the same things, plus the names of stores, aisles and categories, and most other text a request sends, though text sent as a list or as a field’s name can arrive as sent. What a failed background job’s report blanks is now described more exactly, without changing. Nothing new is kept or sent.
- 2026-10-11b — The command-line tool now keeps the promises under “What the command-line tool keeps on your own computer” in a few more cases. A token the server issues that the tool can’t send is no longer just refused: the tool forgets the started login and tells you which token to revoke on your Account page. A saved token that someone edited into one the tool can’t send is never sent, and replacing it names it for you to revoke. If you stop the tool while it is revoking the token a new login replaced, it tells you which one to revoke. The cleanup of leftover temporary files deletes only the tool’s own, never another file in its folders. That paragraph’s last two sentences now say so for the temporary files and for a token the tool can’t send. Nothing new is kept, on your computer or on Mirepoix’s servers.
- 2026-10-11 — A token, the iPhone app’s included, can now read the amount of each item on your shopping list, described under “Agent access (beta)”, “What a token can read”. It’s the amount as the list shows it, such as “2 cans” or “400 g, plus some more”. On a row that also covers another ingredient, it includes that ingredient’s amount and name too, such as “2 + 1 tbsp lemon zest” on a row for lemons. An item with nothing measured has none. The amount comes with every read of the list, and with the list a token gets back after it changes the shopping list or the Pantry. The iPhone app, once it’s out, reads the list this way to keep your Apple Watch and its widget up to date, amounts included, while the app isn’t open. Nothing new is kept on Mirepoix’s servers.
- 2026-10-10f — Disclosed more of what goes to Typesafe AI, described under “AI features and third-party processing”. When Mirepoix pieces a recipe together from text itself — text you paste or a single file you give Mirabel or the Add Recipe sheet, a web page without structured recipe data it can read, or a video’s description — it now sends Typesafe AI the lines its reader took for the ingredient list, with any headings inside that list, and asks which of them are ingredients. A line Typesafe AI is confident isn’t one is left out of the draft’s ingredients; when it’s the recipe’s name, above the list, it can still become the draft’s title. So some of the lines sent turn out to be headings, the recipe’s title, a step or tip, a serving, time or nutrition line, or part of the website around the recipe. Until now this page said the lines sent came from your recipes and QuickBites and from recipe pages you import, and that nothing else from a recipe went. Each request carries one stretch of that list and nothing around it. Each line goes as it’s written, so anything inside one, such as a web address or a name, goes with it, but Mirepoix adds nothing that identifies you or your kitchen, and no page address of its own. Like the other ingredient checks, these run on their own, there’s no setting to turn them off, and they don’t draw on the AI allowance. Mirepoix’s logs keep the counts, timings and costs of these requests and how many lines each read left out, never a line. Amended so they stay true: the Typesafe AI paragraph under “AI features and third-party processing”, whose “Nothing else from a recipe goes” now also speaks for the text or page a recipe came from, the third carve-out under “What never happens”, and the last sentence of “Importing with Add Recipe”, which now says the lines can come from text you paste or a file as well as a page. Nothing new is kept on Mirepoix’s servers.
- 2026-10-10e — Described importing with Add Recipe, in a new paragraph under “AI features and third-party processing”, “Importing with Add Recipe.” Add Recipe now opens a sheet that reads a link or pasted text on Mirepoix’s own server, without Mirabel, where it used to open her. Nothing the sheet reads goes to Anthropic unless you hand the recipe to Mirabel from it. A page the sheet fetches is under the same rules as one Mirabel fetches: only when you ask, not stored, and recorded by site name only. A recipe photo the page offers is fetched to show it in the editor and fetched again when you save, and nothing of it is kept in between; a photo from a page Mirabel imports is still held on her side until you save, as before. A recipe imported this way also no longer passes through Mirabel’s conversation, so none of it is in what’s kept there for about three days. “Imported ingredient matches” now names Add Recipe among the ways a new recipe arrives; the matches recorded are the same. Nothing new is sent to any outside company, and nothing new is kept.
- 2026-10-10d — Corrected “How a token ends” under “Agent access (beta)”. It said a kitchen owner can revoke any member’s token, without saying that the iPhone app’s token comes back. While its member stays signed in, the iPhone app gets a new token when it’s opened after Siri has found the old one refused, or once the old one is a day old, whether an owner revoked the old one or it was suspended. Removing the member from the kitchen is what cuts off their iPhone app for good. Nothing about how tokens work changed, and nothing new is kept. This page now says what already happened.
- 2026-10-10c — Mirabel’s answers no longer store a pointer to the pane they opened, described under “How long this is kept.” Her workshop, the pane beside the chat that showed a draft, a proposed edit, your cooking preferences, or what a saved recipe still needs from the store, is gone, so there is nothing for a pointer to reopen. That paragraph now names two bookkeeping notes where it named three. Pointers stored before this change stay with their conversations and are deleted with them, on the same roughly-three-day schedule. Also gone with the workshop is its add for what a saved recipe still needs from the store, described in the 2026-08-03 entry: one button that put the whole list on your shopping list, however long it ran. She now offers those items with the same confirm chip as any other shopping-list offer, which lists what she’d add, up to twenty items, and adds nothing until you tap yes. What she reads and sends to Anthropic to work out that list is unchanged, and she can’t read, send, add or change anything she couldn’t before.
- 2026-10-10b — The monthly tally of each kitchen’s AI spending, described under “AI features and third-party processing”, now covers recipe sketches. For each month it records what that month’s sketch requests cost at OpenAI and how many there were, whether or not a request ended in a drawing. Before this, the tally covered only the four kinds of work that go to Anthropic, and what a sketch cost was kept with the sketch itself, which is deleted with its recipe, and in the server’s logs, which updates clear within weeks. Now each kitchen’s monthly total for sketches is also kept until the kitchen is deleted. It holds nothing anyone typed and none of the kitchen’s content, and nothing about which member asked, which recipe a sketch was for, or when, beyond the month. This page now also says that each sketch’s own cost is kept with it, which it didn’t say before. Sketches still don’t draw on the AI allowance, and ingredient checks and aisle suggestions (Typesafe AI) still aren’t in the tally. Amended so it stays true: the third carve-out under “What never happens”, which said everything Mirepoix keeps from a sketch stays with the recipe. Nothing new is sent to OpenAI.
- 2026-10-10 — Disclosed a new use of Typesafe AI, described above under “AI features and third-party processing”: suggesting an aisle for a new item on your shopping list. When you type an item onto the list that Mirepoix doesn’t recognize, and your kitchen has no item by that name, Mirepoix can send the name you typed to Typesafe AI, with the aisle names from the shared catalog to choose among. When Typesafe AI is fairly sure, the item lands in the aisle it picks instead of in Miscellaneous. Nothing that identifies you or your kitchen goes with the name, and nothing else from your list or your stores. Until now this page promised that Typesafe AI received only ingredient lines and names, from your recipes, QuickBites and the recipe pages you import. The suggestions run on their own, there’s no setting to turn them off, and they don’t draw on the AI allowance. Mirepoix’s logs keep the counts, timings and costs of these requests and how each suggestion turned out, never the name or the aisle. Amended so they stay true: the page’s opening, the opening of “AI features and third-party processing”, the line about the AI allowance, and the third carve-out under “What never happens”. The only new things kept on Mirepoix’s servers are a count of how many suggestions your kitchen has asked for, and when that count began (it starts over after a day), and, on an item whose aisle was suggested, a mark saying so. The mark lets an unused one-off be forgotten like one in Miscellaneous, and it clears when you move the item. The aisle Typesafe AI picks is kept as the new item’s aisle, which you can change like any other.
- 2026-10-09g — The Mirepoix iPhone app, once it’s out, no longer gives iOS up to 100 item names from your shopping list as suggestions for Siri’s phrases. Its Siri shortcuts that change your list or Pantry — “We’re out of”, “We’ve got plenty of” and “Check off” — no longer name an item in what you say; Siri asks which. Under “What the iPhone app keeps on your iPhone for Siri”, the suggestions are now only the up to 150 names your kitchen bought most recently. A new paragraph there says when item names from your list still reach Siri: when you check something off and Siri asks “Which item?”, the app gives it the items on your list that match your answer, from the copy of your list it keeps for its widget or read with its agent token, and the names Mirepoix offers when more than one matches. That already happened before this change; the page didn’t say so. Nothing new is kept, and nothing new is read from your kitchen.
- 2026-10-09f — Disclosed what the Mirepoix iPhone app will read from Apple’s Reminders app once the app is out, in a new paragraph under “Agent access (beta)”, “What the iPhone app reads from Reminders”. With Add with Siri through Reminders turned on and a list chosen, the app reads the titles of that list’s open reminders and sends them to the kitchen the app is in as items for your shopping list, with its agent token, the same request “What it allows” already describes. It then deletes from that list each reminder whose item Mirepoix answers is on the shopping list or was already there. On a list shared in Reminders, that includes reminders others add, which then disappear for everyone who shares the list. The app reads nothing else from Reminders but your lists’ names and the accounts they belong to, which it uses to show Apple’s list picker on a list named Groceries and to find your chosen list again. A title over 100 characters isn’t sent. Which list you chose is stored only on your iPhone; turning the setting off or signing out of the app forgets it, and switching kitchens keeps it. Turning it off doesn’t take back the app’s access to your reminders, which only iOS’s Settings can, and the app’s own log on your iPhone keeps counts, never a title. Amended so it stays true: the paragraph before it now says that what reaches Mirepoix when you use one of the app’s Siri actions is that action’s request, instead of saying so of any use of Siri. Nothing new is kept on Mirepoix’s servers, and nothing new is read from your kitchen.
- 2026-10-09e — Mirepoix now keeps a monthly tally of each kitchen’s AI spending, described under “AI features and third-party processing”. For each kind of work that draws on the AI allowance — Mirabel’s chat, AI import, condensing a recipe, and revising one — it records what that month’s requests to Anthropic cost, how many there were, how many had to prepare Mirepoix’s own standing instructions at Anthropic afresh, and how many could reuse them. Before this, what those requests cost was kept only as the running total behind the allowance, which clears every month, and in the server’s logs, which updates clear within weeks. The tally is kept month after month until the kitchen is deleted. It holds nothing anyone typed and none of the kitchen’s content, nothing about which member made a request or when beyond the month, and the operator reads it one kitchen at a time with a command on the server, not in the admin console. Nothing new is sent to Anthropic.
- 2026-10-09d — Disclosed a third small bookkeeping note stored with a Mirabel recipe draft, described above under “How long this is kept.” When you save a recipe from one of her drafts, whether in the editor or from her workshop bench, Mirepoix now marks that draft as saved. It records only that a recipe was saved from the draft, not which recipe, and nothing else about it. It lets Mirabel stop treating a recipe you’ve already saved as the draft in front of you, so she no longer brings it up as one and no longer sends it to Anthropic as one with your next message, and it lets the choices under the draft show it as Saved on every device. The note is kept and deleted with the conversation, on the same roughly-three-day schedule, and it is not sent to Anthropic. Mirabel can’t read, send, add, or change anything she couldn’t before. What changed is that this note is stored at all: this page’s description of the notes stored with her answers named two, and now names three.
- 2026-10-09c — Deleting a recipe no longer deletes its photo right away. The photo is now kept for as long as the deleted recipe is: Restore in Recently deleted brings it back, and Delete forever deletes it along with the recipe. Meanwhile it isn’t shown anywhere, and Mirepoix stops serving it at its old address, though for a published kitchen a cached copy can answer there for up to an hour. A new paragraph under “Recipe photos” says so; before, the page said nothing about what happens to a deleted recipe’s photo. The deleted recipe’s star and pin are now kept with it too, for the same reason, and come back on a restore. Nothing new leaves your kitchen.
- 2026-10-09b — Named, in a new section, “Error reports and email”, the two companies that handle part of Mirepoix’s work beyond the AI features. Both were already in use, and the page said nothing went to any other company beyond the three AI companies, members’ tokens and the encrypted backups. When something goes wrong, a report goes to Honeybadger, an error-monitoring company. A report from Mirepoix’s server carries the address the request asked for; what the request sent, with recipe text, QuickBites, shopping-list items, what you send to Mirabel, and passwords, codes and tokens blanked out; your IP address and browser; the server’s last log lines; and sometimes an identifier for your kitchen or a recipe. A failed background job’s report carries what the job was handed, which can be ingredient names or what an email it sends names. A report from your browser carries the page’s address, recent pages and requests, console notes, and the text of what you tapped or clicked. Mirepoix’s emails are delivered by Resend, with your address, names, your kitchen’s name, codes and links, and for some an IP address and browser, but no recipe, Menu, Pantry or shopping list. Until this change, the request log and the server’s error reports also held a recipe’s whole text when it was saved, a QuickBite’s name and ingredients, the names of items added to the shopping list or checked off at the end of a shop, a recipe’s category and tags when set on the recipe, and part of what a Mirabel message sends to Anthropic: a note typed during a guided step, the note of which page you were on with a recipe’s title, and an imported page’s title, structured recipe data and ingredient lines. Server error reports also held your browser’s cookies. All of that is now blanked out. And the server’s log held, for each email Mirepoix queued, what that email names — such as an email address, a member’s or kitchen’s name, or an IP address and browser — though “Sign-in and security logs” said the log never keeps the browser; it no longer holds any of it. “Sign-in and security logs” now says the request log records what a request sent, apart from what’s blanked; that some addresses name a shopping-list or Pantry item; that a line handing work to a background job can name ingredients; and that a failure’s last log lines can travel with its error report. Amended so they stay true: the opening paragraph; “Nothing goes to any other company” under “AI features and third-party processing”; the line under “Imported ingredient matches” that said no ingredient name reached the server’s log, which now speaks only for that line; and “What never happens”, whose kitchen-identity line now names error reports and which gains a carve-out for them. Nothing new is kept on Mirepoix’s servers.
- 2026-10-09 — Disclosed what the Mirepoix iPhone app will keep on your iPhone for Siri once the app is out, in a new paragraph under “Agent access (beta)”, “What the iPhone app keeps on your iPhone for Siri”: a copy of your kitchen’s ingredient names — the shared catalog’s names with their other names, your kitchen’s own, and up to 150 it bought most recently — in the app’s own storage, which its Share button and widget can’t read; on iOS 18 or later, the catalog’s names and your kitchen’s own in iOS’s search index on your iPhone; and the recently bought names, with up to 100 item names from your shopping list, as suggestions for Siri’s phrases. All of it is for the kitchen the app is in, and signing out of the app or switching it to another kitchen removes it. The app sends none of these names anywhere itself; what reaches Mirepoix when you use Siri is a request the app’s token already makes, under “What it allows”. The iPhone paragraph under “Pending imports” now says what happens to the app’s agent token when the app’s sign-in ends or the app switches to another kitchen. The app stops using it at once and asks Mirepoix to revoke it, keeps a copy on your iPhone only until Mirepoix confirms the revoke (which can wait until your iPhone is next online), and then deletes it. Before, the page said the token was deleted when the app’s sign-in ended, and didn’t mention a switch. Nothing new is kept on Mirepoix’s servers, and nothing new is read from your kitchen: the names are ones “What a token can read” already lists.
- 2026-10-08 — The Mirepoix iPhone app’s agent token no longer depends on agent access. Once the app is out, it gets its token, and keeps it, whether a kitchen owner has turned agent access on or not, so what it reads can reach Apple through Siri in a kitchen with agent access off. Before, this page promised that nothing left a kitchen through a token unless an owner had turned agent access on; that promise now covers only the tokens members create on the Account page or by approving a device. Amended so they stay true: the opening paragraph, “Nothing goes to any other company” under “AI features and third-party processing”, the iPhone paragraph under “Pending imports”, the opening of “Agent access (beta)” and “What it allows”, and the last carve-out under “What never happens”. Turning agent access off now deletes every token but the iPhone app’s, under “How a token ends”, which also now says leaving or being removed from a kitchen deletes the iPhone app’s token too; “What recipe history keeps” now says turning agent access off ends every token but the iPhone app’s. Under “What a token can read”, the Pantry bullet now says a token can also read the names of the kitchen’s own ingredients, the ones not in Mirepoix’s shared catalog, and of up to 150 it bought most recently. Under “What it allows”, a token saying you have a Pantry item may now leave the length out, and the Pantry then asks again in a week, as Have it does. Nothing new is kept.
- 2026-10-07c — When an app or tool’s read-and-change token renames a recipe, it’s now told the titles of the other recipes updated to link to the new title, described under “What it allows” in “Agent access (beta)”. Those recipes’ new versions now carry the token’s mark in their history, described under “What recipe history keeps”; before, they were saved under the member’s name without it.
- 2026-10-07b — Recipe sketches: a member of your kitchen can now ask for a new sketch of a recipe that already has one, with Redraw sketch on the recipe’s page. That sends the recipe’s text to OpenAI again, the same content a first sketch sends, so “AI features and third-party processing” now names this as a time a recipe is sent. Mirepoix keeps what comes back in place of the old sketch, but only when OpenAI draws a new one; otherwise the old sketch and what was kept with it stay. Nothing new is sent beyond the recipe a member asked about, and nothing new is kept.
- 2026-10-07 — Disclosed the ordinary request log and the backups, neither of which this page described before; nothing about what’s logged or backed up changed. “Sign-in and security logs” now says the server keeps a request log recording, for nearly every request, the IP address it came from, the address it asked for, which can name your kitchen and a recipe, and when, read to keep the service running and to trace abuse; that the front-end server keeps its own log of each request’s IP address, address, how it was answered, and user-agent string, capped at about 10 MB and overwritten as it fills; and that the request log is one log with the security log, cleared by updates on the same schedule. That schedule’s description is corrected: each update keeps the five previous server copies’ logs, not “a few”, so a line lasts until about the sixth update after it’s written, and the hosting company’s daily server copies can keep it up to a week longer. A new “Backups” section says Mirepoix backs up its databases and stored files every hour, encrypted before they leave the server so the storage company holding them can’t read them, keeps the newest backup from each of the last 24 hours, 7 days, 4 weeks and 12 months that had one, so something deleted can stay in a backup for about a year, longer if backups ever paused, and that the hosting company keeps a copy of the whole server for each of the last seven days. Amended so they stay true: “Nothing goes to any other company,” under “AI features and third-party processing,” now names the encrypted backups; “The request log” under “Agent access (beta)” now says that log records the IP address too; and “What never happens” no longer says kitchen content is never mapped to your kitchen identity in any log, since the request log’s page addresses can name your kitchen and a recipe.
- 2026-10-06 — Rewrote “AI features and third-party processing” to say, for each outside AI company, what kind of content it receives, when, what you can turn off, and what the company may do with it, instead of the exact rules each feature follows. Nothing that’s sent changed with this edit; what changed is what this page promises. It still promises that Anthropic receives content only when someone in your kitchen uses Mirabel or AI import, and only the kinds the page names; that Typesafe AI receives only ingredient lines and names — from your recipes, QuickBites and the pages you import — with entries from the shared catalog; that OpenAI receives a recipe’s text, never its photo, unless a kitchen owner turns sketches off; that Mirepoix adds nothing that identifies you or your kitchen; that none of the three trains its models on it; that Mirepoix’s logs never hold it (apart from the site name of a page Mirabel fetches); that a photo you attach loses its location data on your device before Mirabel sends it; and that Mirabel changes nothing in your kitchen until you tap to confirm. It now also promises that anything from your recipes Mirepoix leaves with OpenAI is deleted, or set to expire, within OpenAI’s 30 days. These are no longer promised here, because they describe how a feature works rather than what may leave your kitchen. For Typesafe AI: that a name Mirepoix already recognizes exactly isn’t sent, nor one with no catalog entry; that a line whose ingredient you chose, or kept as written, isn’t sent until you rename it; which lines each save sends; that a line is sent at most once a day once an answer changed nothing, and the note Mirepoix keeps to know that; that each name or line goes in its own request, with a handful of catalog entries; that an import sends only lines shaped like headings, lines Mirepoix’s reader isn’t sure of, or lists of alternatives, only from a page whose recipe data Mirepoix can read directly, and no recipe you already have; that the operator’s rerun sends only lines still waiting on a match; and that choosing an ingredient, or matching and searching in the recipe editor, sends nothing. For OpenAI: what a sketch leaves out of a recipe besides its photo — the notes at its end, its source, tags, servings, times, yield, amounts and units, substitutes, and whether an ingredient is optional — and the 12,000-character limit; that the drawing model sees only a short description, and is asked at most once more; which saves send a recipe, the limit of 50 a day, and the overnight path; that each recipe is tried once; that QuickBites are never sent; that a kitchen whose plan has lapsed sends nothing new; that a request sent after a save is made with OpenAI’s storage off; and that overnight batch files expire after seven days. For Anthropic: exactly what each of Mirabel’s lookups sends, and the limits on what her offers can hold; that her import steps read a recipe on Mirepoix’s own server first, and that a backup archive or several files at once send nothing; that a photo is sent only when she builds a draft; that the note about your page is its type and name only; that her tag and category suggestions are worked out on Mirepoix’s server; that a conversation idle for an hour starts fresh; and the list of things she can’t change. The help pages for Mirabel, checking ingredients and recipe sketches still describe how each works today. Four corrections ride along. The page said requests were made “with settings that keep your content from being used to train any model”; no request setting does that — each company’s own terms do — so the page now gives each company’s commitment instead. It now says how long Anthropic keeps what it receives, which it didn’t say before. It said Typesafe AI keeps what it receives “only as long as it needs to provide the service”; Typesafe AI’s own privacy policy also lets it keep data in support of its business or commercial purposes and names no fixed period, and the page now says so. And “What never happens” said the AI carve-out applies “only to what you submit in those moments”, though Mirabel’s lookups and your kitchen’s cooking preferences reach Anthropic without being submitted, as the Mirabel paragraph already said.
- 2026-10-04c — Qualified two sentences under “Agent access (beta)” as describing Mirepoix’s own servers: “never the token itself,” under “What Mirepoix keeps about a token,” and the device codes stored “only as fingerprints, never as the codes themselves,” under “Connecting a command-line tool by approving it.” Mirepoix now distributes a command-line tool that keeps some of the same things in plain files on the person’s own computer, so those two sections needed to say which side they describe. A new paragraph, “What the command-line tool keeps on your own computer,” says what it keeps there: the token, with its kitchen, access, name, server, its kind, and when, in a file only that computer account can read — kept until
auth logoutconfirms it’s revoked or already invalid or the person deletes the file, and, if logout can’t confirm the revoke, kept unless told to forget it anyway, either way with a note to revoke it on the Account page; logging in again, or adding a different token for the same kitchen, replaces the saved one and tries to revoke it, naming it for the person to revoke by hand if that fails. A started login’s device code, with the name the tool gave itself (including the computer’s name by default), the server, how often it’s been polling, and when it expires, is kept until the tool collects its token or learns the person denied it, or deleted by the next command of any kind if it expires first. A cached copy of the API’s own description holds nothing from the kitchen except the page address it was fetched for. A leftover temporary file, left behind only if the tool is stopped mid-save, is deleted by the first command run once it’s ten minutes old; and if a login succeeds but its new token can’t be saved, the tool tries to revoke it at once, and names it for the person to revoke by hand if that fails too. Mirepoix’s servers never see any of these files. Nothing new is kept on Mirepoix’s own servers. - 2026-10-04b — Clarified under “What Mirepoix keeps about a token”: an app or tool holding a token can ask Mirepoix about that token — its kitchen’s page address, its kind, its access, its name, when it was created and last used, plus a computed yes-or-no, worked out from its access and the kitchen’s plan, for whether it can make changes right now. Mirepoix gives that answer only to whoever presents the token. Nothing new is stored; sending that answer to the token’s own holder is the change this entry logs.
- 2026-10-04a — Recipe sketches: while a kitchen is read-only because its plan has lapsed, nothing new is sent to OpenAI for it, even with the setting on, and its owner can still turn Draw a sketch of each recipe for its card off. Before this, the overnight path would have kept sending such a kitchen’s recipes, and turning the setting off was refused like any other change to a read-only kitchen. The overnight path wasn’t yet switched on, so nothing was sent this way.
- 2026-10-04 — A read-and-change agent token can now add recipes to the Menu and take them off. “What it allows” under “Agent access (beta)” no longer says a token can’t change the menu. It now says one can add recipes to the Menu and take them off, but not QuickBites; that either change records when the recipe joined or left the Menu, as described under “Menu history,” the same as a change made on the Menu page; and that neither the Menu nor its history records which member or token made it. What an app or tool is told when it adds or takes off recipes, or asks what doing so would do, is already among the kinds of data listed under “What a token can read,” so that list is unchanged.
- 2026-10-03e — A read-and-change agent token can now change the shopping list and the Pantry. “What it allows” under “Agent access (beta)” no longer says a token can’t change the shopping list or the Pantry. It now says what one can change: it can put items on the shopping list, check them off, uncheck them, and take them off; and for a Pantry item, it can say you need it, which puts it on the list, say you have it, so the Pantry asks again after a length it chooses from the Pantry’s own, 3 days to 12 weeks, or have the Pantry ask about it today, the last two of which can take the item off the list. Changing the menu is still to come. Amended so they stay true, under “What a token can read”: the shopping-list bullet now says a token can learn whether an item is in Mirepoix’s shared ingredient catalog or is your kitchen’s own, which an app or tool is told when it adds items to the list or asks what adding them would do; and the Pantry bullet now says it can learn when an item is next due, which an app or tool is told when it changes a Pantry item or asks what changing one would do. Clarified under “What the operator sees”: an ingredient name an app or tool adds for you is saved as a pending discovery, the same as one you type.
- 2026-10-03d — Disclosed a third way to fill your pending-imports tray, described above under “Pending imports”: an app or tool you connect with your own read-and-change agent token can save a page to it. Mirepoix doesn’t fetch the page; the app or tool reads it and sends the same kinds of things the bookmarklet gathers. A capture saved this way is held in that member’s tray in the token’s kitchen, and kept and deleted exactly as a bookmarklet capture is; sending the same page content again within 10 minutes, while the first is still waiting, keeps one entry whichever way each was saved; and it counts toward the same daily limit, which allows at most 50 captures made in the last 24 hours to wait at once, across every way of saving and every kitchen. It records nothing about which token saved it. Because an app or tool does its own gathering, the section now gives the limits Mirepoix itself enforces on a capture saved this way, which differ from what the bookmarklet and the Share button apply while gathering: text up to 40,000 characters even when structured recipe markup is found, each markup block up to 30,000 characters with no separate limit on their total, title and site name up to 300 characters, the address up to 2,048, up to 40 ingredient lines, and the 64 KB limit every capture has. “What it allows” under “Agent access (beta)” now says a read-and-change token can save a page there, and that an app or tool saving one, or asking what saving would do, is told whether it is saved (or, when it only asked, would be) or was already waiting and the page’s title as Mirepoix reads it from what was sent, or, past the daily limit, only that the limit has been reached. “Pending imports” also now says that importing a capture, however it was saved, fetches a recipe photo its markup names the way a linked page’s photo is fetched; that was already true of every capture, and the page had said it only for links. “Sign-in and security logs” gains a bullet for this way’s host-only line: written when a page is saved, sent again while already waiting, refused over the daily limit, or refused because the whole capture is over 64 KB; never when only asking what saving would do, when a single part is over its own limit, when a read-only token or a read-only kitchen refuses it, when the token itself is refused, or when the request is too large for the API to read at all (over 256 KB); and with no IP address. Mirepoix sends nothing new to Anthropic or any other company for this: its answer goes back to the app or tool that asked, and, as with the other two ways, nothing about a pending capture is sent to Anthropic until you choose to import it. “The request log” under “Agent access (beta)” now points to that security-log line. Separately, a fix: that paragraph said that what a request carried could reach the request log when it was sent other than as JSON. A request carrying content sent that way is still refused without running, and what it carried now stays out of that log, so the paragraph no longer says it can reach it, and no longer limits to a request sent as JSON its statement that what a request sent stays out of that log. Apart from that fix, no behavior changed before this feature existed; this documents it as it ships.
- 2026-10-03c — Recipe sketches’ overnight batch files now have an upper limit on how long OpenAI keeps them, described above under “AI features and third-party processing”. Mirepoix still deletes each batch file, and the files of results OpenAI writes for it, once it has collected the drawings. Each is now also set to expire seven days after it’s made, so a file Mirepoix lost track of — because a request’s answer was lost on the way back — is deleted by OpenAI then instead of staying. A recipe whose results expired before Mirepoix collected them is sent again another night, as an attempt that got no usable answer already was. Nothing new is sent or stored.
- 2026-10-03b — A read-and-change agent token can now add recipes and change existing ones. “What it allows” under “Agent access (beta)” no longer says such a token can’t change anything. It now says what one can change: adding a recipe never overwrites one already in the kitchen, and a change is never saved over an edit made to the recipe’s text after the app or tool read it. Changing the shopping list, the pantry, and the menu is still to come. Disclosed, in a new “What recipe history keeps” paragraph, that a recipe a token adds or changes records that change in its history under the member’s name, marked via CLI with the token’s name, or via Siri for the iPhone app’s token. The iPhone app’s token name is stored with the change but never shown. Every member of the kitchen can see that history. The mark stays after the token ends, however it ends, including after its member’s account is deleted, when the history keeps the token’s name but no longer shows the member’s. It is kept as long as the version is, and every version is deleted with the kitchen. Amended so they stay true: “What Mirepoix keeps about a token” now says the name of a token other than the iPhone app’s is shown to every member in recipe history once it adds or changes a recipe; and “Imported ingredient matches” names a recipe added by an app or tool with your token among the new recipes it records, a path of its own in the operator’s counts report and the server’s log line.
- 2026-10-03a — Disclosed a new third-party processing step, described above under “AI features and third-party processing”: recipe sketches. To draw a small sketch of each recipe for its card, Mirepoix sends part of the recipe’s text — its title, description and category, each ingredient’s name and preparation note without amounts, the titles of other recipes it uses, and its steps — to a text model at OpenAI, and only the short drawing description that model writes to OpenAI’s drawing model. Never its photo, the notes at its end, its source, its tags, or anything about you. A recipe is sent shortly after a save in the recipe editor or through Mirabel, and otherwise overnight — once per recipe, apart from trying again when an attempt gets no usable answer. OpenAI doesn’t use it to train its models, keeps the requests for up to 30 days to watch for abuse, longer when the law requires it or it’s reasonably necessary to protect OpenAI’s services or anyone else from harm, and keeps the overnight batch files until Mirepoix deletes them once it has collected the drawings. Mirepoix keeps the drawing and the text model’s answer, including its description, with the recipe, outside kitchen exports, until the recipe or the kitchen is deleted. It’s on for every kitchen; a kitchen owner can stop sending by turning off Draw a sketch of each recipe for its card under Recipes in Settings, and sketches already made stay stored. It doesn’t draw on the AI allowance. Amended so they stay true: the page’s opening now names what the AI features send to outside AI companies, and that recipe sketches are on unless a kitchen owner turns them off; “AI features and third-party processing” now counts four features that send content outside your kitchen, not three; and “What never happens” gains a carve-out for recipe sketches.
- 2026-10-03 — Disclosed what Mirepoix keeps when you connect a command-line tool by approving it on the Connect a device page, in a new paragraph under “Agent access (beta)”: while a request waits, the name the tool gave itself, the IP address the request came from, the software name it sent, and when it asked, all four shown to you on the approval page; then who approved it, for which kitchen and access, and when it was approved or denied, last checked back, and collected its token. The two codes are kept only as fingerprints. A request is deleted within about an hour of expiring (after ten minutes) or of the tool collecting its token, and one you approved goes as soon as that kitchen’s agent access is turned off, you leave or are removed from the kitchen, or the kitchen or your account is deleted. “Sign-in and security logs” gains a line recording the IP address of a device asking to connect, written before anyone approves it; says the approve and deny lines and the code-entry limit’s line carry no IP address; adds device requests to the identifiers a line can carry and to the successful events, and too many codes typed to the refusals; and adds the device-approval rate-limit counters, filed under the IP address and your account, with their ten-minute and one-minute windows. Amended so they stay true for a token created by approving a device: “What it allows” now names approving a command-line tool as a way to create a token, read-only unless you choose otherwise; you can revoke one on your Account page; it stops working after 90 days unused like one created there; you’re emailed when the tool collects it, and that email shows the IP address and software of the request that collected the token (for a command-line tool, normally the machine that asked, not the browser you approved it in), which is also the IP address the token-created security-log line records; and the paragraph on emails that show your IP address now notes the approval page shows a device’s.
- 2026-10-02a — Disclosed agent access, a beta a kitchen owner can turn on in Settings, in a new “Agent access (beta)” section. With it on, a member can create a token — on the Account page, or through the Mirepoix iPhone app once it’s out — that lets an app or tool use that one kitchen as them, read-only or read-and-change. The section names the five kinds of kitchen data a token can read: recipe titles and their details, a recipe’s whole text, what’s on the Menu and how long recipes have spent there, the shopping list, and what the Pantry says about ingredients. What a token reads goes wherever its member sends it — to Apple through Siri, say, or to an AI model of their choosing — under those destinations’ own terms, and content other members wrote can go with it. Mirepoix stores a fingerprint of each token, never the token itself, with its member, kitchen, kind, access, name, and when it was created, last used, and suspended, plus, for the iPhone app’s token, which sign-in it belongs to and an installation id. The section also says how a token ends, that a token going over its own rate limits in three separate stretches within a day is switched off automatically, which emails Mirepoix sends about tokens, and that the request log doesn’t keep what a token sends to an operation as JSON. “Sign-in and security logs” gains the new lines that record the request’s IP address — a token created, a real token refused, a token’s request refused by a rate limit, a token suspended — and never for a token Mirepoix doesn’t recognize; agent-token events and an owner turning agent access off among the successful events; agent tokens among the identifiers a line can carry; the agent API’s rate-limit counters, filed under the IP address, each token, and a member and kitchen together, with the notes suspension keeps under a token; and the new-token email beside the other emails that show your IP address and browser. Amended so they stay true: the page’s opening and “AI features and third-party processing” now name a member’s own token as the one other way content leaves your kitchen; “What never happens” gains a carve-out for content a member directs elsewhere with their own token; and the iPhone app paragraph under “Pending imports” now says the app keeps its agent token on your iPhone too. Nothing changed for any kitchen before this feature: agent access is off for every kitchen until an owner turns it on.
- 2026-10-02 — Said plainly that the Pantry’s new Recommended reminder length is worked out inside your kitchen from your own answers and is shown only there. It isn’t a use of your pantry for “recommendations” in the sense the list under “What never happens” rules out. Nothing about what Mirepoix stores or sends changed beyond the two per-item values the feature keeps. Those are a count of Have it answers since the last buy, and the suggested length.
- 2026-10-01a — Said plainly that the Mirepoix iPhone app, and with it the Share button described under “Pending imports” and “Sign-in and security logs”, isn’t available yet. The 2026-09-29a entry disclosed the Share button as it shipped, but the app isn’t out, so no one can save a page with it today. Both sections keep their description of what the Share button gathers, holds, and logs, and of the copy of your capture token the app keeps on your iPhone, because that is how they’ll work once the app is out; they now say so. Nothing about what Mirepoix stores or sends changed.
- 2026-10-01 — Stopped the ingredient-name check on a new recipe, described above under “AI features and third-party processing”. Its answers fed your kitchen’s automatic matches, the aliases the Ingredients page marked matched automatically. Separately, every alias your kitchen had, whether you or Mirepoix added it, is deleted and no longer matches anything, and an ingredient’s Also matches list on the Ingredients page now shows only names from the shared catalog. The check that runs shortly after each save of a recipe or QuickBite is now the only ingredient-name check, and it runs on a new recipe’s first save too. Its rules are unchanged except for one: a name Mirepoix recognizes exactly is still not sent, but a name your kitchen had matched across the kitchen no longer counts as one, so a line written with it can now be sent at that check. The operator’s rerun of matching that added records under “Imported ingredient matches”, and kept their Typesafe AI notes up to date, is gone too, so a record is now written only when a recipe is added, and new records carry no Typesafe AI note. The page no longer says a correction keeps a name out of automatic matches, since there are none. Records and corrections already written stay as they were. Nothing about you or your kitchen is sent with a line, and an encrypted backup may keep an older copy of the deleted aliases until it rotates out.
- 2026-09-30b — Narrowed the description of what menu history powers, under “Menu history.” It no longer powers a note on recipe cards saying how many days ago a recipe was last on the menu, or how many times it’s been on the menu in the last year. That slot on the card now shows the recipe’s source. A source is part of the recipe, so it’s shown to everyone who can see the recipe — including someone who opens a published kitchen’s link without being a member of it — the same as it already was in the From line on the recipe’s own page. Menu history still feeds Mirabel’s meal-planning suggestions and, for your kitchen’s own members only, the working set and the order of a folded list on the Recipes page. Nothing new is stored or sent anywhere. The record itself still stays inside your kitchen, unreadable by the operator, and the 13-month retention is unchanged.
- 2026-09-30a — Narrowed how often the ingredient-name check that runs after a save sends the same line, described above under “AI features and third-party processing”. Until now a line still waiting on a match was sent again after every save of its recipe or QuickBite. Now, once Typesafe AI has answered about a line without changing its match, that line isn’t sent again for a day, however often it’s saved or the operator reruns matching, unless its words or the catalog entries the matcher has in mind for it change. If Typesafe AI didn’t answer, because it was down or busy, the line is still sent on the next save. To know what was already answered, Mirepoix keeps a note on its own servers for that day, holding your kitchen and a scrambled fingerprint of the question, never the line’s words; nothing more is sent anywhere. Nothing you see in Mirepoix changes.
- 2026-09-30 — Changed how a correction to an ingredient match is recorded, described above under “Imported ingredient matches.” The Review ingredients dialog is gone: you now choose a line’s ingredient in the recipe editor, and a choice, with the exceptions described above, is stamped onto that recipe’s own record for the line’s name — which catalog ingredient you chose, or that you kept the line as written, and when — rather than onto every record of that name in your kitchen. Counting a line as another ingredient for nutrition is no longer offered. Choosing an ingredient in the editor, and the editor’s matching as you type and its search, send nothing outside your kitchen. After a save, a line whose ingredient you chose, or kept as written, isn’t sent to Typesafe AI until its name changes, apart from capitalization and spacing. The check on a new recipe still sends its names as before, including one you chose an ingredient for while creating the recipe. A choice for one of your kitchen’s own ingredients names no ingredient when that ingredient isn’t in the shared catalog; one based on a catalog ingredient is stamped as that catalog ingredient. The page now also says that a correction keeps Mirepoix from adding that name to your kitchen’s automatic matches, which it already did; the page didn’t say so before. Corrections already recorded are unchanged.
- 2026-09-29b — Added an occasion for the ingredient-name check that runs after a save, disclosed on 2026-09-29 and described above under “AI features and third-party processing”: the operator can rerun matching over the ingredient lines already in every kitchen’s recipes and QuickBites, with no save. Until now that check ran only shortly after a save. Mirepoix’s own matcher tries each line still waiting on a match again first, and only a line it still can’t match is sent to Typesafe AI. It goes the same way a line goes after a save: in its own request, with the rest of that line and the catalog entries the matcher had in mind, and the answer sets the match Mirepoix keeps for that line. A line that already has a match, or that Typesafe AI set aside, isn’t sent. A name Mirepoix already recognizes exactly is still not sent, and neither is a name with no catalog entry at all. Nothing about you or your kitchen goes with them. The rerun may run again, for example after the shared catalog grows, and each time it sends only the lines still waiting on a match. Nothing you see in Mirepoix changes.
- 2026-09-29a — Disclosed a second way to fill your pending-imports tray, described above under “Pending imports”: saving a page from Safari’s Share menu with the Mirepoix iPhone app. It gathers the same kinds of things from the page that your recipe-import bookmarklet does and sends them with the same personal capture token to the same place, so a capture from it is held, kept and deleted exactly as a bookmarklet capture is, and it writes the same security-log line, described under “Sign-in and security logs.” Both sections named only the bookmarklet; they now name both. To save on your behalf, the app keeps a copy of that capture token, with the kitchen it saves into, on your iPhone, where only the Mirepoix app and its own extensions — its Share button and its home-screen widget — can read it, and deletes it when you sign out of the app. If you don’t have a capture token yet, signing in to the iPhone app creates one: the same token your bookmarklet in Settings would use, stored the same way on Mirepoix’s servers. Beyond that token, nothing new is stored on Mirepoix’s servers, the security log gains no new kind of line, and nothing is sent to anyone else. Separately, “Pending imports” described what’s held as structured recipe markup, a short text excerpt, and a title and address. That list is now corrected to match what the bookmarklet has always captured, since its first capture was held: the text can run to about 40,000 characters (about 2,000 when structured recipe markup is found), and a capture also holds the page’s site name and, on recipe sites that mark ingredients up separately, up to 40 of those ingredient lines. Nothing about what is captured changed; this corrects the description. No behavior changed before this feature existed; this documents it as it ships.
- 2026-09-29 — Widened when the ingredient-name checks disclosed on 2026-09-22 run, described above under “AI features and third-party processing”. Until now they ran only shortly after a new recipe was first saved, or when the operator reran matching. They now also run shortly after each save of a recipe or a QuickBite, new or not, for each ingredient line that save added or changed. QuickBites weren’t checked before; they are now. A line still waiting on a match is checked again after every later save of its recipe or QuickBite, until it has one. A line whose match the matcher was sure of, but which Typesafe AI set aside, isn’t sent again until you change that line. Each line goes in its own request, with the rest of that line and the catalog entries the matcher had in mind, and the answer sets the match Mirepoix keeps for that line. A name Mirepoix already recognizes exactly is still not sent, and neither is a name with no catalog entry at all. Nothing about you or your kitchen goes with them. The “Imported ingredient matches” section now says which check its Typesafe AI note comes from: the one on a new recipe.
- 2026-09-23 — Narrowed the ingredient-name checks disclosed on 2026-09-22, described above under “AI features and third-party processing”. A name Mirepoix already recognizes exactly is no longer sent to Typesafe AI. That means a name spelled, apart from capitalization and spacing, the way a catalog ingredient or one of the other names the catalog lists for it is spelled, or a name your kitchen already keeps as its own ingredient or has already matched. Mirepoix matches those names itself, so the answer could never change anything. It still records what its matcher decided about them, as described under “Imported ingredient matches”, just with no Typesafe AI note. Every other name is checked exactly as before.
- 2026-09-22 — Widened the ingredient checks disclosed on 2026-09-17 and 2026-09-18, described above under “AI features and third-party processing”: on any new recipe — imported from any source, not only a web page Mirepoix can read directly, or typed into the editor — every ingredient name the matcher can pair with a catalog entry is sent to Typesafe AI, one name per request, with the rest of its line and the catalog entries the matcher had in mind, to ask which is the product. That includes names the matcher is sure of, not only the ones it can’t settle, so the answer can leave a name for you to identify in Review ingredients or match it to a different one of those entries. It runs shortly after the recipe is first saved, and again only when the operator reruns matching for names still waiting on one; opening Review ingredients sends nothing. Nothing about you or your kitchen goes with it. Each record described under “Imported ingredient matches” now also notes, for a name the matcher was sure of, whether that check set its pick aside or replaced it, and the operator’s rerun of matching keeps that note up to date. That section also carries a correction: it said recipes typed in the editor weren’t recorded there, but since 2026-09-10 every new recipe has been, whether typed, saved from Mirabel, or imported. The section now says so, and that a recipe brought back from Recently deleted is not recorded again.
- 2026-09-21 — Widened the correction description under “Imported ingredient matches.” The Review ingredients dialog can now identify a name as one of your own kitchen’s ingredients, not only as a catalog one, and that choice stamps a correction onto the matcher’s record the same way a catalog choice does. What it stamps is narrower: the record holds only catalog ingredients, so it marks the matcher wrong without naming what you picked instead. The page previously described corrections as coming from catalog matches alone. The dialog’s other new answer — counting a line as another ingredient for nutrition — writes no correction record in either direction, and that is now said as well. Nothing about who can read these records, how long they last, or what leaves your kitchen changed.
- 2026-09-18 — Widened the ingredient-line checks disclosed on 2026-09-17: during a web-page import Mirepoix can read directly, lines its own reader can’t read with certainty, or that list alternatives, are also sent to Typesafe AI, one line at a time, to ask how the listed items relate and which is the ingredient. Nothing about you or your kitchen goes with them.
- 2026-09-17 — Disclosed a new third-party processing step, described above under “AI features and third-party processing”: during a recipe import from a web page whose own recipe data Mirepoix can read directly, any ingredient lines that look like section headings are sent to Typesafe AI to check whether they are headings. Nothing about you or your kitchen goes with them.
- 2026-09-12 — Disclosed that your kitchen now stores a time zone and three date-and-time formatting preferences, described above under “Dates and times.” Your browser has recorded its time zone on your own device since 2026-04-14, and Mirepoix has been reading it to work out what “today” means for you; that part is not new, and it stayed a per-request reading that was never kept. What changed is that these values are stored at all: creating a kitchen now seeds that kitchen with four of them — the time zone, which day your week starts on, whether you use a 12- or 24-hour clock, and whether you write the day or the month first — taken from what your browser reports at that moment, and each checked against a fixed list of accepted values with anything unrecognized treated as not set. A fifth preference, whether to show week numbers, is not taken from your browser and starts off. Once saved they are ordinary kitchen settings under Dates and times in Settings, shown and editable there rather than a hidden profile, changeable by a kitchen owner like any other setting, and no longer tied to the browser that created the kitchen. A kitchen with no time zone saved still falls back to your browser’s note for that request only, unstored, as before. A time zone is coarse location information — it says roughly which part of the world you’re in, and the standard list labels zones with city names — but it is not a precise one: no coordinates, no address, and no narrowing down within a zone shared by everyone across a wide band of the map. These settings stay inside your kitchen, unreadable by the operator and not sent to Anthropic. Nothing about what Mirepoix sends anywhere changed with this entry.
- 2026-09-05 — Mirabel can now offer to categorize one of your saved recipes. Ask her how to categorize or file it and she shows the same kind of confirm chip she already uses for tagging, offering one of your kitchen’s existing categories; nothing changes unless you tap, and she can never invent a category the way she can’t for a QuickBite either. Unlike the tag chip, which only adds, this one replaces the recipe’s current category — worked out the same way as the tag suggestions, from how you’ve already filed the recipes that share ingredients with this one, so Anthropic is never asked which category to offer and cannot propose one. The category name on the chip is sent to Anthropic as part of her reply so she can say what she is offering — the same kind of thing already sent when an import is filed under your kitchen’s existing headings, or when she drafts an edit to one of your recipes. Nothing new is stored beyond the change itself, which is recorded in that recipe’s history the way any other change to it is, and after you tap, the category that landed joins the conversation the same way the other outcomes already do. She still can’t add, rename, or delete a category outright — only choose among the ones you already have.
- 2026-09-02a — Mirabel can now offer to take a recipe off your Menu, and to create a QuickBite. Both use the same confirm chip her shopping-list, Menu and tagging offers already use: nothing changes unless you tap. The removal chip names up to five recipes and can only offer ones that are on your Menu right now; it takes them off the Menu and does not delete them, and it is for recipes, not QuickBites. The QuickBite chip names the title, the existing category it would be filed under, and the grocery items it would carry; creating one does not put it on your Menu, and she can only file it under a category your kitchen already uses — a name she doesn’t recognize is refused rather than created, with your category names offered back so she can ask which you meant. What this adds is two more surfaces that can change your kitchen on a tap, and one of them subtracts, which is why the sentence above saying she couldn’t take anything off your Menu is gone. What goes to Anthropic is not a new kind of thing: the on-menu recipe titles she offers to remove are the ones this page already described being sent when she reads your Menu, the QuickBite’s title and item names are your own words from the conversation, and your category names already travel with an AI import and with an edit she drafts for a saved recipe. Nothing new is stored, both writes go through the same actions the Menu and Recipes pages’ own buttons use, and after you tap, a short note of what actually landed joins the conversation the way the other outcomes already do. She still can’t delete a recipe or a QuickBite, add or rename a category, change your Pantry, check an item off your list, or take a tag off a recipe.
- 2026-09-02 — Mirabel can now offer to tag one of your saved recipes. Ask her how to tag or file it and she shows the same kind of confirm chip she already uses for your shopping list and your Menu, listing up to five tags; nothing is tagged unless you tap to confirm, and the tap adds tags without taking any away. What is new is the surface, not a new kind of data: the tags she offers are worked out on Mirepoix’s own server from how you have already tagged recipes that share ingredients with this one, so Anthropic is never asked which tags to offer and cannot propose one, and only tags your kitchen already uses can appear. The names on the chip are sent to Anthropic as part of her reply so she can name what she is offering — the same kind of thing this page already described being sent when she searches your recipes and when an import is filed under your kitchen’s existing headings. Nothing new is stored beyond the change itself, which is recorded in that recipe’s history the way any other change to it is, and after you tap, the tag names that landed join the conversation the same way the list and Menu outcomes already do. She still can’t take a tag off a recipe, change your Pantry, check an item off your list, or take anything off your Menu.
- 2026-08-24 — Widened the description of what menu history powers, under “Menu history.” It already fed Mirabel’s meal-planning suggestions; it now also feeds a few things visible directly on your Recipes page: the small note on a recipe card saying how many days ago a recipe was last on the menu, or how many times it’s been on the menu in the last year; one of the signals that can lift a recipe to the top of a large category instead of behind the fold; and the order recipes take within a folded list. All of those are shown to your kitchen’s own members only. Someone who opens a published kitchen’s link without being a member of it sees every recipe in each category, with no card notes, no working set, and no fold — publishing a kitchen shares its recipes, not what your household has been cooking lately. The underlying record still stays inside your kitchen, unreadable by the operator, and the 13-month retention is unchanged.
- 2026-08-09b — Disclosed a new record Mirepoix keeps about imported recipes, described above under “Imported ingredient matches.” When a recipe arrives by import, Mirepoix now stores what its ingredient matcher decided about each of that recipe’s ingredient names at the moment the recipe is created — the name as written, the catalog ingredient picked or the absence of a candidate, whether the match was confident, and how far ahead of the runner-up it was — and stamps your later correction onto that record when you match or clear a name in the Review ingredients dialog. The record stays in your kitchen, has no admin page, and is deleted with the recipe. What crosses the kitchen boundary is counts: an operator-run report groups them by import path, shows a path only once at least three kitchens have imported through it, and carries no ingredient name, recipe, or kitchen identity; the same report can print the line-by-line records for one kitchen the operator names by hand when running it. Each import also writes one counts-only line to the server’s log, which records which kitchen the import happened in but no ingredient name. Ingredient names and their resolution state were already stored in your kitchen and already fed a cross-kitchen count under the same three-kitchen floor; what’s new is that a prediction and the correction that falsifies it are recorded together, so how well matching does on recipes it has never seen can be measured.
- 2026-08-09a — Disclosed that a bookmarklet capture is held server-side, not only logged. A new “Pending imports” section states what’s stored — the harvested page’s structured recipe markup, a text excerpt, and its title and address — tied to the capturing kitchen member, kept so you can import at your leisure. Dismissing a capture deletes it right away; importing one deletes it once the import has gone through. An untouched one is deleted automatically after 30 days. Nothing about a pending capture reaches Anthropic until you import it. No behavior changed before this feature existed; this documents it as it ships.
- 2026-08-09 — Disclosed the security log line written by your own recipe-import bookmarklet, added under “Sign-in and security logs.” It’s a second capture-intake endpoint, separate from the operator’s own bookmarklet described just above it: yours is tied to your account by a personal token, writes into your kitchen’s capture tray rather than the operator’s review queue, and only logs the captured page’s host on an accepted capture or a refusal for size or your daily limit — never on a bad or missing token, so a guessed token leaves nothing behind. No behavior changed before this feature existed; this documents it as it ships.
-
2026-08-05a — Corrected the throttle-counter retention description under “Sign-in and security logs.” The page previously called two weeks an outer bound, but Solid Cache only considers old entries for removal when later cache activity triggers cleanup. The page now says that each counter stops affecting access when its rate-limit window ends, that the sign-in and sign-in-code windows last 15 minutes, and that the counters are removed later through routine cache cleanup. No behavior changed; this corrects the disclosure.
-
2026-08-05 — Disclosed two small bookkeeping fields now stored with each of Mirabel’s answers, described above under “How long this is kept.” The first is a pointer to whichever workshop pane that answer opened, so a reload — or picking the conversation up on another device — reopens the same pane. It records which kind of pane it was: her recipe draft, a comparison of a proposed edit to a saved recipe, your saved cooking preferences, or what a saved recipe still needs from the store. Two of those four carry one address apiece alongside the kind — the recipe’s page address for the store-list pane, and an identifier for the answer that produced the draft for the draft pane — and the other two carry nothing but the kind. Only those four kinds are accepted; anything else is discarded rather than stored. The second field applies only when an answer failed, and records whether trying again could help, so a Try again button that couldn’t work is left out. Neither field holds anything you typed or anything else from your kitchen, and neither is sent to Anthropic — both are written on Mirepoix’s own server after the answer is made, and neither joins the conversation history sent with your next message. Both live with the conversation and are deleted with it on the same roughly-three-day schedule. Nothing about what Mirabel can read, send, add, or change altered with this entry. What changed is that these two fields are stored at all: this page’s retention description named the question, the answer, and the draft, and these are new alongside them.
-
2026-08-03 — Completed the description of what Mirabel can look at and how she can add, for the workshop pane that works out what a saved recipe still needs. Ask what one of your saved recipes takes to cook and she now works it out against your Pantry and your shopping list together — a fourth lookup, listed above beside the Pantry, Menu, and shopping-list ones. What goes to Anthropic for it is that recipe’s title and page address, the names of the ingredients it still needs to buy — up to twenty, plus up to twenty more the recipe marks optional — and three counts: how many are left to buy, how many more your Pantry lacks that your list already holds, and how many the recipe needs from the store in all. Each of those was already disclosed here on its own: titles and page addresses when she searches your recipes, ingredient names when she checks your Pantry, the shortfall count when you ask her what to cook, and what your shopping list holds when she reads it. What this adds is that they go together, in one answer about one recipe — a shape the “three more things” enumeration didn’t describe. That pane also carries an add that isn’t shaped like the confirm chip described in the 2026-07-31b entry below: one button under the list it just showed you, where the tap is the confirm rather than a second step, and — unlike the chip’s twenty-name ceiling — it is not capped. It puts the whole of the list it just showed you on your shopping list however long that runs, the same way the Groceries page’s own add is uncapped, and it adds only what the recipe requires and your list doesn’t already hold, never what it marks optional. Nothing new is stored, the write has an address of its own but makes the same underlying shopping-list write the Groceries page’s own button makes — no extra reach, and it can only add to your list — and the same short note of what actually landed joins the conversation after the tap. Nothing about how any of this behaves changed with this entry — what changed is the description, which named three lookups and one add surface where there are four and two.
-
2026-08-02 — Corrected the description of when an import sends your recipe to Anthropic. Since 2026-07-07a this page has said that when you give Mirabel recipe text or a link to import, she reads it herself first without sending anything to Anthropic. That is true of her import steps, and it is not true of an ordinary message: everything you type or paste into the Message Mirabel box goes to Anthropic to generate her reply, recipe text included, before any import decision is made, and an import she runs from that message has no read-it-first step at all. The page now describes the two paths separately instead of stating one rule for both, and says plainly that a photo always takes AI. No behavior changed — this only corrects the description, and the flow it describes was already disclosed by this page’s opening statement that the text you type is sent to Anthropic to generate her reply.
-
2026-07-31b — Mirabel can now offer to add to your shopping list and your Menu. Ask her to put items on the list, or saved recipes on the Menu, and she shows a confirm chip listing exactly what she’d add — up to twenty item names, or up to five recipes. Nothing is added unless you tap to confirm, and the tap is what writes: it goes through the same shopping-list and Menu actions those pages’ own buttons use, and she has no way to make the change herself. Nothing new is sent to Anthropic — the item names are her own words from your conversation, and the recipe titles are the same ones already sent when she searches your recipes — and nothing new is stored. What changed is that she can now act on your tap; after one, a short note of what actually landed joins the conversation and rides along with your next message, so she can’t claim a change that didn’t happen. She still can’t change your Pantry, check an item off your list, or take anything off your Menu. This supersedes the 2026-07-31a statement that she can’t add to your menu or your shopping list.
-
2026-07-31a — Mirabel can now look at the rest of your kitchen when you ask. She can check whether ingredients are on hand and what’s running low in your Pantry, read what’s on your Menu, and read what’s on your shopping list; what she finds is sent to Anthropic as part of generating her reply, with the same no-training settings as everything else she sends. Nothing new is stored, looking changes nothing, and she still can’t add to your menu or your shopping list — you do that yourself. This corrects the earlier statement that she couldn’t read your shopping list.
- 2026-07-31 — Mirabel can now use your kitchen’s cooking preferences. A new Settings section stores how many people you usually cook for, any diets your kitchen follows, and ingredients to avoid. When you chat with Mirabel, that short summary is sent to Anthropic with your message so her suggestions and drafts respect it, with the same no-training settings as everything else she sends; it is part of your kitchen’s settings, visible and editable there, not a hidden profile. Mirabel can offer to save one of these preferences for you, but nothing is saved unless you tap to confirm, and only a kitchen owner can change settings.
- 2026-07-28 — Completed the security-log enumeration from 2026-07-18a below. First, entries tied to a signed-in person also carry an identifier for the account, kitchen, or sign-in the request belonged to — never a name or email address by itself, and never anything from inside your kitchen; this was previously omitted entirely. Second, the email-address bullet is now two: the address someone typed to sign in is one field, and the new address someone tried to change their email to — recorded when that change collides with an existing account — is a different one; the two were previously described together as “the email address that was typed,” which didn’t clearly cover the change-attempt case. Third, this section previously framed every log line as recording a refusal; in fact some lines record security events that succeeded — a sign-in completing, a new device appearing, a passkey being registered, sessions being ended or revoked, an invitation or join code being used, a kitchen transfer completing — and the section now says so. Fourth, the identifier bullet now also covers entries tied to a kitchen rather than a signed-in person — a payment-provider message can write one with nobody signed in. Fifth, disclosed that the operator’s recipe-capture intake records the captured page’s host (never the full address) on every attempt, accepted or refused. Nothing about what is logged changed; this only extends and clarifies the description to match current code.
- 2026-07-27 — Corrected how long the security logs described above are actually kept. This page previously said they are kept by volume rather than by calendar — a rolling storage budget of about 300 MB, with older lines falling off as newer ones arrive rather than expiring on a set schedule. Measuring it showed that budget has never been reached, and isn’t what removes these lines: what clears them is a new release, which starts the server with an empty log. Because Mirepoix ships every few days, a line usually survives days rather than months — a couple of weeks once the previous server copies are counted, and longer whenever releases are further apart. There is no fixed ceiling; how long a line survives tracks the release cadence. Nothing about what is logged changed — this only replaces a claim that overstated how long these lines are kept.
- 2026-07-25 — Disclosed the throttle counters that enforce Mirepoix’s rate limits. The “Sign-in and security logs” section now states that a counter is written on every attempt — not only refused ones, as the log lines are — and that the sign-in and sign-in-code counters are filed under the typed email address together with the request’s IP address, while the rest are filed under an IP address alone, an account, or a kitchen. The pairing itself is what changed: those two counters previously used the email address alone, so anyone could burn a named person’s sign-in allowance from anywhere; pairing it with the IP keeps someone else’s attempts off your allowance. A counter holds only a number; it stops counting after 15 minutes, and at the time this page described the stored entry as cleared within about two weeks. That retention description was corrected by the 2026-08-05a entry above. Both fields were already disclosed above individually; what this adds is that they are held together, that the pair persists beyond the counting window until that cleanup, and that one is written for every attempt rather than only refused ones.
- 2026-07-18a — Disclosed how Mirepoix’s security log records sign-in and other security-checkpoint failures. Added a “Sign-in and security logs” section stating that, depending on which check failed, a log line records the request’s IP address (refused or network-throttled sign-in, passkey, invitation, and join-code attempts, and rejected payment-provider messages), the typed email address (a sign-in attempt from a non-member address, an account-throttled attempt, and an email-change collision), or both, and noting these logs are kept by a rolling storage cap rather than a fixed time window. This documents existing behavior — the same request IP you already see in the sign-in and new-device emails — that the page previously described only for the admin catalog-gaps view; nothing about what is logged changed.
- 2026-07-18 — Disclosed that the operator’s catalog-gaps admin view also shows a suggested USDA food match for each unresolved name — found by looking that name up against the bundled USDA reference data, offered as a starting point for a new catalog entry. This has shown since the USDA-resolution work landed; the page previously only described the ingredient name and cross-kitchen count. The lookup uses only the name already described above; the match’s content is USDA’s own public data, and the rest of this section’s guarantees are unchanged.
- 2026-07-17b — Mirepoix no longer records cooks. The Menu’s “Made it” cross-off has been removed, and the cooking-history record it fed has been deleted. In its place, Mirepoix keeps a lighter record of when each recipe joins and leaves your menu, which now powers Mirabel’s suggestions. The same guarantees apply: it stays inside your kitchen, isn’t readable by the operator, and is deleted automatically 13 months after a recipe leaves the menu.
- 2026-07-17a — The dinner-picker’s wheel-spin feature has been removed from the app, so this page no longer describes cooking history as powering “the dinner picker’s variety.” The rest is description-only correction: the “Cooking history” section previously said this record powers all of Mirabel’s suggestions including quick wins, but quick wins draw on your pantry, not on cooking history. What Mirepoix collects, and for how long, is unchanged — cooking history still powers forgotten favorites the same way it always did.
- 2026-07-17 — Stopped recording which existing catalog ingredient a confirmed match binds to. When you match an unrecognized ingredient name to one already in the shared catalog, Mirepoix no longer keeps a note of that pairing in your kitchen. Nothing read this note anymore — the tool that once did was removed on 2026-07-15 — so what you and the operator see is unchanged; this simply stops collecting data that was no longer used. The ingredient name and its cross-kitchen count, described above, are unaffected.
- 2026-07-16 — Importing a recipe from a link now also brings over the source page’s photo. When the page offers one, Mirepoix’s server fetches that image along with the recipe and holds it briefly — until you save the recipe, or the conversation is cleaned up after about three days — so it can be added to the recipe when you save. Like any recipe photo, its location metadata is stripped before it’s stored; it’s never used to train a model and stays out of logs. This narrows the earlier statement that a fetched page is “never stored”: the page itself still isn’t, but a photo it offers now is, briefly.
- 2026-07-15a — Mirabel’s recent conversations, and the recipe text, links, and photos in an import, are now kept briefly on Mirepoix’s servers instead of only in your browser — long enough to deliver a slow import and to pick up where you left off after a reload or on another device. They’re associated with your kitchen and account for that window, kept for about three days and then deleted automatically (photos are deleted as soon as the draft is made), still never used to train a model and still kept out of logs. This corrects the earlier statements that the conversation lived only in your browser and that import text and photos weren’t stored.
- 2026-07-15 — Narrowed what the operator can see. The offline tool that read which existing ingredient a name had been matched to has been removed, so the catalog-growth signal is back to what it showed before 2026-06-30a: the ingredient name and a count of how many kitchens have seen it. The three-kitchen floor and the rest of this section are unchanged.
- 2026-07-12 — Mirabel now knows which page you’re on. When you chat with her on a recipe page, your recipe list, your Menu, your Groceries, or your Pantry, a short note about that page — its type and name, plus a recipe’s page address — is sent to Anthropic with your message, so references like “this recipe” resolve. It’s the page’s type and name only, never its contents, and it uses the same no-training settings as AI import; nothing new is stored.
- 2026-07-11 — A recipe now holds one photo instead of a gallery of up to ten, so this page no longer describes a “cover” photo chosen from several. What Mirepoix does with a photo is unchanged: location metadata is still removed before storing, and a shared link still previews the full-size photo. This only corrects the description.
- 2026-07-07a — Corrected the description of how Mirabel imports pasted recipe text and linked recipe pages. The earlier wording said that pasted text and linked-page content were always sent to Anthropic; since deterministic-first import landed (pasted text, and structured recipes on linked pages), Mirabel now tries to read both herself first, without AI, and content reaches Anthropic only when she can’t confidently parse it on her own or you ask her to redo the import with AI. No behavior changed — this only corrects the description.
- 2026-07-07 — Mirabel can now suggest what to cook — forgotten favorites, newest recipes, and quick wins. When you ask her what to make, figures from your cooking history (how many times and how recently you’ve made each recipe) and how many of each recipe’s ingredients you’d still need are sent to Anthropic to generate her reply, using the same no-training settings as AI import; nothing new is stored. This corrects the earlier statement that Mirabel had no access to your pantry. Separately, this page now discloses that cooking history is kept for 13 months and then deleted automatically — previously undocumented; the retention window grew from about three months to support the new “forgotten favorites” suggestions.
- 2026-07-02 — Ingredient matching for AI import now happens entirely on Mirepoix’s own server, without sending anything to Anthropic. Unresolved ingredient names no longer leave your kitchen for this purpose — the suggested matches you confirm are computed locally instead.
- 2026-07-01 — Mirabel can now propose edits to your saved recipes. When you ask her to change a recipe, that recipe’s text is sent to Anthropic with your request to draft the edit, using the same no-training settings as AI import; nothing is stored, and no change is made until you preview and apply it yourself. Each applied edit is recorded in the recipe’s history, labeled as made via Mirabel.
- 2026-06-30a — The operator’s catalog-growth signal now also shows, for a name at least three kitchens independently matched to the same existing catalog ingredient, which ingredient they matched it to — the cue to add that name as an alternate spelling. The same three-kitchen floor applies, the matched-to name is the catalog’s own, and nothing ties it back to your kitchen.
- 2026-06-30 — AI import now sends unresolved ingredient names to Anthropic to suggest catalog matches. When an imported recipe has ingredients the shared catalog doesn’t recognize, just those names — no quantities, recipe text, or photos — are sent to Anthropic, and you confirm which suggestions to apply. This uses the same no-training settings as AI import; the names aren’t stored or logged.
- 2026-06-28a — Mirabel can now import recipe text from the recent conversation when you ask her to, instead of requiring you to paste the same text again. This uses the same recent browser-stored conversation already sent when you ask Mirabel a question; nothing new is stored.
- 2026-06-28 — Mirabel now starts a fresh conversation after 24 hours of inactivity, instead of sending older browser-stored back-and-forth with a new question. This narrows what is sent to Anthropic after a quiet period; nothing new is stored.
- 2026-06-15 — Recipe photos now have their location metadata removed before they’re stored. A stored photo carries no location, whether a camera or a photo editor recorded it. Camera location (EXIF) was already removed; this adds the location some editors store separately. A recipe’s cover is the full-size image a shared link previews. Removing the location keeps that link from revealing where a photo was taken.
- 2026-06-15 — Corrected the AI-import disclosure. When you run an AI import — through the import dialog or by asking Mirabel to import, revise, or condense a draft — your kitchen’s category and tag names are sent to Anthropic along with the recipe, so the draft can be filed under one of your existing headings. This has always happened; the page now says so. No behavior changed, and the same no-training settings still apply.
- 2026-06-11 — Two new ways to start an import. A bookmarklet you keep in your browser reads a recipe from a page Mirepoix can’t open itself — anything behind a login or paywall — and hands the page’s text to Mirabel to build a draft after you confirm. That captured text travels in the page address and doesn’t reach Mirepoix’s servers until you confirm the import, after which it is sent to Anthropic the same way the existing import is. On a phone, you can also share a recipe link to the installed app; Mirabel opens on that link and turns the page into a draft, exactly as pasting a link already does. Both feed the import that already existed — nothing new is stored.
- 2026-06-11 — Mirabel can now import a recipe from a photo you attach in the chat. The photo is downscaled in your browser, has its camera metadata stripped, and is sent to Anthropic to build the draft — not stored. (This is the same photo handling the AI import dialog used; that dialog has been folded into Mirabel.)
- 2026-06-11 — Mirabel can now open a recipe link you paste and turn the page into a draft. When she does, Mirepoix’s server fetches that page and sends what it finds to Anthropic to build the draft. Pages are fetched only when you ask, are not stored, and the fetch is logged by site name only.
- 2026-06-11 — Mirabel can now turn recipe text you give her into a recipe draft and revise it on request. The text you provide and the working draft are sent to Anthropic to do that, exactly as AI import does; nothing new is stored, and drafts only become recipes when you open and save them in the editor yourself.
- 2026-06-11 — Mirabel can now search your recipes when you ask her about them: the matching recipe titles and their page addresses, categories, and tags are sent to Anthropic as part of generating her reply. Nothing is sent unless you ask, nothing new is stored, and she still can’t change anything in your kitchen.
- 2026-06-10 — Corrected the third-party-processing section. AI import is no longer described as the only feature that sends content outside your kitchen: Mirabel, the help assistant, also sends your question and recent conversation to Anthropic when you use her. Neither feature’s behavior changed — the page was simply out of date.
- 2026-06-07 — Disclosed that AI import sends the text and photos you submit to Anthropic to generate a recipe (user-initiated, made with no-training settings, not stored or logged), and that photos are downscaled with camera metadata stripped in your browser before upload.
- 2026-05-25 — Tightened the scope of “your data” claims to specifically name kitchen-private content, and added an explicit carve-out paragraph for the k-anonymized ingredient-name aggregate. No change to what the operator collects or sees; the prior wording was accurate but read as broader than the underlying behavior.
See also
Last updated October 15, 2026