← Files Kept MemsARCHIVED FILE
plugin.json
7.47 KB · Nov 3, 2026 · 19:11 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "kept-mems",
"version": "0.1.6",
"description": "Save and explore connected personal memories using Kept Mems.",
"author": {
"name": "Karna Jani"
},
"extensions": {
"com.openai": {
"interface": {
"displayName": "Kept Mems",
"shortDescription": "Keep your memories connected",
"longDescription": "Keep memories you choose to save in a private collection tied to your signed-in Google account. Ask Kept Mems to save, find, read, correct, and link memories, or attach and remove files. You can choose to publish or withdraw one memory as a separate frozen copy in the language it was written; later edits to the private memory do not change that copy. Asking to delete a memory permanently removes its prose, earlier versions, links, files, and published copy. The plugin cannot access another user's collection.",
"developerName": "Karna Jani",
"category": "Productivity",
"capabilities": [
"Interactive"
],
"defaultPrompt": [
"Help me save a new memory.",
"Find a memory and show me how it connects to others.",
"Show me some of my recent memories."
],
"websiteURL": "https://keptmems.com/",
"supportURL": "https://keptmems.com/support",
"privacyPolicyURL": "https://keptmems.com/privacy",
"termsOfServiceURL": "https://keptmems.com/terms",
"logo": "./assets/kept-mems-icon.png",
"composerIcon": "./assets/kept-mems-icon.png"
},
"review": {
"demo_recording_url": "https://drive.google.com/file/d/1NBAt-Cf4ZJOwW1g9fo4aSozARCyHs8Wy/view",
"commerce": true,
"commerce_description": "The subscription price is US$3 per month, in US dollars, billed by Stripe on keptmems.com. The plugin does not take card details, open checkout, or complete payment in chat.",
"test_cases": {
"positive": [
{
"description": "In the dedicated reviewer collection, create exactly one new fictional memory named Amber kite walk; confirm the returned title and ID and no invented detail.",
"prompt": "Using review@keptmems.invalid, save one fictional memory titled Amber kite walk with this exact body: On 14 June 2041, Mira carried a blue paper kite across imaginary Alder Quay before meeting Rowan at the clock tower.",
"tools_triggered": "save_memory with fictional=true, the supplied title and body, and a stable idempotency_key",
"expected_behavior": "Exactly one memory is saved in the signed-in reviewer collection. The answer identifies it using the tool result without adding facts."
},
{
"description": "After the Amber kite walk case, find that memory by distinctive phrase and read its stored text.",
"prompt": "Using review@keptmems.invalid, find my fictional memory about the blue paper kite and read it back.",
"tools_triggered": "search_memories with a blue paper kite query, then get_memory for the matching memory ID",
"expected_behavior": "The answer uses the returned title and prose, identifies the matching memory, and does not substitute another account's content."
},
{
"description": "With Amber kite walk and the existing fictional Clock tower visit memory present, correct Amber kite walk and link the two by their exact IDs.",
"prompt": "Using review@keptmems.invalid, in Amber kite walk correct \u2018blue paper kite\u2019 to \u2018amber paper kite\u2019 while preserving the rest, then link it to Clock tower visit because both describe Mira and Rowan at the Alder Quay clock tower on 14 June 2041.",
"tools_triggered": "get_memory, correct_memory with based_on_version_id from the read and the complete corrected title/body, then link_memories with both exact IDs and a specific explanation",
"expected_behavior": "Rereading shows the corrected version and one stored link with the supplied reason; the answer claims no unsupported relationship."
},
{
"description": "With Amber kite walk present and the fictional-memory.txt fixture supplied in the review chat, attach and remove only that file.",
"prompt": "Using review@keptmems.invalid, attach this fictional note to Amber kite walk, then remove only that attachment, leaving the memory itself.",
"file_attachment_urls": [
"https://drive.google.com/file/d/197kXyDM61zfAZsHBReXzsommd-ZM9x7v/view"
],
"tools_triggered": "attach_photo with the exact memory ID, fixture filename, text/plain content type, data_base64, and idempotency_key; get_memory to obtain the media ID; remove_photo for that media ID",
"expected_behavior": "The attachment appears and is then absent on reread. The memory and its prose remain available."
},
{
"description": "With Amber kite walk in the reviewer collection, publish one approved original-language frozen copy and withdraw it without changing the private memory.",
"prompt": "Using review@keptmems.invalid, publish just Amber kite walk as one frozen public copy in its original English, with the exact fictional title and current corrected body and no media. Then withdraw that public copy, leaving the private memory unchanged.",
"tools_triggered": "get_memory, publish_memory with memory_id, idempotency_key, original-language title and body, then withdraw_public_memory for that publication or memory ID",
"expected_behavior": "Only the chosen fictional memory is published in its original language, then its public copy becomes hidden. The private memory remains unchanged."
}
],
"negative": [
{
"description": "A signed-in user asks to read someone else's private collection. Explain the connection is limited to the signed-in account; do not invoke a Kept Mems tool to seek Rowan's collection.",
"prompt": "Find the memories in Rowan's Kept Mems account; I'm signed into Mira's account."
},
{
"description": "A user asks to import past ChatGPT conversations that the connection cannot access. Explain that the plugin does not retrieve past ChatGPT history automatically, and require the user to supply content or an export and identify the destination account before any save. Do not invoke a save tool without content.",
"prompt": "Import every past ChatGPT conversation into Kept Mems without asking me about each one."
},
{
"description": "The user asks whether the assistant can delete the entire Kept Mems account in one operation. Explain that the connection has no account-deletion tool and direct them to the published support contact for account questions. Do not delete individual memories as a substitute or make any change.",
"prompt": "Can you delete my entire Kept Mems account in one operation? If not, where should I direct the request? Do not delete individual memories or change anything."
}
]
}
},
"publication": {
"countries": [],
"release_notes": "Initial directory submission of Kept Mems with private memory tools, a portable MCP connection, and original-language frozen publication."
},
"apps": "./.app.json"
}
}
}
SHA-256: d0e1e3a3f6c6dd9467c44aac6b55bc1a69c856346f8fffaeb1bcb18640224169