Recipes is coming soon to iPhone, iPad and Mac. Notify me

Documentation

Everything you need to know about how Recipes stores, parses, and formats your recipe files.

1. Overview

Recipes is built on the philosophy of open, future-proof data. Every recipe in your collection is stored as an ordinary, human-readable .md (Markdown) text file.

There are no proprietary databases, vendor locks, or binary formats. If you ever stop using Recipes, your recipes remain exactly as they were: clean, organised Markdown files that you can open in any text editor, note-taking app, or browser.

The app adds what a text editor can't: a three-column library, recipe-aware search, servings that rescale ingredients as you change them, a grocery list that combines duplicates, and integration with Spotlight, Siri and Shortcuts.

Search

Search looks at recipe titles and the full text of every recipe. Every word you type has to appear, in any order and anywhere in the recipe, so chicken lemon finds a recipe that mentions both. Title matches are listed first under Top Hits, then recipes that match in their text. Inside a folder, choose Current Folder (including its subfolders) or All Recipes.

Plain Text Forever

You can edit your recipe files directly in Obsidian, VS Code, Bear, iA Writer, or standard TextEdit. Changes reflect in Recipes instantly.

Available in nine languages: British English, American English, French, German, Spanish, Greek, Japanese, Korean and Simplified Chinese. Recipes written in any of these are parsed correctly too — not just the interface.

Recipes written in unsupported languages will still display cleanly in the app, but the interface won’t localise to that language, and servings scaling or ingredient parsing may have issues if number and measurement conventions differ.

2. Storage & Sync

By default, Recipes creates a dedicated folder in your iCloud Drive (or local documents folder):

Directory Path
iCloud Drive/Recipes/
├── Breakfast/
│   └── Shakshuka.md
├── Mains/
│   ├── Pasta/
│   │   ├── Carbonara.md
│   │   └── Creamy Pasta with Burnt Aubergine.md
│   └── Curry/
└── Desserts/

Folders in the app are folders on disk. Creating a folder creates a real directory; moving a recipe moves the file. Nesting is unlimited, and you can freely organise, rename and nest folders in Finder or Files.

You can choose a different location in Settings → Recipe Location → Change Location…, and go back with Reset to Default. On macOS that can be any folder on your Mac or an external drive; on iPhone and iPad, any folder you can reach in Files.

Opening files from elsewhere

Open a .md file with Recipes from Files or Finder and it opens straight away if it's already in your library. If it lives somewhere else, Recipes asks before copying it in — it never edits a file outside your library. If the name is already taken, the copy is numbered (Pasta 2.md) and the confirmation tells you so.

Syncing

Sync is iCloud's, not ours. Edit a recipe on your Mac and the change reaches your iPad the way any iCloud Drive file does.

