Claude
Skills
Sign in
Back

pp-food52

Included with Lifetime
$97 forever

Search, browse, and read Food52 from your terminal — with offline FTS, pantry matching, recipe scaling, and the editorial signals other tools throw away. Trigger phrases: `find me a food52 recipe for X`, `scale this food52 recipe to N servings`, `what can I cook from food52 with what's in my pantry`, `use food52`, `run food52`.

General

What this skill does

<!-- GENERATED FILE — DO NOT EDIT.
     This file is a verbatim mirror of library/food-and-dining/food52/SKILL.md,
     regenerated post-merge by tools/generate-skills/. Hand-edits here are
     silently overwritten on the next regen. Edit the library/ source instead.
     See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->

# Food52 — Printing Press CLI

## Prerequisites: Install the CLI

This skill drives the `food52-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first:

1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows:
   ```bash
   npx -y @mvanhorn/printing-press-library install food52 --cli-only
   ```
2. Verify: `food52-pp-cli --version`
3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill.

If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.3 or newer):

```bash
go install github.com/mvanhorn/printing-press-library/library/food-and-dining/food52/cmd/food52-pp-cli@latest
```

If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds.

## When to Use This CLI

Reach for this CLI when an agent needs Food52-quality recipes (community-curated, editor-tested) without rendering a browser or scraping HTML. The pantry match and offline FTS commands turn it into an edit-friendly cookbook the agent can keep on disk between sessions. Use the live `recipes search` for one-off lookups; sync + offline `search` for repeated queries against the same recipes.

## When Not to Use This CLI

Do not activate this CLI for requests that require creating, updating, deleting, publishing, commenting, upvoting, inviting, ordering, sending messages, booking, purchasing, or changing remote state. This printed CLI exposes read-only commands for inspection, export, sync, and analysis.

## Unique Capabilities

These capabilities aren't available in any other tool for this API.

### Local state that compounds
- **`pantry match`** — Find Food52 recipes whose ingredients overlap your local pantry, ranked by coverage.

  _Reach for this when the user asks 'what can I make with what I have' rather than searching for one dish at a time._

  ```bash
  food52-pp-cli pantry match --min-coverage 0.7 --json
  ```
- **`search`** — Full-text search across every recipe and article you have synced, with type filtering.

  _Use this for lookups that can't justify a Typesense round trip or when offline._

  ```bash
  food52-pp-cli search "miso" --type recipe --json
  ```
- **`sync recipes`** — Pull recipes for one or more tags into the local FTS-indexed store.

  _Run before pantry match or offline search to seed the local cookbook._

  ```bash
  food52-pp-cli sync recipes chicken vegetarian --limit 100
  ```
- **`articles for-recipe`** — Find synced articles that mention a given recipe in their relatedReading.

  _Use when the user wants the editorial context behind a recipe they've found._

  ```bash
  food52-pp-cli articles for-recipe sarah-fennel-s-best-lunch-lady-brownie-recipe
  ```

### Editorial signals others ignore
- **`recipes top`** — Show only Food52 Test-Kitchen-approved recipes for a tag, with a rating floor.

  _Pick this over a broad search when the user wants 'a recipe Food52's editors signed off on,' not just any community recipe._

  ```bash
  food52-pp-cli recipes top chicken --min-rating 4 --limit 5 --json
  ```

### Recipe transforms
- **`scale`** — Scale a recipe's ingredients to a different number of servings using its Schema.org recipeYield.

  _Use when the user is cooking for a different headcount than the recipe's default yield._

  ```bash
  food52-pp-cli scale mom-s-japanese-curry-chicken-with-radish-and-cauliflower --servings 8 --json
  ```
- **`print`** — Render a recipe as ingredients + numbered steps with no nav, no images, no ads, no comments — ready to pipe to lp or paste into notes.

  _Use when the user wants to actually cook from the recipe rather than browse it._

  ```bash
  food52-pp-cli print sarah-fennel-s-best-lunch-lady-brownie-recipe
  ```

## HTTP Transport

This CLI uses Chrome-compatible HTTP transport for browser-facing endpoints. It does not require a resident browser process for normal API calls.

## Discovery Signals

This CLI was generated with browser-observed traffic context.
- Capture coverage: 0 API entries from 0 total network entries
- Protocols: ssr_embedded_data (100% confidence), next_data_json (100% confidence), rest_json (100% confidence), schema_org_jsonld (100% confidence)
- Auth signals: none
- Generation hints: browser_http_transport
- Candidate command ideas: recipes search; recipes browse; recipes get; tags list; verticals list; articles browse; articles get
- Caveats: scope_note: Hotline (/hotline, /hotline/questions/<topic>) returns only siteSettings in pageProps and renders no question/answer data in the DOM. The community Q&A is effectively unreachable for unauthenticated read scrapers. Excluded from CLI scope.; scope_note: Shop endpoints exist on shop.food52.com and food52.myshopify.com/api/2025-01/graphql.json but require Shopify Storefront API token discovery; deferred from v1.; scope_note: buildId (Pq8fQj0nm7uTx90i5u0si at the time of browser-sniff) and _app.js bundle hash change on every Food52 deploy. The CLI's runtime discovery (buildId from __NEXT_DATA__.buildId, key from regex over the active _app-<hash>.js) handles rotation transparently.; scope_note: Typesense /collections endpoint requires the admin key (search-only key returns 403 there). The CLI does not list collections; it queries the known collection name 'recipes_production_food52_current' directly.

## Command Reference

**articles** — Browse and read Food52 stories (articles) from the food and life verticals

- `food52-pp-cli articles browse` — Browse the latest Food52 articles in a vertical (food, life)
- `food52-pp-cli articles get` — Get a Food52 article (story) by slug

**recipes** — Browse Food52 recipes by tag and fetch single recipe details (extracted from Next.js __NEXT_DATA__ embedded in SSR HTML)

- `food52-pp-cli recipes browse` — Browse Food52 recipes filtered by a tag (e.g. chicken, breakfast, vegetarian)
- `food52-pp-cli recipes get` — Get full structured details for a single Food52 recipe by slug


**Hand-written commands**

- `food52-pp-cli recipes search <query>` — Search Food52 recipes via Typesense (host + search-only key auto-discovered from the public JS bundle)
- `food52-pp-cli recipes top <tag>` — Show only Test-Kitchen-approved recipes for a tag, with an optional rating floor (--min-rating)
- `food52-pp-cli articles browse-sub <vertical> <subvertical>` — Browse a Food52 article subvertical (e.g. food baking, food drinks, life travel)
- `food52-pp-cli articles for-recipe <slug>` — Find synced articles whose relatedReading mentions the given recipe slug
- `food52-pp-cli tags list` — List Food52 recipe tags discovered from the homepage navigation (chicken, breakfast, vegetarian, dessert, pasta, ...)
- `food52-pp-cli sync recipes <tag> [<tag>...]` — Pull recipes for one or more tags into the local FTS-indexed store
- `food52-pp-cli sync articles <vertical> [<subvertical>]` — Pull article listings for a vertical (or subvertical) into the local store
- `food52-pp-cli search <query>` — Search the local store across recipes and articles (FTS5, offline)
- `food52-pp-cli pantry add <ingredient> [<ingredient>...]` — Add ingredients to your local pantry
- `food52-pp-cli pantry list` — Show your local pantry
- `food52-pp-cli pantry remove <ingredient>` — Remove an ingredient from your pantry
- `food52-pp-cli pantry match` — Find synced recipes whose ingredients match (or mostly m

Related in General