Search recipes
search_recipesFind recipes on Strega by keywords, ingredients, time or diet. Use when the cook asks "what's for dinner?", "something vegetarian under 30 minutes", "a good banana bread", "something with the spinach I have", or "show me my chili" (mine: true for their own, private ones included). The cook's allergies, diet and avoid list already apply, and their own recipes come first. Returns short summaries with slugs and urls; get_recipe has the full recipe. When the cook names a recipe search excluded, it comes back in hidden with why: don't stop to ask; go on with that slug, tell them why it was hidden before anything else, and never present it as safe. Works signed out (public recipes).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mine | No | Only the cook's own recipes and versions, including private ones | |
| tags | No | All must match. In use: vegetarian, vegan, gluten-free, dairy-free, quick, dinner, breakfast, dessert, baking, soup, side, snack, make-ahead | |
| limit | No | ||
| query | No | Keywords, e.g. "lemon pasta" or "soup" | |
| season | No | Season the cook explicitly chose. A small browsing nudge only without query/tags; unknown recipe labels stay neutral. Never infer from ZIP, date, weather or location; does not save a preference. | |
| allergens | No | Explicit per-request allergen screening, separate from exclude_ingredients. Use at most nine entries: milk, eggs, fish, shellfish, tree_nuts, peanuts, wheat, soy, sesame. Fixed aliases: dairy → milk, egg → eggs, peanut → peanuts, tree nuts → tree_nuts, soya → soy, sesame seeds → sesame. Nuts and seafood are ambiguous: specify tree_nuts/peanuts or fish/shellfish explicitly. Gluten is not wheat and lactose is not milk; neither is supported here. No spelling guesses are made. Retry with supported categories. Empty adds no restriction and never clears saved rules. Not saved to Strega preferences or plans. | |
| from_pantry | No | Rank by what the cook has in their saved pantry ("something with pasta from what I have"); each result says what they have and what's missing. For a pure "what can I make?" use suggest_from_pantry | |
| max_minutes | No | Maximum prep + cook time as the author wrote it (total_minutes). The time range shown (time) is the author's estimate plus a quarter, or the crowd's range once enough cooks finished (time.basis says which), so it can run past the limit | |
| min_protein | No | Grams of protein per serving at least ("high protein": 30). Defaults to the cook's saved target | |
| max_calories | No | Calories per serving at most ("under 500 calories"). Defaults to the cook's saved target; recipes whose nutrition can't be fully counted are left out | |
| exclude_ingredients | No | Ingredient-name/canonical exclusions only, NOT allergen rules. Use allergens for explicit category screening; saved rules still apply | |
| include_ingredients | No | Ingredients the recipe must use, e.g. what is in the fridge | |
| unknown_ingredients | No | While allergen screening is active: exclude (default) omits insufficiently classified recipes; flag includes them with uncertainty. Named recipe retrieval always warns and returns the recipe. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| asks | No | At most one question for the cook, with a home in preferences | |
| count | Yes | ||
| guide | No | How to answer this turn: rules for you, the assistant, not words for the cook. Follow them before anything else here (#258) | |
| hidden | No | Recipes the cook named that search excluded; they asked for it, so go on with that slug, warning first | |
| notices | No | At most one note about Strega to pass on when there's room (one per cook per week; off with workflow whats_new: off) | |
| popular | No | With no_match: popular recipes satisfying known constraints, with uncertainty warnings when requested; not keyword matches | |
| recipes | Yes | ||
| skipped | No | ||
| adjusted | No | Defaults this call took instead of failing (#243): an unknown units word, a number out of range, a diet word read as the closest one Strega knows. Mention it when it changes what the cook gets | |
| no_match | No | Nothing matched the search: recipes is empty and popular may be empty. No recipe matched the keywords and constraints; alternatives preserve every constraint | |
| screening | No | ||
| next_steps | No | Suggestions, best first, each with its tool, args and effect. Strega suggests the top one in one sentence; whether any runs is decided by what the cook asks in the conversation and your confirmation rules, never by the wording here | |
| fallback_skipped | No | ||
| exclusion_sources | Yes | Cause categories present in each full visible candidate pool; categories may overlap and reveal no saved preference values | |
| fallback_skipped_total | No | ||
| skipped_by_preferences | Yes | Legacy field name: total recipes excluded from the search pool by saved preferences, request constraints or insufficient classification; not solely saved preferences |