Skip to content
Agentmart
Submit a tool

printable-recipe-card

Turn any online recipe (a HelloFresh link, a food blog, AllRecipes, NYT Cooking, Serious Eats, Minimalist Baker, a pasted recipe, or a screenshot or PDF of…

Skill by geekbrownbear

IndexedApache-2.0
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/geekbrownbear-printable-recipe-card

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Turn any online recipe (a HelloFresh link, a food blog, AllRecipes, NYT Cooking, Serious Eats, Minimalist Baker, a pasted recipe, or a screenshot or PDF of one) into a clean 2-page printable recipe card PDF. Page 1 has the photo, the ingredients, and an info bar. Page 2 is all steps. It doubles as an offline archive copy. Along the way it fixes broken recipe data such as missing prep steps, "1 unit" amounts, meat stock in veggie recipes, and inconsistent names. Use this whenever the user shares a recipe link or recipe text and wants a card, printable, PDF, offline copy, or "make this one into a card like the others", or says a site's print or PDF button is broken. Also use it for follow-ups like "do this one too" or "and this one".

Use cases: documents, data, writing, finance

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/printable-recipe-card

What's inside

Skill name
printable-recipe-card
Description
Turn any online recipe (a HelloFresh link, a food blog, AllRecipes, NYT Cooking, Serious Eats, Minimalist Baker, a pasted recipe, or a screenshot or PDF of one) into a clean 2-page printable recipe card PDF. Page 1 has the photo, the ingredients, and an info bar. Page 2 is all steps. It doubles as an offline archive copy. Along the way it fixes broken recipe data such as missing prep steps, "1 unit" amounts, meat stock in veggie recipes, and inconsistent names. Use this whenever the user shares a recipe link or recipe text and wants a card, printable, PDF, offline copy, or "make this one into a card like the others", or says a site's print or PDF button is broken. Also use it for follow-ups like "do this one too" or "and this one".
License
Apache-2.0
Instructions
253 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts
  • Instructions call the network

Agent Skills spec issues

  • body: contains an absolute path from the author's machine

Files (6)

  • README.md
  • SKILL.md
  • fixes-and-quantities.md · references/
  • spec-format.md · references/
  • build_card.py · scripts/
  • fetch_recipe.py · scripts/

SKILL.md (first lines)

# Printable Recipe Card

The user prints these cards to cook from instead of reading a phone. They also keep the PDFs
as an offline archive in case a recipe site disappears. So each card needs to be:
- **Complete**: every ingredient, quantity, temperature, and time from the original.
- **Correct**: obvious data errors are fixed.
- **Easy to read at the stove.**

The look is based on HelloFresh's printed cards: a big photo, a green ingredient panel, and
steps with titles and bullets, with ingredient names in bold.

## Configuration

This skill can save each finished card to a Google Drive folder and log it in a Google Sheet
(step 8). Those two destinations belong to each user, so they are **not filled in**. Fill them
in here, or let the skill ask on first use.

```
LOCAL_FOLDER      = <UNSET>   # full path of the recipe-card folder on the user's computer,
                              # inside a Google Drive for desktop synced location
DRIVE_FOLDER_ID   = <UNSET>   # ID of that same folder in Google Drive (the string after /folders/ in its URL)
SPREADSHEET_ID    = <UNSET>   # ID of the tracking sheet (the string between /d/ and /edit in its URL)
SHEET_TAB         = Sheet1    # tab name inside the sheet
```

**Check these before starting any recipe.** If any value still reads `<UNSET>`:
1. Say in one line that Drive saving and sheet logging are not set up yet.
2. Ask the user (AskUserQuestion works well) for the three values, or whether to skip Drive and
   the sheet and just deliver the PDF. Tell them where to find each one:
   - Folder path: right-click the folder in File Explorer or Finder and copy its path. It must be
     inside the Google Drive for desktop folder so it syncs.
   - Folder ID: open the folder in drive.google.com and copy the last part of the URL.
   - Sheet ID: open the sheet and copy the part of the URL between `/d/` and `/edit`.
3. Use the answers for the rest of the session. Do not edit this file. Suggest they paste the
   values into the Configuration block (or save them in their memory or notes) so they are not
   asked again.
4. If they choose to skip, run steps 1 to 7 only and say that step 8 was skipped by choice.

If the sheet is brand new and row 1 is empty, write the header row first: Name, Course, Cuisine,
Type, Saved Recipe, Original Recipe. If the sheet already has a different column layout, ask the
user how to map the six values instead of changing their layout.

The Drive and Sheets connectors run as whichever Google account the user connected to Claude.
That account must be able to see the folder and edit the sheet. If the folder lives in a
different Google account (a personal Drive for desktop sync, say), the folder and sheet need to
be shared with the connected account.

## Standing preferences

- **Page 1** has:
  - a header: title, subtitle, a stats line (time, servings, calories, protein), and up to 3 tags
  - the hero photo on the left, with ingredients to its right
  - a full-width info bar along the bottom: the intro blurb (no "Hello" heading) and Before you start, Cooking tools, Pantry
    ingredients and Allergens, a 2-column Nutrition table, and Notes

  There is **no** "Not included in your delivery" block, **no** "Some of the produce…" note, and
  **no** logo.
- **Page 2** is only the steps, full width. There is **no** "Cook for YOUR Crowd" section. The
  whole back page goes to the method, so long recipes fit:
  - photo steps: up to 8 (3 or 4 columns by 2 rows)
  - text-only steps: up to about 12 (2–4 columns)
- Use real quantities, never "1 unit". Whole-item counts (1 lime, 2 buns) are fine.
- If a recipe is labeled vegetarian or tofu but contains meat-based stock, swap in veggie stock
  everywhere. Don't change the protein in recipes that are genuinely meat recipes.
- Fix obvious errors without asking, then list every fix in the reply.
- If Drive and sheet saving is configured (see Configuration), every finished card is also saved
  to the user's recipe folder and logged in their tracking sheet (step 8).

## Workflow

### 1. Get the recipe

Run `python scripts/fetch_recipe.py <url> /home/claude/work` (use a fresh work directory for
each recipe).
- **HelloFresh**: you get ingredient icons, a photo for every step, and 2|4 serving amounts.
- **Most other recipe sites**: the script reads the schema.org Recipe data, which gives the hero
  photo, ingredient lines, steps, yield, times, and nutrition. Some sites also include step photos.
- **Exit code 2 (blocked or no structured data)**: see Fallback below.

### Fallback

Many sites (AllRecipes, Budget Bytes, Serious Eats, Cookie and Kate, and others) block the
container's curl. When that happens:
1. Call `web_fetch` on the user's URL. It usually works where curl doesn't, and it returns the
   page text, often including image URLs.
2. Try to download the main photo URL from that result with `curl -L -o img/hero.jpg <url>`.
   Image CDNs are usually not blocked. Check the file with `file`.
3. If there's still no photo, build without one. The ingredients then take the full width of
   page 1.
4. If the user pasted text or uploaded a screenshot or PDF, work straight from that.
5. Note any "Recipe Notes" or FAQ tips on the page (storage, substitutions, make-ahead). They
   go in the card's Notes section because they're valuable in an archive copy.

### 2. Look at the photos and set focal points

Make a contact sheet of the downloaded images and view it. Check three things:
- **The hero is the finished dish.** If not, use the final plated step photo.
- **The photos match the recipe.** On HelloFresh they often show a different protein; see
  the fixes reference.
- **Step photos are usable.** Tiny images or images with text overlays are better left out.

Then **choose a focal point for every image you use.** The card crops each photo to a
landscape box, and by default it keeps the dead center. Blog photos are often tall phone shots
(for example 1200x2133), so a center crop can land on the background, a cookbook, or empty
counter instead of the food. To fix that:
1. Make a second contact sheet with horizontal gridlines labeled 0.1 to 0.9 down the side of each
   image (PIL `ImageDraw` works) and view it.
2. For each image, read off where the food or the action in that step sits, and write it as
   `[fx, fy]` (fractions of the full image; 0,0 is top-left). Set `hero_focus` for the hero and
   `focus` on each step. Tall images mostly need `fy`; wide images mostly need `fx`.
3. Aim the crop at what the step is about (the mixer beaters in "Cream Together", the candy in
   "Add Candy"), not just at the largest blob of food.
4. After building, check the crops in step 6 and adjust any focal point that cut off the subject.

### 3. Audit and fix

Read `references/fixes-and-quantities.md` and go through its checklist. It has a general
section for any recipe and a HelloFresh section for the errors those recipes usually have.

From geekbrownbear/AI-Skills, Apache-2.0.

Compare and alternatives

    Featured in

    Signals

    Stars
    0
    Forks
    0
    Open issues
    0
    Last commit (this folder)
    Oct 19, 2026 (8 days ago)

    From GitHub (fetched Oct 24, 2026).

    Details

    License
    Apache-2.0
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026
    Cite this page

    printable-recipe-card skill. Agent Mart. https://agentmart.dev/skills/geekbrownbear-printable-recipe-card (last updated 2026-10-24)