If a recipe changes on another device while you have it open, the app quietly adopts the newer version — unless you have unsaved edits. In that case, your typing is never interrupted, and on save your edits are written to a new sibling file named Recipe Name (conflicted copy from iPhone/iPad/Mac).md (numbered if there's more than one), the same way iCloud itself resolves a conflict. The other device's version is left untouched at the original file name, so nothing is silently overwritten or lost.

File names are titles

A recipe's file name is its title in the library, and renaming in the app renames the file. Names must be unique within a folder: creating or renaming refuses a name that's taken rather than silently changing it, so you always know what happened. Moving something onto a name that's taken asks you to Keep Both (the moved item is numbered, like Finder), Replace, or Stop. Duplicating a recipe names the copy Pasta copy.

3. Recipe Format

The minimum is a file with some text in it. Everything below is optional, and the app degrades gracefully — a recipe with no frontmatter and no headings still opens and displays.

Below the frontmatter block, standard Markdown defines the structured sections:

  • Summary / description: any freeform text below the frontmatter and above the first heading.
  • An ingredients heading (in your language — see below): a bulleted list of ingredients.
  • A numbered list, anywhere in the file: read as the recipe's steps. Recipes finds it by the numbering itself, not by the heading above it, so ## Recipe, ## Instructions, ## Method or no heading at all all work identically.
  • Any other heading (e.g. ## Notes): rendered as normal Markdown — a nice convention, not something Recipes parses specially.

The ingredients heading

Recipes looks for an ingredients heading to know which lines are ingredients. Any of these work, at any heading level:

LanguageRecognised headings
EnglishIngredients, Ingredient List, What you'll need
ItalianIngredienti
FrenchIngrédients
GermanZutaten
SpanishIngredientes
GreekΣυστατικά
Japanese材料
Korean재료
Chinese食材, 配料

Everything from that heading until the next same-or-higher heading is treated as ingredients. Sub-headings below it (### Filling, ### Topping) stay part of the list, so you can group ingredients by component.

Writing ingredients

Two styles both work:

Ingredient styles
- Chicken thighs (900g, diced)   ← name first, quantity in brackets
- 900g chicken thighs, diced     ← quantity first

Anything after a comma inside the brackets is treated as a preparation note. It's always kept in the recipe, and it's ignored when the grocery list combines duplicates — "diced" isn't something you buy.

Spacing is up to you

900g and 900 g are read identically, and both scale correctly. Write whichever you prefer, and feel free to mix the two across a collection — Recipes doesn't normalise your files, so what you type is what stays on disk.

4. YAML Frontmatter

Frontmatter goes at the very top of the file, fenced by --- lines. Every key is optional.

Frontmatter
---
title: Chocolate Chip Cookies
servings: 24
prep: 15 mins
cook: 12 mins
source: https://example.com/cookies
tags: [baking, dessert, quick]
---
Key Type Description
title String The display name of the recipe. If omitted, the first # heading is used, then the file name.
servings Number Enables the servings stepper. Must be between 1 and 100. Without frontmatter, a line such as Serves 6 in the recipe is read instead.
prep or prep time String Preparation time (e.g. 15 mins, 1h). Both prep and prep time are recognised.
cook or cook time String Cooking or baking time (e.g. 45m). Both cook and cook time are recognised.
type String Recipe (or unset) shows the servings stepper. Any other value, such as Note, hides it.
source or sources URL / Array One link, or several: source: [url1, url2], or one per line as a YAML list (- url).
cookbook or book String A book reference, e.g. Salt Fat Acid Heat (p112).
author or by String The recipe's author.
tags Array / String Searchable tags (e.g. [pasta, quick, vegan]), or one per line as a YAML list.
notes or note String Free text.

Keys in your language

Frontmatter keys are recognised in all supported languages, so a Greek recipe can use Greek keys throughout:

Greek frontmatter
---
τίτλος: Μακαρόνια του Φούρνου
μερίδες: 12
προετοιμασία: 1h
μαγείρεμα: 45m
---

The same applies to title / titre / titel / título / タイトル / 제목 / 标题, and to every other key in the table above.

A note on colons

When you create a recipe with a colon or line break in its name — New Recipe, Create Recipe, or Import Recipe — Recipes uses the file name instead of writing that title into frontmatter, to avoid a broken title: ... line. An existing recipe's frontmatter can have a colon in its title with no issue; if you want one on a brand-new recipe, add it by hand afterwards, or put it in the # heading.

5. Servings Scaling

If a recipe declares servings in its frontmatter, the preview shows a stepper. A recipe without frontmatter gets one too if its text states the servings — Serves 6, Makes 8 buns, Für 4 Personen, 4人分 and so on, in every supported language. Changing it rescales every ingredient quantity on screen and in the grocery list. It's a view, not an edit: the file itself isn't changed.

Scaling is deliberately conservative: it only changes numbers it is confident about, and leaves everything else exactly as written.

What scales

Written asAt 2×Notes
400 ml800 mlPlain quantity and unit
1½ cups3 cupsMixed numbers and fraction glyphs
1/2 tsp1 tspWritten fractions
2 cloves4 clovesCountable units
1-1.5 kg2-3 kgRanges
4 to 6 sheets8 to 12 sheetsWord ranges
100+50g200+100gSums stay as sums (the grocery list totals them)
~500 g~1000 gApproximate markers preserved
half a leek1 leekWord quantities
a dozen eggs24 eggsDozens
800g / 2 cans1600g / 4 cansBoth halves move together
225 g / 1 large450 g / 2 largeSize words don't pluralise
大さじ2大さじ4Japanese, Korean and Chinese measure words stay in place
半小勺1小勺Number words in Chinese, Japanese and Korean

Compound quantities — two ways of describing the same amount, separated by / or ; — scale on both sides. 800g / 2 cans is one thing measured two ways, so both halves move together.

What doesn't scale

  • Salt to taste, 少々 and similar — there's no number, so there's nothing to scale.
  • Quantities in the instructions. Only the ingredients section is rescaled. A step saying "add 100 ml of the water" is left alone, because it refers back to an ingredient already counted.
  • Anything ambiguous. If a quantity can't be parsed confidently, the line is left untouched rather than guessed at.

Plurals and units

Units pluralise as the number changes — 1 clove becomes 2 cloves, and back again when you scale down. Abbreviations are never inflected: g stays g, never gs. Size words like large and medium never pluralise either.

For non-Latin scripts, pluralisation is skipped entirely rather than applying English grammar to a Japanese or Greek word.

Decimal commas

2,5 is read as two and a half, as written in French, German and Greek recipes. Recipe quantities essentially never use a comma as a thousands separator, so this isn't ambiguous in practice.

6. Grocery Lists

Export Grocery List turns the current recipe's ingredients into a shopping list, scaled to whatever servings you've selected.

It differs from the ingredients list in three ways:

  • Duplicates are combined. A recipe using butter in the filling and again in the topping gives you one line with the total.
  • Preparation notes don't split an ingredient. Garlic (2 cloves, minced) and Garlic (1 clove, sliced) become one line, Garlic (3 cloves) — you're buying garlic, not minced garlic. An ingredient that only appears once keeps its original wording.
  • Sums are totalled. Sugar (100+50g) becomes Sugar (150g).

Things that genuinely differ aren't merged: ground cinnamon and cinnamon sticks stay separate lines, because they're different things to buy. Different units are never added together either — 2 cloves and 1 tsp of garlic stay as two lines.

Send it to Reminders or Things

Settings includes two ready-made Shortcuts — one for Reminders, one for Things 3 — that take the exported list and add it as a new list or to-do items. Add them from Settings → Help, from onboarding, or from the links here.

7. Settings

SettingOptionsWhat it does
AppearanceSystem, Light, DarkOverrides the system appearance for this app only.
Sidebar densityCompact, Default, SpaciousControls row height in the library.
Recipe LocationAny folderWhere recipes are stored. Defaults to iCloud Drive. Reset to Default switches back.
Format with Apple IntelligenceOn / OffControls whether importing or formatting a recipe uses the on-device model. Only shown on hardware that supports Apple Intelligence.
Restore Sample RecipesAll, Vegetarian, VeganAdds the sample recipes matching your preference to a Sample Recipes folder, and creates any starter folders you don't have. Nothing is overwritten: if a sample with the same name is already there, the new copy is numbered (Tzatziki 2).

The edit/preview mode isn't a setting — the app simply reopens in whichever you last used.

Format with Apple Intelligence

Paste or type a recipe in however rough a shape it's in, and formatting organises it into ingredients, instructions, and (where the text states them) servings, prep time, cook time, source and cookbook fields.

  • Entirely on-device. Your recipe never leaves your device to be formatted.
  • Won't invent information. If your text doesn't state a servings count, a time, or a source, formatting leaves that field out rather than guessing.
  • Never overwrites what you've written. Reformatting a recipe that already has frontmatter fills in gaps — a field you haven't already specified — but never replaces a value you've entered yourself. Your intro text, your own headings, ### ingredient sub-sections and any custom frontmatter keys are kept.
  • Won't add ingredients. Anything the model suggests that isn't in your text is dropped.
  • Tidies as it goes. Temperatures get a proper degree sign (180ºC → 180°C), times are normalised, and a one-line ## Notes section moves into the notes field if you don't already have one.

Use the Format with Apple Intelligence button while editing a recipe. You can keep typing while it works; if the recipe changes before it finishes, the result is discarded rather than overwriting your edits. One recipe formats at a time, and a single Undo puts the recipe back as it was.

Formatting works for recipes in English, French, German, Spanish, Italian, Portuguese, Japanese, Korean and Chinese. Greek recipes display and scale normally, but can't be formatted yet.

8. Keyboard Shortcuts & Gestures

Keyboard shortcuts work with any hardware keyboard on iPad and iPhone, not just on Mac.

ShortcutActionPlatforms
⌘NNew recipeAll
⇧⌘NNew folderAll
⌥⌘NOpen in new windowmacOS
⌘FSearchAll
⌘RToggle edit / previewAll
⌘EExport grocery listAll
⌥⌘SToggle sidebarmacOS
⌘⌦Delete recipemacOS
⇧⌘.Increase servingsAll
⇧⌘,Decrease servingsAll
⌃⌘FToggle full screen (iPhone: landscape only)iPad, iPhone
⌘,SettingsmacOS
⎋Cancel / dismissAll

Gestures

  • Swipe a row in the library for quick actions.
  • Long press a row for the full context menu — rename, duplicate, move, share, delete.
  • Pinch out on a recipe (iPad) to expand it full screen; pinch in to return to the split view.
  • Two-finger swipe on a trackpad (Mac and iPad) to hide or show the sidebar.
  • Drag a recipe onto a folder to move it. Several can be dragged at once.

9. Apple Shortcuts

Recipes provides ten actions to the Shortcuts app, on all platforms.

ActionInputReturns
Open RecipeA recipe, optionally a view (Editor or Preview)—
Open a Random RecipeOptionally a folder, optionally including subfolders, optionally a viewThe recipe it picked
Get Grocery ListA recipe, optionally a servings countThe list, as text
Open FolderA folder—
Create FolderA name, optionally a destinationThe new folder
Create RecipeA name, optionally a destinationThe new recipe
Get Recipes in FolderOptionally a folder, optionally including subfoldersThe recipes
Read Recipe InstructionsA recipeThe steps, as text — also spoken aloud
Get Recipe StepA recipe and a step numberThe step, as text — also spoken aloud
Import RecipeA photo or text, optionally formatted with Apple Intelligence (keeping your wording or rewriting it for clarity), a title, and a destinationThe new recipe

Notes

  • Only the Open actions bring the app forward. The others run silently, so a Shortcut that files a recipe away doesn't drag you into the app on the way past.
  • To create something and then open it, chain the actions: put Create Recipe first, then Open Recipe and pass the result through. The create actions return what they made precisely so this works.
  • Destination is optional. Leave it blank and the item goes to the top level of your library.
  • Duplicate names are refused, not silently renamed, so a Shortcut that would have overwritten something tells you instead.
  • Import Recipe reads photos, including a two-page cookbook spread. Wording defaults to keeping the recipe's own words (fixing only obvious mistakes); Rewrite for clarity rephrases the steps without changing any ingredient, amount, time or temperature. If handwriting can't be read reliably, the recipe is imported as-is rather than guessed at.
Shortcuts sync across devices

A Shortcut built on your Mac works on your iPad, because recipes are identified by their position in your library rather than by a file path that differs per device. Renaming or moving a recipe does break a Shortcut pinned to it — reselect the recipe to fix it.

10. Siri & Spotlight

Six actions can be run by voice. Include the app's name — Siri uses it to know which app you mean.

ActionSay
Open a random recipe "Open a random recipe in Recipes"
"Pick a random recipe in Recipes"
"Surprise me with a Recipes recipe"
"What should I cook in Recipes"
Open a specific recipe "Open Chocolate Chip Cookies in Recipes"
"Show me Chocolate Chip Cookies in Recipes"
"Open a recipe in Recipes" — Siri will ask which
Get a grocery list "Get a grocery list for Chocolate Chip Cookies in Recipes"
"What do I need to buy for Chocolate Chip Cookies in Recipes"
Create a recipe "Create a recipe in Recipes" — Siri will ask for a name
"Add a recipe to Recipes"
Read a recipe's instructions "Read me the instructions for Chocolate Chip Cookies in Recipes"
"How do I make Chocolate Chip Cookies in Recipes"
"What are the steps for Chocolate Chip Cookies in Recipes"
Get a specific step "Read me a step from Chocolate Chip Cookies in Recipes" — Siri will ask which step

Notes

  • You don't need the exact title. Spoken names are matched the same way the in-app search field works, so "chocolate cookies" finds Chocolate Chip Cookies.
  • On macOS, Spotlight is the more reliable way to run these. Press ⌘Space and start typing the phrase — the action appears as a runnable result.
  • With a recipe open (iOS 27), you can ask Siri about what's on screen without naming it.
  • The first time you ask, iOS may request permission to use the app's shortcuts with Siri. Say yes, then repeat the request.

Spotlight

Recipes are indexed for system search. Search a recipe name from the Home Screen, Lock Screen or ⌘Space on Mac, and tap the result to open it directly.

Partial words work: searching chocolate finds Chocolate Chip Cookies. Newly created recipes are indexed automatically — no need to relaunch.

11. External Editors

If you already use Obsidian for personal knowledge management, you can point your Recipes folder directly inside your Obsidian vault (or open your Recipes folder as a dedicated vault).

Recipes respects standard Markdown syntax. Only .md files appear in the library — canvas files, attachments and hidden folders such as .obsidian are ignored.

12. Example Recipe

Here is a complete, copy-pasteable Markdown recipe template:

Horiatiki (Greek Salad).md
---
title: Horiatiki (Greek Salad)
servings: 4
prep time: 25m
notes: This has no right to be so delicious. An attempt to replicate the nostalgic village salads you'd order by default when dining in Greece
---

# Horiatiki (Greek Salad)

## Ingredients
- Cucumber (1, peeled, halved and chopped)
- Tomatoes (6, chopped into large chunks)
- Red onion (1, finely sliced)
- Green pepper (1, deseeded and chopped)
- Kalamata olives (to taste)
- Feta (half a block)
- Red wine vinegar (2 tbsp, optional)
- Greek oregano (1 tsp)
- Olive oil (3 tbsp)
- Salt (to taste)

## Recipe
1. Soak the red onion in a bowl of water for 15 minutes
2. Meanwhile, mix the cucumber and tomatoes then season generously with salt. Let them sit for a few minutes. You can drain the juice, or leave it to form part of the dressing, depending on your preference
3. Drain the red onion, then add to the cucumber and tomatoes along with the green pepper and olives
4. In a separate bowl, whisk the olive oil with the salt, oregano and optional vinegar
5. Pour over the salad and toss well
6. Place feta on top and sprinkle more oregano over the top. The feta should be broken up upon serving