Help & Reference

Adding & editing recipes

Adding a recipe

From your recipes list, tap Add Recipe. Mirabel opens and asks where the recipe’s coming from; choose I’ll type it myself to open a blank recipe on its own full-page editor. (Mirabel’s guided interview is there whether or not the deployment has an Anthropic API key — typing a recipe yourself never needs AI.)

Fill in the fields, then tap Done. You’ll be taken directly to the new recipe page.

The editor is one full-page document — the same one that opens when you edit an existing recipe. Fill it in top to bottom: a title and description, the Serves, Makes, Time, Active, and Category fields, a Tags row, a Source row (a name and a web address, in their own fields), then the recipe’s body.

The body is a single list of lines, not a fixed set of step forms. Add whichever of four kinds you need, wherever you need it: a step title, an ingredient, a paragraph of instructions, or a recipe import (see Cross-references). Mirepoix works out the steps from where the titles land — everything from one title down to the next, or down to the end of the recipe, is one step. Leaving a title blank is a deliberate way to start a step without naming it, useful for splitting a recipe into parts without giving every one a heading. Typing another ingredient right after a paragraph starts a fresh, unnamed step the same way, automatically — so every part of the recipe still reads as its own ingredients followed by its own instructions. And a recipe import no longer has to stand on its own: put one before a step’s ingredients, after them, or between two ingredient groups.

Each ingredient gets its own row of small boxes: the ingredient, the amount, and a prep note. A short mark sits at the left edge of every row, there the whole time — it’s how you can tell you’re editing rather than reading, since an ingredient row looks the same size either way. Type into whichever ones you need — only the ingredient box is always on screen. An empty amount or prep note stays out of the way until you hover over the row or tap into it. An ingredient you can skip carries a quiet optional at the end of the row’s first line. That’s a mark, not a button — the ⋮ menu below is where you turn it on and off. Which of the ingredient and amount boxes comes first, and which one Tab reaches first, follows your kitchen’s Ingredient lines choice in Settings.

Press Enter in a step title to start an ingredient line right after it. Press Enter to start the next ingredient, or Enter on an empty ingredient row to move on to whatever line follows. Backspace at the start of a box steps back to the box before it; at the start of an empty ingredient row it removes the row. Inside a paragraph, Enter is a plain newline — that’s how a block of instructions gets more than one line, or more than one paragraph, without leaving the box.

Click or tap into any line — a step title, an ingredient, a paragraph, or a recipe import — and a small set of controls appears beside it: Move line up, Move line down, and a button (Line options). They act on the line you’re working in, and they stay in place while the lines move — so you can press Move line up three times to carry one line three places up the document, rather than chasing a button that moved with it. Move line up is unavailable on the very first line of the recipe, and Move line down on the very last.

The menu always offers four ways to add a line right after the one you’re working in — new header for a step title, new ingredient block for another ingredient, new procedure block for a paragraph, and new cross-reference for a recipe import — plus remove for the line itself. remove strikes the line through and leaves it in place, no confirmation needed, and the menu item becomes undo — pick it to bring the line back. A struck-through line is left out for good only when you press Done, so nothing is lost before then. (Backspace at the start of an empty ingredient row still removes that row outright, with no undo — there’s nothing on it to bring back.)

What you type in a box stays in that box. A comma, colon, or semicolon is part of what you wrote — type Salt, flaky in the ingredient box and that whole phrase is the ingredient’s name. Paste several lines into the ingredient box at once and each one becomes its own ingredient. Each pasted line written Name, amount: prep note lands across the three boxes, and a leading - is dropped. See Recipe format for that grammar.

Engage an ingredient row specifically and the same menu grows two more items just for it, below a divider: Optional marks it as one you can leave out, and shows a check mark while it’s on; the word optional then sits at the end of the row’s first line. Add a substitute offers an alternative for the ingredient. Both drop out of the menu the moment you engage anything that isn’t an ingredient — they’re not just disabled, they’re gone.

A substitute is an or line under the ingredient, with its own ingredient and amount boxes and no prep note — the cursor lands in the ingredient box ready to type. Add another while you’re in one and it goes directly below, so a run of substitutes keeps the order you typed. An ingredient takes up to eight; at eight, Add a substitute is unavailable. Enter and Backspace do nothing special inside a substitute’s boxes — use Add a substitute to make another and remove (in the same menu) to take one away.

The same Move line up and Move line down controls work on a substitute too, reordering it among the ingredient’s own substitutes — except on the first one, where Move line up promotes it instead: it and the ingredient above trade places, names and amounts together, so the substitute becomes the ingredient. remove strikes a substitute through and offers the same undo. A substitute you never gave a name to is left out when you press Done.

Optional is unavailable while you’re working in a substitute. It marks the whole line — every version of it — rather than one branch. See Recipe format for how the line reads on the recipe page and in its exported text.

Every ingredient needs a name. Tap Done with an amount or prep note but no ingredient and the editor stops you: “Give every ingredient a name — an amount or prep note needs one.”

A couple of things sort themselves out when you save. A paragraph row you left completely empty isn’t saved as a blank paragraph — it just isn’t part of the recipe, though it stays visible, right where you left it, until you save or reload the page. Two paragraph rows typed one after another come back — on save, and again if you reload — as one paragraph block holding both paragraphs, joined by a blank line, the same way a single longer paragraph already reads. A step title left blank is treated the opposite way: it’s kept, not dropped, since that’s how you mark a deliberate, unnamed step break. On the recipe page, a step you never gave a title just starts with its ingredients or its instructions, with no heading above them.

Source records where the recipe came from — a name (like a site or cookbook) and a web address, in their own fields. Fill in either or both. Mirepoix shows it as a byline under the title and again at the bottom of the recipe page, and links out when you gave it an address. Import from a link and it’s filled in for you. See Recipe format for the Source: line these two fields become in a recipe file.

Anatomy of the full-page recipe editor

The recipe editor is one full-page document. From the top: a title and description, a row of Serves, Makes, Time, Active, and Category fields, a Tags row, then a Source row holding a name field and a web-address field, then the photo region — shown when editing a saved recipe, with an Add photo button when the recipe has no photo or the photo itself with Replace and Remove when it has one — then the recipe’s body: a step-title line, then ingredient lines, then a paragraph line, sitting one after another with no boundary drawn around them. A short upright mark sits in the margin at the left edge of every ingredient row, there whether or not you’re working in that row. The row itself is a set of small boxes rather than one line, with no punctuation between them: the ingredient and the amount side by side — “Flour”, “190 g” — with a quiet “optional” at the end of that line when the ingredient is one you can skip, then a prep note on its own line below — “sifted” — and under that any substitutes, each an “or” line with its own ingredient and amount — “or”, “Bread flour”, “190 g”. An amount-first kitchen puts the amount box first. A row you aren’t working in shows the ingredient box plus only the other boxes it has something in, so a row holding just “Sugar” and “2 tbsp” shows two and stays one line tall. (The controls for adding, moving, and removing a line aren’t pictured here — see the description above.) Then a full-width footer box whose placeholder reads “Optional notes or source (rendered after a divider)”, then, at the very end of the document, a centered Delete this recipe button. A small card centered under the document holds Cancel and Done.

AI import

The Add Recipe button always opens Mirabel, whether or not the deployment has an Anthropic API key configured. How much AI an import takes depends on what you give her.

A backup file — a ZIP exported from another Mirepoix, or several files at once — goes straight into your recipes, with no AI and no draft to look over. A website that publishes its recipe in a form Mirepoix can read is read the same way, key or no key, and comes back as a draft.

Everything else — pasted text, a single text file, a page that publishes nothing readable — Mirepoix reads on its own first, and passes to AI only when that reading came out uncertain. Where AI isn’t available it gives you its own plain reading anyway, flagged for a careful check; and where it couldn’t make out a recipe at all, it says so and asks you to paste the recipe text in instead. See Markdown import for what becomes of each kind of file.

Importing from a photo takes AI, since reading a photo needs it — that choice needs an Anthropic API key. The browser bookmarklet needs one too: without a key its setup doesn’t appear, so there’s no way to get the button in the first place. Mirabel’s in-panel offers of these — Try a photo and Set up the grab-it button — drop out without a key as well.

Sharing a link from an Android phone’s Share sheet is the exception, and keeps working without a key: the link still lands in Mirepoix and still comes back as a draft, read without AI. On iPhone and iPad this route isn’t available at all — Mirepoix doesn’t appear in the Share sheet there, key or no key. Paste the link to Mirabel instead, which needs no key either.

Always review the result before saving. AI import is a fast starting point, not a finished import. See Import a recipe with AI for the walkthrough.

Editing an existing recipe

Open the recipe, then tap Edit in the action row below the recipe header. The same full-page editor opens with the recipe’s current content — there’s no pop-up dialog, and no separate modes to switch between.

Changes take effect when you tap Done. You’ll be taken back to the recipe page.

If you change the title, the recipe’s web address updates to match the new name. A link you’d already shared keeps working — it opens the recipe at its new address. See Sharing a recipe.

Saving as you go

The editor keeps your work as you go. A few seconds after you stop typing — and again the moment you switch away from the tab — Mirepoix quietly sets your in-progress edits aside. A closed tab, a flat battery, or a stray Back button doesn’t cost you the recipe.

The line in the card that holds Cancel and Done tells you where that stands. It reads Saved · just now when the last one went through, and ages as you keep working — Saved · 4 minutes ago. If one of those background saves can’t reach the kitchen it reads Not saved — check your connection, and the next edit tries again.

Set aside is not published. Done is the deliberate act that puts the recipe in your kitchen: it reads Saving… while it works, then takes you to the recipe page with a Saved to kitchen. note. A Done that goes through clears the set-aside edits. One that stops — a validation message, or the newer-version notice below — keeps them, so nothing is lost while you sort it out.

Leaving without saving

Leave with edits you haven’t published — tap Cancel, or follow a link off the page — and the editor asks first: “You have unsaved changes. Discard them?” Dismiss the prompt to stay and keep editing; nothing is thrown away, and your work goes on being set aside. Confirm and you’re on your way.

The two exits then part ways. Following a link keeps the set-aside edits, ready to be offered back the next time you open the editor. Cancel is the firmer one: it throws away the work you did this visit, set-aside copy and all. Edits that were only offered to you — and that you never picked up — survive even Cancel; Start fresh on the banner is how you let those go.

Edits the editor put back for you on its own (below) and you never touched are the quiet case: Cancel, or a link off the page, takes you back with no prompt and deletes nothing. The edits are still waiting the next time you open that recipe.

Closing or reloading the tab asks nothing at all, and neither does the Back button. Your browser used to raise its own leave-this-page warning here; it doesn’t any more, because the edits were set aside as you worked and they’re waiting the next time you open the recipe.

Two cases are worth knowing, since nothing warns you about either. If the line beside Done reads Not saved — check your connection, that last stretch of work hasn’t reached your kitchen yet, and closing the tab does lose it. Get back online and make one more edit — the next attempt goes through — or copy your work out of the document first. And a crash or a power cut is a different thing from closing the tab: closing gives Mirepoix a moment to send your latest work on its way, while a crash gives it none. What’s at risk then is the typing you’ve done since your last pause — Mirepoix sets your work aside a few seconds after you stop, so a long unbroken stretch of typing hasn’t been sent yet, at any length of recipe. The recipe is still safe; it’s that last stretch that isn’t. Either way the fix is the same: stop for a moment before you close, and check that the line beside Done has ticked over to Saved · just now.

Picking up where you left off

Open the editor again with edits waiting and one of three things happens.

Recent edits come back on their own. Edits set aside in the last 48 hours, with the recipe unchanged in your kitchen since, are put back into the document as the page opens. The status line says Resumed your edits from and when, with Start fresh next to it in case you’d rather not have them.

Older edits ask first. A banner at the top of the document says “You have saved edits from [when] that aren’t in the kitchen yet,” offering Pick up where I left off and Start fresh.

A recipe that changed underneath your edits always asks, however recent they are. Where it can tell, the banner names who saved that newer version and when — and says so plainly when that someone was you, on another device. Then it says what continuing costs: keep going and your next Done replaces that version. It isn’t lost — it stays in Recipe history, where you can read or restore it.

Once in a while it can’t tell. Then the banner says only that the kitchen’s copy no longer matches what your saved edits were based on, and that continuing replaces it. It makes no promise about history there, because that case is the one where the recipe has no saved versions to fall back on.

Start fresh throws the set-aside edits away, and asks before it does: “Delete your saved edits? The kitchen’s version stays as it is.” That’s the whole of it — the recipe in your kitchen is untouched, and only your unpublished edits go. If the deletion can’t reach the kitchen the editor tells you and keeps them, rather than reporting a tidy-up that didn’t happen.

Continue Draft at the top of your recipes list, next to Add Recipe, finds them from the other direction. It appears when you have edits waiting, and lists a recipe you started but never saved — under the title you’d typed, or “Untitled recipe” — then each saved recipe with edits waiting, newest first, each with how long ago you left it.

What’s set aside is private to you. Another cook in the same kitchen editing that recipe never sees your work, and never overwrites it with theirs. It’s kept per recipe, so several half-finished edits can wait at once, and a recipe you started but never saved is offered back the next time you start a new one. Edits you never come back to are cleared after 60 days.

If someone saves the recipe while you’re in the editor, your Done stops rather than overwriting their work: “Someone saved a newer version of this recipe while you were editing,” with Load newest version and Copy my edits as text.

Every text change becomes a version

Every save that changes the recipe’s text is recorded as a version — you don’t have to do anything to keep a record of your changes. A Done that changes nothing adds nothing to the history, and neither does a save that only swaps the photo: a version records the written recipe, not the picture. Some saves also carry a short note that Mirepoix writes for you, such as a fix from a recipe’s Review ingredients list. An edit from Mirabel is marked via Mirabel instead, so you can tell her changes from your own. See Recipe history to browse past versions and restore an earlier one.

Deleting a recipe

Open the recipe for editing, scroll to the end of the document, then tap Delete this recipe…. You’ll be asked to confirm.

Deleting a recipe removes it from the recipe list and takes it off the menu. It doesn’t tidy your grocery list for you: anything you’d already put on the list stays there, minus the amount and the recipe name the deleted recipe was contributing to it. Any recipes that cross-reference the deleted recipe will show a broken reference notice.

A deleted recipe isn’t gone for good. It moves to Recently deleted at the bottom of the recipe list, where you can restore it. See Recipe history.

See also

Last updated August 28, 2026