CO

Tools for authoring, scaling, and validating Cooklang recipe files.

Install

mkdir -p .claude/skills/cooklang-recipes && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/16828" && unzip -o skill.zip -d .claude/skills/cooklang-recipes && rm skill.zip

Installs to .claude/skills/cooklang-recipes

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Write and edit Cooklang recipe files. Use when creating, editing, converting, or validating recipes. Covers ingredient markup, cookware, timers, metadata, modifiers, and recipe organization.
190 chars✓ has a “when” trigger
Beginner

Key capabilities

  • Parse and display Cooklang recipes from files
  • Scale recipe quantities by a specified factor
  • Generate shopping lists from single or multiple recipes
  • Validate Cooklang recipe syntax for errors and warnings
  • Organize shopping lists by aisle using `aisle.conf`
  • Convert recipe instructions into Cooklang syntax with specific markers

How it works

The skill uses the `cook` command-line tool to manage Cooklang recipes, including parsing, scaling, generating shopping lists, and validating syntax based on defined markers and structure.

Inputs & outputs

You give it
Cooklang recipe file path or search term
You get back
Parsed recipe, scaled recipe, shopping list, or validation report

When to use cooklang-recipes

  • Creating cooking recipes
  • Scaling recipes for groups
  • Generating automated shopping lists
  • Validating recipe syntax

About this skill

Cooklang Recipe Writing

Cook CLI

The cook command-line tool manages recipes. Key commands:

CommandPurpose
cook recipe "<path>"Parse and display a recipe
cook recipe "<path>:2"Scale recipe by factor
cook shopping-list <files>Generate shopping list
cook doctor validateCheck all recipes for errors
cook doctor aisleFind ingredients missing from aisle.conf
cook serverBrowse recipes in web interface
cook search "<term>"Search recipes

Recipe Display

cook recipe "Dinner/Pasta.cook"           # display recipe
cook recipe "Dinner/Pasta.cook:2"         # double the quantities
cook recipe "Dinner/Pasta.cook" -f json   # output as JSON
cook recipe "Dinner/Pasta.cook" -f markdown  # output as Markdown

Shopping Lists

cook shopping-list "Dinner/Pasta.cook"                    # single recipe
cook shopping-list "Dinner/Pasta.cook" "Dinner/Soup.cook" # multiple
cook shopping-list "Dinner/Pasta.cook:2"                  # scaled
cook shopping-list */*.cook                               # all recipes

Validation

cook doctor validate   # syntax errors and warnings
cook doctor aisle      # missing aisle.conf entries

Core Syntax

Markers

MarkerPurposeExamples
@Ingredient@salt, @butter{2%tbsp}, @eggs{3}
#Cookware#pot, #frying pan{}, #bowl{large}
~Timer~{15%minutes}, ~resting{30%minutes}

Ingredient Format

@ingredient                    -- name only
@ingredient{quantity}          -- with quantity (no unit)
@ingredient{quantity%unit}     -- with quantity and unit
@multi-word ingredient{}       -- multi-word names need braces

Examples:

  • @butter - name only
  • @eggs{3} - quantity without unit
  • @flour{250%g} - quantity with unit
  • @ground black pepper{} - multi-word ingredient
  • @olive oil{2%tbsp} - multi-word with quantity

Preparations

Add prep instructions in parentheses:

@onion{1}(diced)
@garlic{3%cloves}(minced)
@chicken{500%g}(cut into cubes)

Modifiers

ModifierPurposeExample
-Hidden from shopping list-@salt{to taste}
?Optional ingredient?@nuts{1%cup}
&Reference earlier ingredient&flour

Timer Formats

~{15%minutes}           -- exact time
~{2%minutes} to ~{3%minutes}  -- time range (preferred)
~{30%seconds}           -- short durations
~resting{10%minutes}    -- named timer

Recipe Structure

Metadata (YAML Frontmatter)

---
servings: 4
source: https://example.com/recipe
prep time: 15 minutes
cook time: 30 minutes
tags: dinner, quick, vegetarian
cuisine: Italian
difficulty: easy
---

Required: servings (must be a number, not "4 servings")

Optional: source, author, prep time, cook time, tags, cuisine, difficulty

Steps

Blank lines separate steps. Each paragraph becomes a numbered step:

Preheat #oven{} to 375°F.

Mix @flour{2%cups} and @sugar{1%cup} in a #bowl{large}.

Bake for ~{25%minutes} until golden.

Sections

For complex recipes with multiple parts, use =:

= Sauce

Mix @soy sauce{3%tbsp} with @honey{1%tbsp}.

= Stir Fry

Cook @chicken{1%lb} in -@oil{2%tbsp}.

Notes

Personal tips with >:

> Don't overmix the batter
> Works best with room temperature butter

Comments

-- Single line comment (not shown in output)

[- Multi-line
   comment block -]

Conversion Guidelines

OriginalCooklang
1 cup flour@flour{1%cup}
2 large eggs@eggs{2%large}
salt to taste-@salt{to taste}
1/2 cup butter, softened@butter{1/2%cup}(softened)
medium saucepan#saucepan{medium}
cook for 20 minutescook for ~{20%minutes}
cook 2-3 minutescook ~{2%minutes} to ~{3%minutes}

Quality Checklist

  • All ingredients marked with @
  • Multi-word ingredients have {}
  • Quantities include units where applicable
  • Cookware marked with #
  • Timers added for cooking steps
  • Servings is a number (not "4 servings")
  • Steps separated by blank lines
  • Section headers use = not >>
  • Pantry staples use -@
  • Source credited if adapted

File Organization

  • Filename becomes recipe title in apps
  • Use Title Case: Chocolate Chip Cookies.cook
  • Place in category folder: Desserts/Chocolate Chip Cookies.cook
  • Categories: Breakfast, Lunch, Dinner, Sides, Sauces, Desserts, Drinks, Basics

Aisle Configuration

config/aisle.conf organizes shopping lists by store section:

[produce]
garlic|garlic clove|garlic cloves
onion|onions|yellow onion|red onion
bell pepper|peppers|green bell pepper|red bell pepper

[dairy]
butter|unsalted butter|salted butter
eggs|egg|large eggs|egg whites

[pantry]
flour|all-purpose flour|bread flour

Use | for synonyms that map to the same item.

Run cook doctor aisle after adding recipes to find missing entries.

Resources

When not to use it

  • When working with recipes not in Cooklang format
  • When the task involves complex recipe analysis beyond syntax and scaling
  • When the user wants to browse recipes in a web interface without using `cook server`

Limitations

  • Requires recipes to be in Cooklang format
  • Shopping list organization depends on `config/aisle.conf`
  • Metadata requires `servings` to be a number

How it compares

This skill provides a structured, command-line interface for managing Cooklang recipes, offering specific tools for validation and shopping list generation, unlike manual recipe management.

Compared to similar skills

cooklang-recipes side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
cooklang-recipes (this skill)08moReviewBeginner
youtube-transcript689moReviewIntermediate
openai-whisper383moNo flagsBeginner
filler-word-processing12moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry