← Files GrocerivaARCHIVED FILE
plugin.json
11.9 KB · Nov 5, 2026 · 12:12 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "groceriva",
"version": "1.0.0",
"description": "Manage your Groceriva shopping lists, saved recipes, meal plan and pantry from a conversation.",
"author": {
"name": "Yiannis Ioannides",
"url": "https://groceriva.com"
},
"homepage": "https://groceriva.com",
"keywords": [
"groceries",
"shopping list",
"recipes",
"meal planning",
"pantry",
"cooking"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Groceriva",
"shortDescription": "Groceries, recipes & meals",
"longDescription": "Groceriva connects ChatGPT to your own Groceriva account, so you can run your shopping lists, recipes and meal plan in conversation.\n\n\u2022 Shopping lists: add many items in one go (\"add milk, eggs and bread\"). Items are sorted into supermarket sections automatically, and an item already on the list is merged instead of duplicated. Tick items off, change amounts, or remove them.\n\u2022 Recipes: save a recipe you discussed with ChatGPT, find your saved recipes by name, ingredient or cuisine, and read them scaled to any number of servings.\n\u2022 From recipe to list: add a recipe's ingredients to a list. Amounts are scaled and compared with what is already on the list, so only what is missing is added, and repeating the request does not add it twice.\n\u2022 Meal planning: plan saved recipes on days of the week, and turn the week's plan into one combined shopping list after you confirm a preview.\n\u2022 Pantry: keep track of what you have at home and find saved recipes you can cook with it.\n\nShopping list changes sync live in the Groceriva web and Android apps, including lists shared with family. Open or refresh the recipe, meal-plan and pantry screens to see changes there. You sign in with your Groceriva account (or create one) when you connect; Groceriva only reaches that account and the lists shared with it.\n\nLimitations: Groceriva does not order or deliver groceries, compare shop prices, or take payments. Some features, such as the pantry, depend on your Groceriva plan.",
"developerName": "Yiannis Ioannides",
"category": "Productivity",
"capabilities": [
"Manage shopping lists",
"Save and find recipes",
"Plan meals",
"Track pantry items"
],
"websiteURL": "https://groceriva.com",
"supportURL": "https://app.groceriva.com/support",
"privacyPolicyURL": "https://app.groceriva.com/privacy",
"termsOfServiceURL": "https://app.groceriva.com/terms",
"defaultPrompt": [
"Add milk, eggs and bread to my shopping list.",
"Plan dinners for the next five days from my saved recipes.",
"Add the missing ingredients for my chicken curry to my shopping list."
],
"brandColor": "#157A42",
"brandColorDark": "#3ECF7A",
"composerIcon": "./assets/composer-icon.png",
"logo": "./assets/logo.png"
},
"onboardingSkill": "./skills/get-started/SKILL.md",
"review": {
"test_cases": {
"positive": [
{
"description": "Add several groceries to an existing list in one call; they are sorted into sections and nothing is duplicated.",
"prompt": "Add milk, eggs and bread to my Sklavenitis shopping list.",
"tools_triggered": "add_items_to_list",
"expected_behavior": "One add_items_to_list call on the Sklavenitis list with the three items. The reply confirms they were added, sorted into Dairy & eggs and Bakery. An item that was already on the list is reported as merged, not added twice."
},
{
"description": "Save a recipe given in the conversation, with every ingredient amount and the steps.",
"prompt": "Save this recipe to Groceriva: Chicken curry for 4. 600 g chicken thighs, 1 onion, 2 cloves garlic, 2 tbsp curry paste, 400 ml coconut milk, 250 g rice. Steps: fry the onion and garlic, add the curry paste and chicken, pour in the coconut milk and simmer 20 minutes, serve with the rice.",
"tools_triggered": "create_recipe",
"expected_behavior": "create_recipe saves \"Chicken curry\" for 4 servings with all six ingredients and their amounts and the four steps (ChatGPT may first create a picture of the dish to attach). The reply confirms the recipe was saved and asks whether to add its ingredients to a shopping list or plan it on a day, without doing either unasked."
},
{
"description": "Read the pantry of the connected account.",
"prompt": "Show me what I have in my pantry.",
"tools_triggered": "list_pantry",
"expected_behavior": "list_pantry returns the test account's pantry items; the reply lists each with its amount and any expiry date. No data is changed."
},
{
"description": "Plan dinners on five consecutive days from saved recipes.",
"prompt": "Plan dinners for the next five days from my saved recipes.",
"tools_triggered": "list_recipes, add_recipe_to_meal_plan",
"expected_behavior": "list_recipes reads the saved recipes, then add_recipe_to_meal_plan is called once per day for the next five dates with meal_type dinner. The reply lists the five planned dinners with their dates. Shopping lists are not changed."
},
{
"description": "Add only the missing ingredients of a saved recipe, scaled to the servings, to a named list.",
"prompt": "Add the missing ingredients for Chicken Curry for four people to my Sklavenitis shopping list.",
"tools_triggered": "add_recipe_ingredients_to_list",
"expected_behavior": "add_recipe_ingredients_to_list with recipe Chicken Curry, list Sklavenitis and servings 4. Amounts are scaled, compared with the list, and only what is missing is added; ingredients already covered are reported as covered. Asking a second time adds nothing more."
}
],
"negative": [
{
"description": "Ordering and paying for groceries is not supported. Groceriva must not be used to place an order; ChatGPT should explain that Groceriva only keeps lists and can at most add the items to a shopping list if the user wants.",
"prompt": "Order everything on my shopping list for delivery tonight and pay with my saved card."
},
{
"description": "Another person's data is out of reach. Groceriva only returns the connected account's own lists and lists shared with it; ChatGPT should say it cannot see other people's lists.",
"prompt": "Show me my neighbour Maria's shopping list."
},
{
"description": "Live supermarket prices are not a Groceriva feature. No Groceriva tool should be called; ChatGPT should say Groceriva does not have shop prices.",
"prompt": "What is the cheapest price for olive oil at Sklavenitis right now?"
}
]
},
"commerce": false,
"commerce_description": "Groceriva does not sell products or take payments in ChatGPT."
},
"publication": {
"release_notes": "First public release: shopping lists with automatic sections and duplicate merging, saved recipes, adding a recipe's missing ingredients to a list, meal planning with a combined shopping list, and the pantry. Each user connects their own Groceriva account with OAuth.",
"translations": {
"el-GR": {
"subtitle": "\u03a8\u03ce\u03bd\u03b9\u03b1, \u03c3\u03c5\u03bd\u03c4\u03b1\u03b3\u03ad\u03c2 & \u03b3\u03b5\u03cd\u03bc\u03b1\u03c4\u03b1",
"description": "\u03a4\u03bf Groceriva \u03c3\u03c5\u03bd\u03b4\u03ad\u03b5\u03b9 \u03c4\u03bf ChatGPT \u03bc\u03b5 \u03c4\u03bf\u03bd \u03b4\u03b9\u03ba\u03cc \u03c3\u03b1\u03c2 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc Groceriva, \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03af\u03b6\u03b5\u03c3\u03c4\u03b5 \u03bb\u03af\u03c3\u03c4\u03b5\u03c2 \u03b1\u03b3\u03bf\u03c1\u03ce\u03bd, \u03c3\u03c5\u03bd\u03c4\u03b1\u03b3\u03ad\u03c2 \u03ba\u03b1\u03b9 \u03c0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 \u03b3\u03b5\u03c5\u03bc\u03ac\u03c4\u03c9\u03bd \u03bc\u03ad\u03c3\u03b1 \u03b1\u03c0\u03cc \u03c4\u03b7 \u03c3\u03c5\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7.\n\n\u2022 \u039b\u03af\u03c3\u03c4\u03b5\u03c2 \u03b1\u03b3\u03bf\u03c1\u03ce\u03bd: \u03c0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03c4\u03b5 \u03c0\u03bf\u03bb\u03bb\u03ac \u03c0\u03c1\u03bf\u03ca\u03cc\u03bd\u03c4\u03b1 \u03bc\u03b1\u03b6\u03af. \u03a4\u03b1\u03be\u03b9\u03bd\u03bf\u03bc\u03bf\u03cd\u03bd\u03c4\u03b1\u03b9 \u03b1\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03b1 \u03c3\u03b5 \u03c4\u03bc\u03ae\u03bc\u03b1\u03c4\u03b1 \u03c4\u03bf\u03c5 \u03c3\u03bf\u03cd\u03c0\u03b5\u03c1 \u03bc\u03ac\u03c1\u03ba\u03b5\u03c4 \u03ba\u03b1\u03b9 \u03cc\u03c3\u03b1 \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03bd \u03ae\u03b4\u03b7 \u03c3\u03c4\u03b7 \u03bb\u03af\u03c3\u03c4\u03b1 \u03c3\u03c5\u03b3\u03c7\u03c9\u03bd\u03b5\u03cd\u03bf\u03bd\u03c4\u03b1\u03b9 \u03b1\u03bd\u03c4\u03af \u03bd\u03b1 \u03b4\u03b9\u03c0\u03bb\u03b1\u03c3\u03b9\u03ac\u03b6\u03bf\u03bd\u03c4\u03b1\u03b9.\n\u2022 \u03a3\u03c5\u03bd\u03c4\u03b1\u03b3\u03ad\u03c2: \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03cd\u03c3\u03c4\u03b5 \u03bc\u03b9\u03b1 \u03c3\u03c5\u03bd\u03c4\u03b1\u03b3\u03ae \u03b1\u03c0\u03cc \u03c4\u03b7 \u03c3\u03c5\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7, \u03b2\u03c1\u03b5\u03af\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03b5\u03c2 \u03c3\u03c5\u03bd\u03c4\u03b1\u03b3\u03ad\u03c2 \u03c3\u03b1\u03c2 \u03ba\u03b1\u03b9 \u03b4\u03b9\u03b1\u03b2\u03ac\u03c3\u03c4\u03b5 \u03c4\u03b5\u03c2 \u03b3\u03b9\u03b1 \u03cc\u03c3\u03b5\u03c2 \u03bc\u03b5\u03c1\u03af\u03b4\u03b5\u03c2 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5.\n\u2022 \u0391\u03c0\u03cc \u03c4\u03b7 \u03c3\u03c5\u03bd\u03c4\u03b1\u03b3\u03ae \u03c3\u03c4\u03b7 \u03bb\u03af\u03c3\u03c4\u03b1: \u03c0\u03c1\u03bf\u03c3\u03c4\u03af\u03b8\u03b5\u03bd\u03c4\u03b1\u03b9 \u03bc\u03cc\u03bd\u03bf \u03c4\u03b1 \u03c5\u03bb\u03b9\u03ba\u03ac \u03c0\u03bf\u03c5 \u03bb\u03b5\u03af\u03c0\u03bf\u03c5\u03bd, \u03c3\u03c4\u03b9\u03c2 \u03c3\u03c9\u03c3\u03c4\u03ad\u03c2 \u03c0\u03bf\u03c3\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2.\n\u2022 \u03a0\u03c1\u03cc\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1 \u03b3\u03b5\u03c5\u03bc\u03ac\u03c4\u03c9\u03bd: \u03c0\u03c1\u03bf\u03b3\u03c1\u03b1\u03bc\u03bc\u03b1\u03c4\u03af\u03c3\u03c4\u03b5 \u03c3\u03c5\u03bd\u03c4\u03b1\u03b3\u03ad\u03c2 \u03c3\u03c4\u03b9\u03c2 \u03bc\u03ad\u03c1\u03b5\u03c2 \u03c4\u03b7\u03c2 \u03b5\u03b2\u03b4\u03bf\u03bc\u03ac\u03b4\u03b1\u03c2 \u03ba\u03b1\u03b9 \u03c6\u03c4\u03b9\u03ac\u03be\u03c4\u03b5 \u03bc\u03af\u03b1 \u03ba\u03bf\u03b9\u03bd\u03ae \u03bb\u03af\u03c3\u03c4\u03b1 \u03b1\u03b3\u03bf\u03c1\u03ce\u03bd.\n\u2022 \u039d\u03c4\u03bf\u03c5\u03bb\u03ac\u03c0\u03b9: \u03b4\u03b5\u03af\u03c4\u03b5 \u03c4\u03b9 \u03ad\u03c7\u03b5\u03c4\u03b5 \u03c3\u03c4\u03bf \u03c3\u03c0\u03af\u03c4\u03b9 \u03ba\u03b1\u03b9 \u03c4\u03b9 \u03bc\u03c0\u03bf\u03c1\u03b5\u03af\u03c4\u03b5 \u03bd\u03b1 \u03bc\u03b1\u03b3\u03b5\u03b9\u03c1\u03ad\u03c8\u03b5\u03c4\u03b5.\n\n\u039f\u03b9 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2 \u03b5\u03bc\u03c6\u03b1\u03bd\u03af\u03b6\u03bf\u03bd\u03c4\u03b1\u03b9 \u03b1\u03bc\u03ad\u03c3\u03c9\u03c2 \u03c3\u03c4\u03b9\u03c2 \u03b5\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ad\u03c2 Groceriva. \u03a4\u03bf Groceriva \u03b4\u03b5\u03bd \u03ba\u03ac\u03bd\u03b5\u03b9 \u03c0\u03b1\u03c1\u03b1\u03b3\u03b3\u03b5\u03bb\u03af\u03b5\u03c2 \u03ae \u03c0\u03bb\u03b7\u03c1\u03c9\u03bc\u03ad\u03c2 \u03ba\u03b1\u03b9 \u03b4\u03b5\u03bd \u03c3\u03c5\u03b3\u03ba\u03c1\u03af\u03bd\u03b5\u03b9 \u03c4\u03b9\u03bc\u03ad\u03c2."
}
}
},
"apps": "./.app.json"
}
}
}
SHA-256: d2669dea0a8b4796ed1022e4bf5c19433a5c014baa2024182bbfce8d39a8233d