Reports and Data Management
The cook report command uses minijinja templates to transform your recipes into any output format — shopping lists with product links, cost breakdowns, nutrition labels, recipe cards, or anything else you can template.
The report command is currently a prototype feature.
Basic Usage
A simple recipe card template:
The Database System
The database (-d flag) enriches recipes with external data — nutrition, cost, shopping links. It's organized as a directory tree where each ingredient has its own folder:
Shopping Data Example
Connect ingredients to actual products at specific stores:
Smart Shopping Lists
Combine templates and database to generate shopping lists with product links, excluding pantry items:
Run it:
Aisle-Organized Shopping
Group items by store section for efficient shopping:
Cost Analysis
Track recipe costs using database pricing:
Scaling
Scale recipes before processing:
Template Functions
Pantry Functions
excluding_pantry(ingredients)— filter out pantry itemsfrom_pantry(ingredients)— get only pantry itemsget_ingredient_list(ingredients)— normalize ingredient list
Organization Functions
aisled(ingredients)— group by store aisledb(path, default)— access database valuesunderscore(text)— convert to underscore format
Formatting Filters
titleize— convert to title caseformat— Python string formattinground— round numbersdefault— provide fallback values
Output Formats
Templates can generate any text format:
- YAML — for automation and APIs
- Markdown — for documentation and sharing
- HTML — for web display
- LaTeX — for cookbook publishing (see Creating Cookbooks)
- CSV — for spreadsheet import
Find more example reports in the repository.
See Also
- CLI Report Command — full command reference
- Shopping Lists — focused shopping list workflows
- Pantry Management — managing your ingredient inventory