← Files SplotARCHIVED FILE

plugin.json

8.91 KB · Nov 3, 2026 · 18:58 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "splot",
  "version": "1.0.5",
  "description": "Your food journal, kept by your AI. Log meals, plan ahead, save recipes and review your nutrition with Splot.",
  "author": {
    "name": "KONRAD D\u0118BIEC",
    "url": "https://splot.health"
  },
  "homepage": "https://splot.health",
  "keywords": [
    "food",
    "meals",
    "nutrition",
    "journal",
    "recipes"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Splot",
        "shortDescription": "Log and plan meals",
        "longDescription": "Your food journal, kept by your AI.\n\nTell ChatGPT what you ate, send it a photo of your plate, or ask it to plan tomorrow. Your assistant does the thinking; Splot keeps the record.\n\nTELL IT WHAT YOU ATE\nA quick breakfast. Yesterday's leftovers. Your usual coffee. Log meals with portions and nutrition, and keep photos alongside them. Your assistant can estimate a meal from a photo and save it to your journal.\n\nASK IT TO PLAN YOUR DAY\nPlan meals around your calorie and macro targets. Save a dinner for later, change it when your plans change, and mark it as eaten when you're done.\n\nSEE THE BIGGER PICTURE\nAsk about your last two weeks. See how your meals add up against your targets and spot patterns over time. Answers come from your own journal.\n\nYOUR FOODS, READY AGAIN\nFind everyday ingredients and packaged products. Save your own foods and recipes, then use them again for your next meal.\n\nPRIVATE BY DEFAULT\nYour journal is never sold or used for ads. You choose when to connect ChatGPT, and you can delete your account in Splot at any time.\n\nRequires a Splot account. For adults 18 and older. Nutrition values can be incomplete or estimated. Splot is a journal, not medical advice.",
        "developerName": "KONRAD D\u0118BIEC",
        "category": "Healthcare",
        "websiteURL": "https://splot.health",
        "supportURL": "https://splot.health/support",
        "privacyPolicyURL": "https://splot.health/privacy",
        "termsOfServiceURL": "https://splot.health/terms",
        "defaultPrompt": [
          "Log my breakfast: a Chobani Greek yogurt with a banana and a handful of granola",
          "Plan my meals for tomorrow around my calorie and protein targets and save them to Splot",
          "How am I doing on protein this week, and what should I have for dinner to hit my target?"
        ],
        "logo": "./assets/logo.png",
        "logoDark": "./assets/logo-dark.png",
        "composerIcon": "./assets/composer-icon.png",
        "composerIconDark": "./assets/composer-icon-dark.png",
        "brandColor": "#191919",
        "brandColorDark": "#FAF9F6"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Log a packaged food from the catalogue. Use the dedicated seeded review account in a fresh conversation; use Europe/Warsaw for local dates and meal times. Repeat runs may add separate breakfasts. Confirm only after a successful write, and check list_meals before retrying an uncertain write.",
              "prompt": "I just had a 170 g cup of Chobani plain nonfat Greek yogurt for breakfast, log it.",
              "tools_triggered": "list_foods, create_meal",
              "expected_behavior": "list_foods finds the matching Chobani product in off or splot. create_meal uses its returned library/key, quantity 170, unit g, state logged and a timestamp with offset. Return the saved meal ID and nutrition from the result, and confirm the breakfast was logged only after success."
            },
            {
              "description": "Mark a past day as partly logged, then review it. The seeded review account has four logged meals on 21 September 2026 in Europe/Warsaw. Repeat runs set the same mark again. Read all result pages and exclude planned meals; change no meal.",
              "prompt": "I didn't log everything I ate on 21 September 2026. Mark that day as partly logged, then tell me what I did log.",
              "tools_triggered": "set_day, list_meals",
              "expected_behavior": "set_day marks 2026-09-21 partial and returns it. list_meals for that day lists the four seeded meals, about 1376 kcal, which ChatGPT presents as a lower bound, not the day's intake. Confirm the mark only after set_day succeeds; no meal is changed."
            },
            {
              "description": "Save a full day's meal plan against targets. The seeded review account has 2200 kcal, 140 g protein, 250 g carbs and 70 g fat targets. Use a fresh conversation, Europe/Warsaw, and tomorrow's local date. Evaluate only the meals created by this run; repeat runs can create additional plans.",
              "prompt": "Plan my meals for tomorrow within my calorie and protein targets and save them to Splot.",
              "tools_triggered": "get_targets, list_foods, create_meal",
              "expected_behavior": "get_targets selects the period covering tomorrow. Search foods and save each chosen meal with state planned on tomorrow's local date. Report returned meal IDs, portions and summed nutrition against 2200 kcal and 140 g protein; explain any shortfall. Confirm only successful saves."
            },
            {
              "description": "Mark a plan as eaten without duplicating it. Use the seeded review account, a fresh conversation and Europe/Warsaw. First send: Plan one serving of my saved Chicken rice bowl for dinner today at 7 pm and save it. After that succeeds, send the case prompt. Keep the returned meal ID.",
              "prompt": "I ate that dinner at 7 pm, mark it as eaten.",
              "tools_triggered": "list_foods, create_meal, update_meal, list_meals",
              "expected_behavior": "The setup saves one planned Chicken rice bowl. update_meal changes the same ID to state logged without replacing untouched fields/items. list_meals verifies that ID is logged with the same portion/nutrition (about 496 kcal in the seed). Do not create another meal for the follow-up."
            },
            {
              "description": "Save a recipe with explicit ingredient weights and its weight once cooked. Use the seeded review account in a fresh conversation. Search My foods for Protein pancakes and existing ingredients first, then the catalogues. On a repeat run, update the matching owned recipe.",
              "prompt": "Save my Protein pancakes recipe: 100 g eggs without shells, 40 g Quaker oats, 100 g Chobani plain nonfat Greek yogurt and 120 g peeled banana. It makes 2 servings and weighs 320 g once cooked.",
              "tools_triggered": "list_foods, save_food",
              "expected_behavior": "save_food stores Protein pancakes with recipe.servings 2, recipe.weight 320 and four ingredient portions of 100, 40, 100 and 120 g. Nutrition is the ingredient sum, stored per 100 g with a 160 g serving. On repeat, use the existing recipe ID; confirm only after success."
            }
          ],
          "negative": [
            {
              "description": "Exercise logging is unsupported. Explain that Splot records meals, foods, recipes and nutrition targets; do not invoke any Splot tool or claim the run was saved.",
              "prompt": "Log my 5 km run this morning, it took 28 minutes."
            },
            {
              "description": "Sleep logging is unsupported. Explain that Splot does not record sleep; do not invoke any Splot tool or claim a sleep entry was saved.",
              "prompt": "Log that I slept 7 hours last night and woke up twice."
            },
            {
              "description": "Local restaurant discovery is outside Splot's food journal capabilities. Do not invoke Splot tools to search nearby restaurants or invent results from its food catalogue; explain that a local search service is needed.",
              "prompt": "Find a vegan restaurant near Union Square in San Francisco for dinner tonight."
            }
          ]
        },
        "demo_recording_url": "https://youtu.be/FWDP8ng3uyc",
        "commerce": false,
        "commerce_description": "The Splot plugin does not sell products, initiate purchases or process payments."
      },
      "publication": {
        "countries": [
          "US",
          "AT",
          "BE",
          "BG",
          "HR",
          "CY",
          "CZ",
          "DK",
          "EE",
          "FI",
          "FR",
          "DE",
          "GR",
          "HU",
          "IE",
          "IT",
          "LV",
          "LT",
          "LU",
          "MT",
          "NL",
          "PL",
          "PT",
          "RO",
          "SK",
          "SI",
          "ES",
          "SE",
          "IS",
          "LI",
          "NO",
          "GB",
          "CH"
        ],
        "release_notes": "Tell ChatGPT when you didn't log everything on a day, and Splot marks it as partly logged, so it stays out of your averages. Give a recipe its weight once cooked to log it by the gram."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: cf6bab15a2791e9c64f28587720191f92504a44bbc300a1d4fea0c07bfa989d9