Use when running the OpenClaw/ClawHub Bring! skill to search recipes on the web, parse recipe URLs for ingredients, and add ingredients to a Bring shopping list. Covers recipe search via web_search, URL parsing, recipe batch-add, list management, and inspiration filters.
Build a Bring! CLI-focused skill that uses the updated node-bring-api to fetch inspirations (recipes), highlight seasonal dishes, and add user-selected ingredients to a shopping list.
WICHTIG: Immer explizit nach Bestätigung fragen, bevor Artikel zur Liste hinzugefügt werden!
Use references/bring-inspirations.md for endpoint details and headers.
These scripts load node-bring-api from:
BRING_NODE_API_PATH (if set), or../../node-bring-api/build/bring.js relative to this skill, orbring-shopping package.Run:
node scripts/bring_inspirations.js --filters
Run:
node scripts/bring_inspirations.js --tags "<comma-separated-tags>" --limit 20
mine.content.contentSrcUrl for each dish (needed to load ingredients).NUR NACH EXPLIZITER BESTÄTIGUNG, list available lists if needed:
node scripts/bring_list.js --lists
Add ingredients from the selected dish content URL(s):
node scripts/bring_list.js --list <list-uuid> --content-url "https://api.getbring.com/rest/v2/bringtemplates/content/<uuid>"
Or resolve by list name:
node scripts/bring_list.js --list-name "Einkauf" --content-url "https://api.getbring.com/rest/v2/bringtemplates/content/<uuid>"
Create a new shopping list:
node scripts/bring_list.js --create-list "Amazon"
Returns the new list's UUID and name. If a list with that name already exists, returns the existing list info without creating a duplicate.
Note: List deletion is not supported by the Bring API — lists can only be deleted via the Bring app.
These scripts default to ENV values:
BRING_EMAILBRING_PASSWORDBRING_COUNTRY (default DE)BRING_NODE_API_PATH (optional path to build/bring.js)If ENV is not set, pass --email and --password explicitly.
Add items tagged with a recipe name so you can track which ingredients belong to which recipe:
node scripts/bring_list.js --list-name "Einkauf" --add-recipe "Lasagne" --recipe-items "Nudeln,Hackfleisch,Tomaten"
This stores each item with the specification [Rezept] Lasagne, acting as a recipe marker.
List distinct recipe markers on a list:
node scripts/bring_list.js --list-name "Einkauf" --recipe-markers
Returns a sorted array of recipe names currently on the list.
When a user asks for recipe suggestions ("Was soll ich heute kochen?", "Rezeptideen für Sommer"):
Step 1: Search for recipes
Use your web_search tool (Brave API) to find recipe URLs:
web_search("Sommer Rezepte vegetarisch site:chefkoch.de")
web_search("schnelle Abendessen Rezepte site:chefkoch.de OR site:lecker.de")
Pick 3-5 promising recipe URLs from the search results.
Step 2: Parse recipe URLs for structured data
node scripts/bring_inspirations.js --parse-url "url1,url2,url3"
Returns structured JSON per recipe: name, ingredients (itemId + spec), image URL, source URL. For a single URL, returns a single object. For multiple URLs, returns an array.
Step 3: Present options to the user Show the user the parsed recipes with:
IMMER FRAGEN: "Möchtest du die Zutaten für [Rezeptname] zur Bring-Liste hinzufügen?" oder "Welche Rezepte soll ich zur Einkaufsliste hinzufügen?"
Step 4: Add selected recipe to list (NUR BEI BESTÄTIGUNG)
node scripts/bring_list.js --list-name "Einkauf" --add-recipe-url "https://www.chefkoch.de/rezepte/123/lasagne.html"
This parses the recipe, creates a marker (e.g., === LASAGNE ===), tags all ingredients with the recipe name, and batch-adds everything to the list.
node scripts/bring_inspirations.js --parse-url "https://www.chefkoch.de/rezepte/123/lasagne.html"
Returns structured ingredient data without adding to any list. Useful for previewing.
The Bring parser supports most major recipe websites including:
CRITICAL: Never generate images for recipes. Recipe websites always include photos. Extract and use those instead.
Method 1: Use --parse-url (preferred)
If the parser supports the site, the image URL is included in the JSON response:
node scripts/bring_inspirations.js --parse-url "https://www.chefkoch.de/rezepte/123/lasagne.html"
# Returns: { ..., "image": "https://img.chefkoch-cdn.de/rezepte/123/lasagne.jpg", ... }
Method 2: Fallback (manual extraction with web_fetch)
If --parse-url fails or returns no image, use web_fetch to extract the Open Graph image tag:
// Use web_fetch tool to get HTML (no exec approval needed)
web_fetch("https://www.chefkoch.de/rezepte/123/lasagne.html")
// Parse the returned markdown/text for og:image meta tag
// Extract URL from: <meta property="og:image" content="https://...">
The image URL can then be used directly in markdown or Discord embeds — no download required:

web_search)--parse-url or web_fetch fallback))# Step 1: Search
web_search("Lachs Honig Senf Rezept")
# Step 2: Parse via --parse-url (preferred)
node scripts/bring_inspirations.js --parse-url "https://www.eatclub.de/rezept/honig-senf-lachs/"
# → { ..., "image": "https://www.eatclub.de/wp-content/uploads/2023/09/shutterstock-416951386.jpg" }
# Step 2 (Fallback): Use web_fetch if parser fails
web_fetch("https://www.eatclub.de/rezept/honig-senf-lachs/")
# Parse HTML response for: <meta property="og:image" content="...">
# Step 3: Present to user with image URL embedded
# 
# Zutaten: Lachs, Honig, Senf, Olivenöl, Knoblauch...
# Step 4: IMMER FRAGEN
# "Soll ich die Zutaten für Honig-Senf-Lachs zur Bring-Liste hinzufügen?"
# Warte auf: Ja / Nein / Bestätigung
# Step 5: NUR BEI BESTÄTIGUNG hinzufügen
# node scripts/bring_list.js --list-name "Zuhause" --add-recipe "Honig-Senf-Lachs" --recipe-items "..."
Agent: "Ich habe 3 leckere Rezepte gefunden:
Welche Rezepte soll ich zur Bring-Liste hinzufügen?"
User: "Das Curry klingt gut"
Agent: "Soll ich die Zutaten für Chicken-Curry zur Bring-Liste 'Zuhause' hinzufügen? (9 Artikel: Hähnchen, Kokosmilch, Curry...)"
User: "Ja"
Agent: "✅ Zutaten für Chicken-Curry hinzugefügt!"
Bei mehreren Rezepten IMMER einzeln bestätigen lassen oder explizit fragen:
Remember:
web_fetch avoids exec approvals and works seamlessly with OpenClawscripts/bring_inspirations.js: Log in and call inspirations and filter endpoints.scripts/bring_list.js: List available shopping lists and add items.references/bring-inspirations.md: Endpoint details and headers.Toast — restaurant POS, orders, menus, employees, revenue centers, and reporting.