manage_shopping
Manage shopping list items AND stores. Handles MULTIPLE items in ONE call.
TRIGGERS:
- ADD: 'add X', 'I need X', 'pick up X', 'buy X', 'out of X'
- REMOVE: 'remove X', 'don't need X', 'got X already'
- UPDATE: 'change quantity', 'set X to Y'
- CHECK: 'check off X', 'got X', 'bought X'
- UNCHECK: 'uncheck X', 'still need X'
- CLEAR: 'clear checked' (clearAll: false), 'clear the list' (clearAll: true)
- CREATE_STORE: 'create a store', 'add Costco store', 'new store'
- UPDATE_STORE: 'rename store', 'change store categories'
- DELETE_STORE: 'delete store', 'remove X store'
CATEGORY IDs (use exactly): produce, dairy, meat, seafood, deli, bakery, frozen, pantry, snacks, beverages, household, pet, other
manage_pantry
Add, remove, update, or mark pantry items as consumed. Handles MULTIPLE items in ONE call - do NOT call multiple times.
TRIGGERS:
- ADD: 'add X to pantry', 'I bought X', 'stock X', 'put away groceries'
- REMOVE: 'remove X', 'threw out X', 'X went bad', 'X expired'
- UPDATE: 'have X left', 'down to X', 'low on X'
- CONSUME: 'used X', 'finished the X', 'cooked with X'
- CLEAR_EXPIRED: 'clear expired', 'remove old items'
- ADD_LEFTOVER: 'leftover pizza', 'saved 2 containers of soup', 'made extra pasta', 'meal prep portions'
ADD_LEFTOVER vs ADD: Use add_leftover when food is from a cooked meal. Use add for store-bought groceries.
IMPORTANT: Pass ALL items in a single call using the items array. Never call this tool multiple times for the same request.
CATEGORY IDs (use exactly): fruits, vegetables, dairy, meat, seafood, deli, meat_alternatives, bread, pasta_rice_cereal, canned, frozen, snacks, beverages, condiments_spices, baking, household, pet, leftovers, other
manage_meal_plan
Set meals, plan the week, clear, or move meals.
TRIGGERS:
- SET: 'X for dinner', 'plan X for Monday', 'tacos tomorrow'
- SET_WEEK: 'plan my week', 'weekly meal plan', 'meal prep'
- CLEAR: 'clear Monday', 'remove dinner', 'reset meal plan'
- MOVE: 'move dinner to Tuesday', 'swap Monday and Wednesday'
find_recipes
Search and filter recipes with advanced options.
TRIGGERS:
- 'find recipes with X' / 'recipes using chicken'
- 'quick dinner ideas' / 'recipes under 30 minutes'
- 'recipes safe for everyone' → forAllProfiles: true
- 'what can I make now' → canMakeNow: true (auto-reads pantry)
Advanced search with pantry matching, dietary filtering, and collections.
manage_recipes
Manage recipes: save, update, delete, rate, batch operations, and share links.
ACTIONS:
- save: Save a recipe from GPT-generated content or cookbook photos
- save_urls: Import recipes from URLs (1-20 at once)
- update: Edit an existing recipe (servings, ingredients, steps, etc.)
- delete: Delete a recipe by name or ID
- delete_batch: Delete multiple recipes (by IDs, search query, or all)
- batch_save: Save 4+ recipes in one operation
- rate: Rate a recipe 1-5 stars
- share: Generate a shareable pantrypersona.com link
TRIGGERS:
- SAVE: 'save this recipe', user shares cookbook photo
- SAVE_URLS: user pastes recipe URL(s)
- UPDATE: 'change servings', 'edit my recipe', 'add ingredient'
- DELETE: 'delete my [recipe]', 'remove [recipe]'
- DELETE_BATCH: 'delete all recipes', 'remove my pasta recipes'
- BATCH_SAVE: user provides 4+ recipes at once
- RATE: 'rate [recipe] 5 stars'
- SHARE: 'share [recipe]', 'get a link', 'send this recipe'
IMPORTANT: Pass ALL items in a single call. Never call multiple times for the same request.
shop_for_meal_plan
Add meal plan ingredients to shopping list in ONE call.
TRIGGERS:
- 'add ingredients from my meal plan' / 'shop for my meals'
- 'what do I need to buy for this week'
- 'add [day]'s meal plan to [store]'
Automatically checks pantry and skips items you already have.
cook_recipe
Start or finish cooking a recipe with pantry tracking.
TRIGGERS:
- 'I'm cooking X' / 'making X tonight' → action: start
- 'finished cooking' / 'made X' → action: finish
- 'cooked X, remove ingredients' → action: finish, deductFromPantry: true
Use recipeName (not recipeId) for cleaner confirmation dialogs.
Finish optionally deducts ingredients from pantry.
process_receipt
Process receipt items and add to pantry.
TRIGGERS:
- User uploads a receipt image (read with vision, then call this)
- User types receipt items: 'milk 3.99, eggs 4.50'
- User pastes receipt text
Interpret abbreviations into clean names, call once with all items.
get_insights
Get data insights about spending, prices, and patterns.
TRIGGERS:
- SPENDING: 'how much did I spend', 'grocery budget'
- PRICE_HISTORY: 'cheapest X', 'price history for X'
- BRAND_PREFERENCES: 'my brands', 'what brands do I buy'
- SHOPPING_PATTERNS: 'what do I buy most', 'buying habits'
- RESTOCK_PREDICTIONS: 'what do I need to buy', 'running low', 'predict shopping needs'
- CONSUMPTION_INSIGHT: 'how often do I buy X', 'how fast do I use X'
- CONSUMPTION_PATTERNS: 'shopping habits', 'what do I buy regularly'
Server computes metrics. Narrate insights conversationally.
manage_profiles
Create, update, or delete profiles. Two profile types:
HOUSEHOLD PROFILE (one per account, auto-created):
- Stores meal planning rules, schedules, cooking preferences
- 2000 char notes limit for storing: meal rules, day templates, schedules, prep preferences
- Cannot be deleted (edit only)
- Does NOT count against profile limit
- Triggers: 'save meal preferences', 'update household settings', 'set meal rules'
- FREE ACCOUNTS: Use Household profile for ALL dietary needs (individual profiles not available)
PERSON PROFILES (available on paid accounts only):
- Stores individual dietary needs, likes/dislikes, health goals
- 1000 char notes limit for individual preferences
- Counts against profile limit (up to 15)
- Triggers: 'add profile for X', 'X is vegetarian', 'add allergy for Y'
⚠️ BEFORE CREATING PERSON PROFILES:
- FIRST call show_profiles to check account tier
- If show_profiles returns "ACCOUNT TYPE: FREE" - do NOT attempt to create person profiles
- Simply say "Individual profiles aren't available on this account" without calling this tool
⚠️ FREE ACCOUNT BEHAVIOR (CRITICAL - FOLLOW EXACTLY):
- Individual profiles are NOT available on free accounts
- When you get error "INDIVIDUAL_PROFILES_NOT_AVAILABLE":
1. STOP immediately - do not make any more tool calls
2. Do NOT offer alternatives or workarounds
3. Do NOT update Household notes with the person's info
4. Do NOT suggest adding names to notes
5. Simply say: "Individual profiles aren't available on this account."
6. Then move on - do not dwell on it or offer solutions
DELETE: 'remove X profile' (person profiles only, cannot delete household)
REPLACE vs MERGE NOTES:
- Default (replaceNotes=false): New notes merge with existing likes/dislikes
- replaceNotes=true: Completely overwrite notes (use for fixing corrupted data)
HOUSEHOLD NOTES FORMAT:
MEAL RULES: one pasta night/week, no casseroles
DAY TEMPLATES: Monday = quick 15-20 min
SCHEDULE: Lila gymnastics Mon 5-7
PREP PREFERENCES: chicken shredded only
manage_collections
Manage recipe collections - create, update, delete, and manage recipes.
TRIGGERS:
- CREATE: 'create a collection called X'
- UPDATE: 'rename my X collection'
- DELETE: 'delete my X collection'
- ADD: 'add [recipe] to my X collection'
- REMOVE: 'remove [recipe] from X collection'
- LIST: 'show my collections'
manage_preferences
Manage product brand preferences - set, clear, or list.
TRIGGERS:
- SET: 'I prefer [brand] for [item]', 'use [brand] butter'
- CLEAR: 'forget my [item] preference'
- LIST: 'what are my brand preferences'
show_shopping
Display the user's shopping list widget.
TRIGGERS:
- "show my shopping list" / "what do I need to buy"
- "show my list" / "pull up my list"
- "what's on my shopping list"
RESPONSE: Widget displays the list. Use ONLY the summary text - do NOT list items, counts, or raw data. The widget shows everything the user needs.
show_pantry
Display the user's pantry inventory widget.
TRIGGERS:
- "show my pantry" / "what do I have"
- "what's in my pantry" / "show my inventory"
- "what ingredients do I have"
RESPONSE: Widget displays the pantry. Use ONLY the summary text - do NOT list items, categories, or raw data. The widget shows everything the user needs.
show_recipes
Display the user's saved recipes widget.
TRIGGERS:
- "show my recipes" / "show my saved recipes"
- "what recipes do I have" / "show my cookbook"
For finding NEW recipes or filtering → use find_recipes instead.
RESPONSE: Widget displays the recipes. Use ONLY the summary text - do NOT list recipe names or raw data. The widget shows everything the user needs.
show_meal_plan
Display the user's weekly meal plan widget.
TRIGGERS:
- "show my meal plan" / "what's for dinner"
- "show this week's meals" / "what are we eating"
- "show my meal schedule"
RESPONSE: Widget displays the calendar. Use ONLY the summary text - do NOT list days, meals, or raw data. The widget shows everything the user needs.
show_profiles
Display household profiles widget with dietary preferences.
TRIGGERS:
- "show my profiles" / "show household profiles"
- "who's in my household" / "show dietary preferences"
RESPONSE: Widget displays the profiles. Use ONLY the summary text - do NOT list profile names, counts, or raw data. The widget shows everything the user needs.
get_next_steps
Get personalized guidance on what to do next in Pantry Persona. Reviews the user's feature adoption (pantry, recipes, profiles, shopping, meal planning) and returns prioritized recommendations with sample prompts. Use this when: - User asks 'what can I do?', 'help me get started', 'what's next?' - User seems unsure how to use the app - User is new and needs onboarding guidance - User says hello/hi (check context first, then guide them)