Back to list
keiththompson

cooklang-formatting

by keiththompson

A Claude Code plugin that converts recipe videos from TikTok, Instagram, YouTube, and other platforms into Cooklang format.

0🍴 0📅 Jan 2, 2026

SKILL.md


name: cooklang-formatting description: Format recipes using Cooklang markup syntax. Use when creating, editing, or converting recipes to Cooklang format. Covers ingredients, equipment, timers, metadata, and file organization.

Cooklang Recipe Formatting

Style Guidelines (IMPORTANT)

1. Capitalize ingredients and equipment

@Leek{1}           -- correct
@leek{1}           -- wrong

#Pan{}             -- correct
#pan{}             -- wrong

2. No adjectives inside keywords

Adjectives go BEFORE the keyword, not as part of it:

large #Pan{}       -- correct
#large pan{}       -- wrong

hot #Skillet{}     -- correct
#hot skillet{}     -- wrong

medium @Onion{1}   -- correct
@medium onion{1}   -- wrong

3. Prefer metric measurements

Use grams, ml, litres instead of cups. Teaspoons and tablespoons are OK:

@Flour{250%g}      -- correct
@Flour{2%cups}     -- wrong

@Milk{500%ml}      -- correct
@Milk{2%cups}      -- wrong

@Stock{1%litre}    -- correct
@Stock{4%cups}     -- wrong

@Butter{2%tbsp}    -- OK (tbsp allowed)
@Vanilla{1%tsp}    -- OK (tsp allowed)

4. Include a recipe image

Save the most appealing frame from the video as an image with the same name:

Dinner/Garlic Butter Shrimp.cook
Dinner/Garlic Butter Shrimp.jpg    -- same name, .jpg extension

Quick Reference

SymbolPurposeExample
@Ingredient@Butter{30%g}
#Equipment#Frying Pan{}
~Timer~{5%minutes}
---Metadata blockYAML frontmatter
==Section header== Sauce ==

Ingredient Syntax

@ingredient                      -- name only (to taste)
@ingredient{quantity}            -- with amount, no unit
@ingredient{quantity%unit}       -- full specification
@multi word ingredient{}         -- braces required for multi-word
@ingredient{qty%unit}(prep)      -- with preparation instructions

Examples

@Salt{}
@Eggs{3}
@Butter{30%g}
@Chicken Breast{500%g}
@Garlic{3%cloves}(minced)
@Onion{1}(diced)

Notes on Ingredients

  • For pantry staples (salt, pepper, oil), just use @Salt{} with no quantity
  • For optional ingredients, write "optional" in the text: Add optional @Chilli Flakes{1%tsp} if desired.
  • Don't use -, ?, or & prefixes - they're not supported by most Cooklang apps
  • Don't mark cooking water as an ingredient - water for boiling/blanching is not a shopping list item:
    Bring a large #Pot{} of water to a boil.     -- correct (plain text)
    Bring a large #Pot{} of @Water{} to a boil.  -- wrong (creates ingredient)
    

Equipment Syntax

#Pot{}
#Frying Pan{}
#Mixing Bowl{}
#Baking Sheet{}

Adjectives go before, not inside:

large #Pot{}           -- correct
#large pot{}           -- wrong

Timer Syntax

~{5%minutes}
~{30%seconds}
~{1%hour}
~resting{10%minutes}     -- named timer

Important: Use single values only, NOT ranges. Write ~{15%minutes} not ~{10-15%minutes}. For variable times, pick the middle value or write it in text: "about 10-15 minutes".

Recipe Structure

Metadata (YAML Frontmatter)

---
source: https://example.com/recipe
servings: 4
prep_time: 15 minutes
cook_time: 30 minutes
---

Note: servings must be a number, not text.

Steps

Each paragraph becomes a numbered step. Separate steps with blank lines:

Preheat #Oven{} to 190°C.

Season @Chicken Breast{500%g} with @Salt{} and @Pepper{}.

Bake for ~{25%minutes} until internal temperature reaches 75°C.

Sections

Use == for complex recipes with multiple parts:

== Marinade ==

Combine @Soy Sauce{45%ml} and @Honey{30%g} in a #Bowl{}.

== Main Dish ==

Cook @Chicken{500%g} in the marinade.

Notes

Use > prefix for tips:

> For extra flavor, marinate overnight.

File Organization

Save recipes to category folders using Title Case:

Breakfast/Fluffy Pancakes.cook
Lunch/Greek Salad.cook
Dinner/Garlic Butter Shrimp.cook

Categories

  • Breakfast: Morning meals, eggs, pancakes, smoothies
  • Lunch: Salads, sandwiches, soups, light meals
  • Dinner: Main courses, proteins, pasta, substantial meals
  • Sides: Accompaniments, vegetables
  • Sauces: Dressings, marinades, condiments
  • Desserts: Sweets, baked goods
  • Drinks: Beverages, cocktails

CLI Commands

If the cook CLI is installed:

cook recipe "path/to/recipe.cook"      # Parse and display
cook recipe "path/to/recipe.cook:2"    # Scale by 2x
cook shopping-list *.cook              # Generate shopping list
cook doctor validate                   # Check for syntax errors

Common Patterns

Simple Recipe

---
source: https://tiktok.com/@creator/video/123
servings: 2
---

Heat @Olive Oil{2%tbsp} in a large #Skillet{} over medium heat.

Add @Garlic{3%cloves}(minced) and cook for ~{30%seconds}.

Add @Prawns{450%g} and cook for ~{2%minutes} per side until pink.

Season with @Salt{} and @Pepper{} to taste.

Recipe with Sections

---
servings: 4
---

== Sauce ==

Whisk @Soy Sauce{3%tbsp}, @Honey{2%tbsp}, and @Sesame Oil{1%tsp}.

== Stir Fry ==

Heat #Wok{} over high heat. Cook @Chicken{500%g}(sliced) for ~{5%minutes}.

Add sauce and toss to coat.

Score

Total Score

70/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新

+5
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

0/5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon