Recipe ocr
Recipes.md is a plain-text recipe markup format that produces publication-ready output via [pandoc](https://pandoc.org/), the universal document converter.
npx -y skills add recipes-in-markdown/recipes.md-spec --skill recipe-ocrAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Extract recipes from scanned cookbook pages or photography and convert to Recipes.md format. In chat, upload image(s) of recipe pages. In Claude Code, pass local file paths or directories to batch-process multiple recipes (each image set represents one recipe). Intelligently merges multi-page recipes, auto-detects page order, and generates structured Markdown with YAML frontmatter, two-column ingredient/instruction layout, metadata, and proper formatting. Source citation is optional but recommended for proper attribution. Use whenever you need to digitize printed or handwritten recipes into a standard, machine-readable format.
SKILL.md
4.4 KB, 908 tokens by cl100k_base, as published. Nobody here has run it
Recipe OCR Extractor
Convert scanned cookbook pages or recipe photographs into structured Recipes.md Markdown files.
Input modes
Chat (image uploads)
Upload one or more recipe page images:
Extract this recipe from the scanned pages: [image 1] [image 2]
Source: Joy of Cooking by Irma S. Rombauer
Images are processed as a single recipe. Provide them in page order if the recipe spans multiple pages.
Claude Code or agentic workflows (file paths)
Provide local image paths (JPG, PNG, GIF, WebP). Images are processed together as one recipe:
# Single page
recipe_ocr("recipes/beef_stew.jpg", source="Serious Eats")
# Multi-page recipe (in order)
recipe_ocr(
["recipes/croissants_page1.jpg", "recipes/croissants_page2.jpg"],
source="Julia Child - Mastering the Art of French Cooking"
)
# Directory of images (all treated as one recipe)
recipe_ocr("scans/", source="Grandmother's Cookbook")
Returns a list of .md file paths, one per recipe extracted.
Output format
Each recipe produces a .md file following the Recipes.md specification with:
- YAML frontmatter: title, prep-time, cook-time, yield, serves, source, author, tags
- Optional description: Context or notes before the recipe begins
- ::: ingredients fenced div: Ingredient list with optional subsections
- ::: instructions fenced div: Numbered steps with optional notes and pull quotes
Multi-page recipe handling
When multiple images are provided, the skill:
- Reads left-to-right, top-to-bottom across all pages
- Automatically detects page breaks and merges content logically
- Ensures instruction steps flow in cooking order, not page order
- Removes duplicate information that appears on multiple pages
- Excludes page numbers and running headers/footers from scans
Filename generation
Recipe filenames are generated in kebab-case from the recipe title:
- "Chocolate Chip Cookies" →
chocolate-chip-cookies.md - "Crème Brûlée" →
creme-brulee.md - "Dal Makhani" →
dal-makhani.md
Metadata and tagging
The skill extracts:
- Title, prep/cook time, yield, servings from recipe text
- Source citation — required in the output for proper attribution. Provide as: "Book Title by Author" or a URL
- Author — extracted from source if available
- Tags — auto-inferred by ingredient, cuisine, diet, and cooking method following the Recipes.md taxonomy
Recipes.md specification
The output strictly follows the Recipes.md Plain Text Recipe Format Specification (v1.1.0-draft). This format:
- Is pure Markdown + YAML (CommonMark-compliant)
- Renders correctly in any Markdown viewer
- Converts to HTML, DOCX, PDF via pandoc
- Is agentic-friendly and version-control ready
Notes
- Images: JPG, PNG, GIF, WebP. Quality scans (200+ DPI) produce best results.
- Multi-page: Images must be provided in order. The skill auto-detects page order intelligently.
- Source citation: Optional but recommended. Format: "Book Title by Author" or URL. Without it, the
sourceandauthorfields remain unpopulated. - Output: Always a
.mdfile per recipe; no errors thrown on incomplete or poorly scanned recipes. - API key: Uses
ANTHROPIC_API_KEYenvironment variable. - Model: Claude 4 (vision-capable model).
Examples
Chat:
Extract this recipe:
[photo of handwritten recipe card]
Source: Grandmother's collection
Claude Code:
# Single image
recipe_ocr("~/cookbook_scans/tiramisu.jpg", source="Mastering the Art of Italian Cooking")
# Multi-page
recipe_ocr(
["page1.jpg", "page2.jpg"],
source="https://www.seriouseats.com/homemade-pasta-recipe"
)
# Batch from directory
recipe_ocr("~/cookbook_pages/", source="Joy of Cooking")
Gives 0 of the 12 instructions most pdf office docs skills give in 908 tokens
Counted across 636 of the 690 authors here whose files we hold, read 2026-08-07
- extract text using pdfplumberin 89 of 636, across 23 files
- create PDFs using reportlabin 83 of 636, across 16 files
- read forms.md to fill out pdf formsin 80 of 636, across 13 files
- OCR scanned PDFs using pytesseractin 77 of 636, across 10 files
- merge or split PDFs using qpdfin 70 of 636, across 3 files
- use excel formulas instead of hardcoded calculated valuesin 68 of 636, across 13 files
- unpack edit xml and repack existing documentsin 63 of 636, across 8 files
- document sources for hardcoded valuesin 61 of 636, across 9 files
- write minimal python code without unnecessary commentsin 59 of 636, across 7 files
- run the recalculation script after adding or modifying formulasin 59 of 636, across 7 files
- fix all identified formula errors and recalculatein 58 of 636, across 6 files
- format years as text stringsin 57 of 636, across 5 files
Said here and by no other author read
- process uploaded images as a single recipe
- read left-to-right and top-to-bottom across pages
- detect page breaks and merge content logically
- ensure instruction steps flow in cooking order
- remove duplicate information appearing on multiple pages
- generate kebab-case filenames from recipe titles
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.