Generate shopping lists from one or more Cooklang recipes with scaling support
Generate consolidated shopping lists from recipes using CookCLI. Features:
Use this skill when:
Ask: "Which recipes should I include?"
"Pasta.cook""Pasta.cook" "Salad.cook"dinner/*.cook*.cook or **/*.cookAsk: "Any recipes need scaling?"
"Pasta.cook:2" (double)"Pasta.cook:0.5" (half)Basic command:
cook shopping-list "Recipe1.cook" "Recipe2.cook"
With scaling:
cook shopping-list "Pizza.cook:2" "Salad.cook"
All recipes in folder:
cook shopping-list dinner/*.cook
Output formats:
cook shopping-list recipes.cook -f json
cook shopping-list recipes.cook -f yaml
Show the list organized by:
aisle.conf exists)Indicate excluded pantry items if pantry.conf is configured.
Offer export formats:
User: "Make a shopping list for this week's dinners"
Run:
cook shopping-list dinner/*.cook
Output:
Shopping List
=============
Produce
-------
- tomatoes: 800g
- onion: 3
- garlic: 8 cloves
- basil: 1 bunch
Dairy
-----
- parmesan: 150g
- mozzarella: 200g
- eggs: 6
Meat
----
- chicken breast: 600g
- pancetta: 100g
Pantry
------
- olive oil: 4 tbsp
- spaghetti: 400g
User: "Shopping list for pizza night, doubled"
Run:
cook shopping-list "Pizza.cook:2"
Markdown export:
## Shopping List
### Produce
- [ ] tomatoes: 400g
- [ ] basil: 16 leaves
### Dairy
- [ ] mozzarella: 400g
### Pantry
- [ ] tipo zero flour: 1kg
- [ ] yeast: 2g
# Basic
cook shopping-list "Recipe.cook"
# Multiple recipes
cook shopping-list "Recipe1.cook" "Recipe2.cook"
# With scaling (2x, 0.5x)
cook shopping-list "Recipe.cook:2"
cook shopping-list "Recipe.cook:0.5"
# Glob patterns
cook shopping-list *.cook
cook shopping-list dinner/*.cook
# Output format
cook shopping-list recipes.cook -f json
cook shopping-list recipes.cook -f yaml
# Ingredients only (no quantities)
cook shopping-list recipes.cook --ingredients-only
# Specify recipe directory
cook shopping-list -b ~/recipes "Dinner.cook"
aisle.conf - Groups ingredients by store section:
[produce]
tomatoes
onion
garlic
[dairy]
milk
cheese
butter
[meat]
chicken
beef
pantry.conf - Items you have (excluded from list):
[pantry]
salt
pepper
olive oil
flour
:2 suffix to double, :0.5 to halvedinner/*.cook for all dinner recipesaisle.conf to match your grocery store layoutpantry.conf updated to avoid buying duplicates