Help & Reference

Groceries

Your shopping list — an in-store checklist of what you’re planning to buy. Items land here when you tap the cart button on a Pantry row, type one into the Add a custom item… field below the list, or swap a listed ingredient for a recipe’s substitute. Nothing adds itself.

Tap an item off as you shop

Tap the checkbox next to a row. The buy is provisional for an hour: the row stays visible here, crossed out, and the item won’t pop back onto the Pantry’s radar in the meantime.

If you tap the checkbox again within that hour, the row uncrosses and nothing else changes — it’s a true undo. Un-buying within the hour leaves the item’s reminder clock exactly where it was.

Adding the item to the list again does the same thing: the row uncrosses and its reminder clock stays put. That works from any add field — the one on this page or the search overlay — or by asking Mirabel.

After the hour, the buy commits on its own — the list doesn’t have to be open on anyone’s device. The row drops off Groceries, and the item’s reminder clock restarts from the day you checked off — using how often you’ve told the Pantry to check it, or its built-in cadence if you haven’t. Until that runs out, the Pantry won’t ask about it again.

When the last item in an aisle is checked off, a appears next to the aisle name and the aisle collapses on its own a moment later — on every device showing the list. Tap the aisle name to expand it again.

A finished aisle stays shut. It doesn’t matter whether it closed on its own or you tapped it closed — this device remembers. The aisle is still closed after a reload, after a trip to another page, and after the list updates from someone else’s device. Tap it open to look back over what you bought, and it stays open.

You can also collapse an aisle that still has items left, to get it out of the way for a bit. That’s a snooze, and the aisle says so: a ☾ snoozed tag on the aisle name keeps count of what’s still hiding inside. A snooze doesn’t stick the way a finished aisle does. It lasts until you reload or reopen the page — then the aisle springs back open with a brief highlight and a note about how many items are left, so nothing on your list gets forgotten behind a closed aisle. A snoozed or finished aisle also reopens on its own the moment a new item lands in it, whether you add the item by hand or a menu change brings in a new ingredient. Nothing new stays hidden inside a closed aisle.

Remove an item without buying it

Open the menu on a row and tap Remove from list. A confirm dialog asks: “Remove {name} from the list?” Confirm and the row leaves the list.

This is the path for items you’ve changed your mind about — you added saffron from Pantry earlier, but you’re not heading to that store after all. The row leaves the list, but the item’s reminder clock keeps ticking, so it stays on the Pantry’s radar. Re-add the row from Pantry whenever you’re ready.

Swap in a substitute

When a recipe offers a substitute for an ingredient — a line like - Buttermilk, 1/2 cup; or Milk, 1/2 cup, see Recipe format — that ingredient’s row carries a chip naming the other one: or milk ⇄.

Tap the chip and your list switches over. A milk row joins the list, and the buttermilk row drops off unless something else on your Menu still calls for it. Tap the chip again to switch back. When a line offers more than one substitute, each tap moves to the next one and comes back around to the ingredient the recipe lists first.

The choice belongs to your kitchen, not to the recipe. It shows on everyone’s screen right away, and the recipe still lists every version — nothing is edited. Re-saving the recipe does clear the choice: each line goes back to the ingredient written first on it.

If two things on your Menu call for the same ingredient and both offer a substitute, the row carries one chip per recipe.

Optional ingredients

A recipe line marked ; optional gets an optional pill on its row, so you can decide at the shelf. The pill shows only when everything on your Menu asking for that ingredient marks it optional — if one recipe needs it outright, there’s no pill.

Optional ingredients also sit out of a recipe’s availability on the Menu: they’re in neither the Missing nor the Have list, and they don’t move the count badge.

Add a custom item

Type into the Add a custom item… field below the list and press Enter (or tap the +). The item joins the list right away.

A new item lands in Miscellaneous. To put it in a specific aisle, use its menu once — that aisle is then remembered the next time you add the same name. See Custom items for the details.

Edit the aisle order

Tap Edit Aisles in the page header to rearrange, rename, add, or remove aisles. Aisles with no items are hidden until something lands in them. For the full editor, see Editing aisles.

Group the list by store

Tap Edit Stores in the page header to set up the stores you shop at. Once you have, a Shopping at picker appears above the list, naming whichever store you’re shopping. All stores shows your whole list grouped by aisle; pick a store to shop that one on its own. For the full editor, see Grouping by store.

Read the count

A hairline at the top of the list fills as you tap items off, with the count beside it. The count reads 12 items to buy, 1 item to buy, or ✓ All done! when you’re done. The list is shared across devices in real time, so a partner checking something off at home updates your screen on the spot. The screen also stays awake while the page is open.

How amounts are shown

Each row shows the total amount you need. When the same ingredient turns up across the recipes you’ve selected in compatible units, the list combines them into one amount — 1 cup in one recipe and 2 tablespoons in another show as a single ~1⅛ cup, not two lines.

A volume and a weight of the same ingredient also combine, as long as the app knows how much a cup of that ingredient weighs. So 1 cup of flour in one recipe and 140 g in another fold into a single weight in grams, instead of sitting side by side. This works whether the two amounts came from different recipes or from the same one.

When the app doesn’t know that ingredient’s weight, the volume and weight stay side by side, joined with “ + “. Counts never fold into a volume or weight — a count of 3 has no weight to convert — so a count also stays side by side. An item with no countable amount shows no amount at all. When more than one thing on your Menu calls for it that way, the row counts the asks instead — Salt (3 uses).

Parts you don’t buy on their own

Some recipe lines name a part of something rather than the thing you put in your cart — lemon zest, an egg yolk, cooked rice. Those land on the list as the thing you actually buy: a tart calling for lemon zest puts Lemon on your list.

When something else on your Menu calls for the whole ingredient, the two share one row, and the row names both demands: Lemon (4 + 2 tbsp lemon zest).

The two amounts sit side by side, each in the recipe’s own words. They’re never added together. Two tablespoons of zest might come off one lemon or three, and Mirepoix won’t guess which — that call is yours at the shelf. Two parts of the same thing each get their own label too: Egg (2 egg whites + 2 egg yolks). A line asking for a part with no amount reads Lemon (for lemon zest).

The row acts as one row. Check it off, undo the check, remove it from the list, or snooze it on Pantry, and everything folded into it follows — so a zest line can’t put the row back on your list after you’ve bought the lemons.

Typing a part into the Add a custom item… field folds the same way. Type lemon zest and it’s Lemon that joins the list.

Which ingredients pair up this way is built in — there’s nothing to set. Today it covers lemon and orange zest and peel, egg whites and yolks, cooked rice (bought as white rice), and neutral oil (bought as vegetable oil). Each part keeps its own nutrition, so a recipe’s label still counts the zest as zest — see Ingredient catalog.

What lives on the list

Each row carries a few pieces of state:

What Meaning How it changes
On the list Whether the row shows on Groceries at all The cart button on Pantry, Remove from list here, a swap chip carrying the row over to a substitute, or any add field: this page, the search overlay, or Mirabel
The undo hour The hour after a check-off when unchecking is a clean undo Starts when you check a row off; ends an hour later when the buy commits, or sooner if you uncheck the row or add the item back
The reminder clock When the Pantry next nudges you about the item Restarts when a buy commits, an hour after the check

Checking an item off starts the undo hour without touching the reminder clock, so the buy stays provisional. When the hour runs out, the buy commits: the clock restarts and the row leaves the list in one move.

When you’re empty, the page reads: Your cart is empty. Add items from the Pantry, or type one in below.

See also

Last updated August 28, 2026