Plain Text Recipes: A Beginner's Guide to the Cooklang Format
You have recipes everywhere. Screenshots on your phone. Bookmarks you'll never revisit. A notes app with 40 entries and no organization. Maybe a recipe app that stopped syncing last year.
Here's a different approach: write recipes as plain text files. Not in a database. Not in someone else's app. Just text files on your computer, phone, or wherever you keep files.
This guide shows you how.
What a Plain Text Recipe Looks Like
A Cooklang recipe is a .cook file that reads like a normal recipe but with a few annotations that make it machine-readable:
That's it. You can read it like a recipe. But a computer can also parse it — extracting ingredients, generating a shopping list, scaling quantities, running timers.
The Three Annotations
Cooklang uses three symbols to mark up recipe text:
@ for ingredients. Anything after @ is an ingredient. Put the quantity and unit in curly braces:
The % separates the quantity from the unit. 500%g means 500 grams. 3%cloves means 3 cloves.
If an ingredient has no quantity — say, "salt to taste" — just write @salt{} or @salt.
# for cookware. Mark pots, pans, and tools the same way:
~ for timers. Mark durations so tools can run countdown timers:
That's the entire syntax. Three symbols.
Convert Your First Recipe
Take any recipe you have. Here's a typical one from a website:
Simple Tomato Soup (Serves 4)
Heat 2 tablespoons olive oil in a large pot. Add 1 diced onion and 3 cloves garlic, cook 5 minutes until soft. Add two 400g cans crushed tomatoes, 1 cup vegetable broth, 1 teaspoon sugar, salt and pepper to taste. Simmer 20 minutes. Blend until smooth.
Now convert it to Cooklang:
It took about two minutes. The recipe still reads naturally, but now software can extract a shopping list, scale it to 8 servings, or run a 20-minute timer for you.
What You Can Do With It
Once a recipe is a .cook file, tools can work with it:
Generate a shopping list from one recipe or a whole week of dinners:
Scale servings — double, halve, or set any number:
Serve your recipes on your local network for kitchen use:
Search your collection:
All of these come from CookCLI, a free command-line tool.
How to Organize Your Files
Cooklang recipes are just files, so organize them however you want. Most people use folders:
Add a photo? Put it next to the recipe with the same name:
Cooklang tools will pick it up automatically.
Metadata
Add recipe metadata — servings, prep time, tags, source — in YAML frontmatter at the top of the file:
This metadata is used by tools for filtering, scaling, and display.
Sections
Use == to break a recipe into named sections — useful for recipes with distinct parts like a sauce and a base:
Sync and Edit Anywhere
Since recipes are files, sync them however you sync files:
- iCloud Drive — works with the iOS app
- Google Drive or Dropbox — any sync service works
- Git — version control your cookbook, see what changed, collaborate with others
Edit with any text editor. There are syntax highlighting plugins for VS Code, Obsidian, and others.
Next Steps
- Try Cooklang in the browser — no install needed
- Install CookCLI — the command-line tool
- Get the mobile app — cook and shop from your phone
- Language specification — the full syntax reference
Start with one recipe. The one you make most often. Convert it, save it as a .cook file, and see if you like working this way. Most people convert their whole collection within a week.
-Alexey