Skip to main content

Create and edit recipes

The recipe editor writes a recipe, its ingredient lines, and its steps. It is the only place where you change tags.

Open the editor​

  • New recipe: on the Recipes tab, tap New recipe.
  • Edit recipe: on a recipe page, tap Edit recipe.

The editor keeps the recipe status. To change the status, use the recipe page. The recipe page shows tags but does not change them.

Fill in the fields​

FieldNotes
TitleRequired.
ServingsThe yield the ingredient amounts are written for.
Prep minutesOptional.
Cook minutesOptional.
Total minutesOptional. If you leave it empty, the server adds prep and cook.
Meal typesBreakfast, lunch, dinner, snack, dessert.
TagsTap Add tag. The input suggests tags that other recipes use. Tap × to remove a tag.
EquipmentA comma-separated list.
NotesFree text.
Source name, Source URLWhere the recipe came from.

Add ingredient lines​

Use Add line to add a line. Each line has:

  • Ingredient: the name. The server uses an existing ingredient when the name matches, or creates one.
  • Qty and Max qty: a range uses both, for example 1 to 2 heads.
  • Unit: for example cup, tbsp, g. The server normalizes the unit.
  • Prep note: for example diced.
  • Group: a section header such as Sauce.
  • Optional: the pantry check and the cook deduction ignore the line.
  • Does not scale: the amount stays the same when servings change.

Use the arrows to reorder a line. Use the trash button to remove it.

Add steps and step ingredients​

Use Add step to add a step. Write the instruction and an optional duration and group. Instruction fields grow to five lines; longer text scrolls within the field.

To link an ingredient to a step:

  1. Use the Add ingredient to step menu. It lists the lines that this step does not use yet.
  2. Select a line.
  3. In the new link row, type the amount this step uses, in the line's unit. Leave it empty to use the whole line.

The unit always comes from the ingredient line. A link has no unit of its own.

If the step amounts for one line do not add up to the line amount, the editor shows a warning. The warning does not block saving.

Save​

Tap Save recipe. The app creates the recipe, or saves your changes, and opens the recipe page.

Step ingredient pills in cook mode​

In cook mode, a step shows its linked ingredients as pills below the instruction. A pill has:

  • The ingredient name.
  • The amount for the chosen servings, in the line's unit.
  • The prep note.

A link with no amount uses the scaled amount of the whole line. A scaling-exempt line keeps its written amount.

Delete or archive​

Use the action under the status control on the recipe page:

  • Delete recipe shows when the recipe has no cook events. Confirm to remove the recipe.
  • Archive recipe shows when the recipe has cook events. It sets the status to archived and keeps the cook history.

Through the API, MCP, or an import​

The API and MCP accept the same shape:

{
"ingredients": [
{ "ingredient": "Carrot", "qty": 4, "unit": "each" },
{ "ingredient": "Salt", "qty": 1, "unit": "tsp", "scalingExempt": true }
],
"steps": [
{ "text": "Cook the carrots.", "links": [{ "ingredientIndex": 0, "qty": 3 }] },
{ "text": "Season.", "links": [{ "ingredientIndex": 1, "qty": null }] }
]
}
  • ingredientIndex is the zero-based position in the submitted ingredients array. When a patch sends only steps, the index uses the stored line order.
  • qty uses the unit of the linked line. null means the whole line.
  • The server rejects a link that does not point to a line of the same recipe.
  • Replacing ingredients without steps removes the step links.

Read a recipe with GET /recipes/{idOrSlug} or recipe_get. Each step returns links with ingredientName, qty, unit, and prepNote.

See the REST API, the MCP tool reference, and Import format.