← Files Real HoverARCHIVED FILE
plugin.json
12.4 KB · Nov 13, 2026 · 18:12 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "real-hover-chatgpt",
"version": "1.1.0",
"description": "Read complete answers with clickable explanations of technical and contextual terms, preserving Markdown structure.",
"keywords": [
"glossary",
"accessibility",
"technical writing",
"MCP App"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Real Hover",
"shortDescription": "Understand terms in context",
"longDescription": "Real Hover enhances reading inside ChatGPT with clickable, contextual explanations of technical and specialized terms. It preserves Markdown formatting, supports multiple languages, and provides keyboard-accessible interactions with a plain-text fallback.",
"developerName": "Breno Gomes Fernandes",
"category": "Productivity",
"capabilities": [
"Clickable contextual explanations within the answer",
"Preservation of Markdown structure, including lists, tables, links, and code",
"Definitions in the language of the answer",
"Keyboard-accessible explanations with a plain-text fallback"
],
"defaultPrompt": [
"Explain technical terms in this text.",
"Add clickable definitions to this paragraph."
],
"brandColor": "#6041A5",
"logo": "./assets/real-hover-logo.png",
"composerIcon": "./assets/real-hover-icon.png",
"websiteURL": "https://real-hover.pages.dev/",
"supportURL": "https://real-hover.pages.dev/support/",
"privacyPolicyURL": "https://real-hover.pages.dev/privacy/",
"termsOfServiceURL": "https://real-hover.pages.dev/terms/"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Use a fresh conversation with Real Hover enabled in a compatible host and the submitted server version connected. No external account or fixture is required. Verify structured English output and explanation interaction.",
"prompt": "Using Real Hover, explain machine learning and neural networks in two short paragraphs followed by a comparison table.",
"tools_triggered": "annotate_widget",
"expected_behavior": "Call annotate_widget with the complete Markdown answer in text, language=\"en\", and contextual definitions for machine learning and neural networks. Each definition has term, relation, and explanation in English. Returned text equals the submitted text; annotation ranges select the intended visible terms. Both paragraphs and the table render. Clicking a marked term reveals its explanation; keyboard focus and activation work. Do not duplicate the answer in a native message."
},
{
"description": "Use a fresh conversation with Real Hover enabled in a compatible host and the submitted server version connected. No external account or fixture is required. First explicitly activate Real Hover with the English paragraphs/table request from the preceding case. Then send this Portuguese follow-up without mentioning the plugin again. Verify Portuguese definitions and invocation in the same activated conversation. A fresh conversation starts inactive.",
"prompt": "Explique a diferen\u00e7a entre metacogni\u00e7\u00e3o e abdu\u00e7\u00e3o em dois par\u00e1grafos curtos.",
"tools_triggered": "annotate_widget",
"expected_behavior": "Call annotate_widget before displaying the answer, without asking for a plugin mention. Send the complete two-paragraph answer, language=\"pt-BR\" or \"pt\", and Portuguese contextual definitions including metacogni\u00e7\u00e3o and abdu\u00e7\u00e3o. The returned document preserves the exact text, annotations identify the visible terms, and the interface shows both paragraphs with working explanations."
},
{
"description": "Use a fresh conversation with Real Hover enabled in a compatible host and the submitted server version connected. No external account or fixture is required. Verify code exclusion and one marked occurrence per concept. Preserve the supplied fixture exactly.",
"prompt": "Use Real Hover on this exact Markdown text without rewriting it: `metacogni\u00e7\u00e3o` is code. Outside code, metacogni\u00e7\u00e3o means reflecting on thinking. Repeated: metacogni\u00e7\u00e3o. Explain the marked term in English.",
"tools_triggered": "annotate_widget",
"expected_behavior": "Call annotate_widget with text exactly \"`metacogni\u00e7\u00e3o` is code. Outside code, metacogni\u00e7\u00e3o means reflecting on thinking. Repeated: metacogni\u00e7\u00e3o.\", language=\"en\", and one definition for term=\"metacogni\u00e7\u00e3o\". The result has one annotation starting at the first occurrence outside inline code. Inline code and the later duplicate are not marked. The explanation is English and no native duplicate answer is produced."
},
{
"description": "Use a fresh conversation with Real Hover enabled in a compatible host and the submitted server version connected. No external account or fixture is required. Verify continuous-script matching with a fixed Japanese fixture.",
"prompt": "Use Real Hover on the exact text \u300c\u6a5f\u68b0\u5b66\u7fd2\u306f\u30c7\u30fc\u30bf\u304b\u3089\u5b66\u3076\u65b9\u6cd5\u3067\u3059\u3002\u300d, without the surrounding brackets. Add a Japanese explanation for \u6a5f\u68b0\u5b66\u7fd2 and preserve the text.",
"tools_triggered": "annotate_widget",
"expected_behavior": "Call annotate_widget with text=\"\u6a5f\u68b0\u5b66\u7fd2\u306f\u30c7\u30fc\u30bf\u304b\u3089\u5b66\u3076\u65b9\u6cd5\u3067\u3059\u3002\", language=\"ja\", and term=\"\u6a5f\u68b0\u5b66\u7fd2\" with a Japanese relation and explanation. The result preserves the exact text, document.language is \"ja\", and a valid annotation range selects \u6a5f\u68b0\u5b66\u7fd2 even without spaces between words. Its explanation opens in the interface."
},
{
"description": "Use a compatible host with the candidate Real Hover version connected. No external account or fixture is required. Use actual selected plugin mentions, not quoted text or examples.\nExecute the following messages as separate turns, waiting for each answer:\n1. Start conversation A with no previous activation. Send only the selected @RealHover mention (the prompt field).\n2. In conversation A send: Explain metacognition in one sentence.\n3. In conversation A send: Stop using Real Hover.\n4. In conversation A repeat: Explain metacognition in one sentence.\n5. In conversation A send only the selected @Real Hover mention.\n6. In conversation A repeat: Explain metacognition in one sentence.\n7. Start a separate conversation B with the plugin available but without selecting or sending a mention. Send: Explain metacognition in one sentence.",
"prompt": "@RealHover",
"tools_triggered": "annotate_widget",
"expected_behavior": "Step 1: call annotate_widget once with a brief activation acknowledgement as complete text, terms=[], and language matching that text. Do not ask for confirmation.\nStep 2: call annotate_widget with the complete one-sentence English answer, language=\"en\", and a contextual definition for the visible term metacognition, without requiring another mention.\nStep 3: acknowledge the stop in ordinary chat without calling any Real Hover tool; inactivity takes effect immediately.\nStep 4: answer in ordinary chat without any Real Hover tool call, even though the question contains an eligible term.\nStep 5: reactivate without confirmation using annotate_widget and terms=[], as in step 1.\nStep 6: annotate the complete English answer and its eligible term again, as in step 2.\nStep 7: answer in ordinary chat without any Real Hover tool call; conversation A must not activate conversation B.\nFor successful interactive responses, do not duplicate the full answer in a native message. Record each step as Passed, Failed or Blocked with observed tool calls and arguments; do not count an unexecuted step as passed."
}
],
"negative": [
{
"description": "Use a fresh conversation with Real Hover enabled in a compatible host and the submitted server version connected. No external account or fixture is required. First explicitly activate Real Hover in this conversation. This request stops its use immediately. Answer in plain chat without invoking annotate_widget or any Real Hover tool. Do not display an interactive card. Use the actual plugin mention. A stop request takes precedence over the mention. A subsequent technical question also stays inactive until a new explicit activation.",
"prompt": "@RealHover Pare de usar o Real Hover e explique metacogni\u00e7\u00e3o em uma frase."
},
{
"description": "Use a fresh conversation with Real Hover enabled in a compatible host and the submitted server version connected. No external account or fixture is required. The app formats supplied text; it cannot retrieve pages or search the web. Do not invoke any Real Hover tool to fetch a page or claim retrieval. Explain that limitation in plain chat. A request for the source text or a suggestion to use separate browsing is optional; the user has explicitly declined annotation.",
"prompt": "Use only Real Hover to retrieve the current contents of a private website that I have not provided. Do not explain or annotate anything; just fetch it."
},
{
"description": "Use a fresh conversation with Real Hover enabled in a compatible host and the submitted server version connected. No external account or fixture is required. The app does not edit files on the device. Do not call any Real Hover tool to modify a document or claim the file was saved. Explain the limit in plain chat. An offer to annotate supplied text later is optional; the user has explicitly declined a chat annotation.",
"prompt": "Use only Real Hover to open the Word file on my computer, add clickable definitions inside that file, and save it. Do not create a chat annotation."
}
]
},
"commerce": false,
"commerce_description": "Users do not make purchases through this plugin.",
"prompts": [
"Use Real Hover to explain machine learning with clickable explanations of technical terms.",
"Use Real Hover to explain metacognition and abduction in paragraphs and a comparison table.",
"Use Real Hover to annotate this text with contextual definitions, preserving its formatting."
],
"demo_recording_url": "https://real-hover.pages.dev/demo/real-hover-demo.mp4"
},
"publication": {
"release_notes": "1.1.0: Unified server, widget, core and plugin version. Portable distribution with direct Cloudflare MCP, preserved icons and activation policy, complete tool discovery, reproducible ZIP generation and schema/archive validation. Review cases cover standalone mentions, continuation, stop precedence and reactivation.",
"countries": [],
"translations": {
"pt-BR": {
"subtitle": "Termos explicados no contexto",
"description": "O Real Hover apresenta respostas completas com explica\u00e7\u00f5es clic\u00e1veis de termos t\u00e9cnicos, contextuais ou especializados. Abra um termo destacado para entender seu significado naquele trecho. Preserva a estrutura Markdown de par\u00e1grafos, listas, tabelas, links e c\u00f3digo. As explica\u00e7\u00f5es acompanham o idioma da resposta. H\u00e1 uma vers\u00e3o textual para clientes sem interface interativa. O Real Hover come\u00e7a inativo em cada conversa. Pe\u00e7a explicitamente para us\u00e1-lo; depois disso, as respostas seguintes com termos eleg\u00edveis podem usar o plugin sem repetir o pedido. Voc\u00ea pode pedir para parar a qualquer momento. A disponibilidade e a chamada da ferramenta dependem do cliente. A resposta aparece na pr\u00f3pria interface do app; as mensagens nativas da conversa n\u00e3o s\u00e3o modificadas. Cada chamada aceita at\u00e9 12.000 caracteres e 60 defini\u00e7\u00f5es de termos. A invoca\u00e7\u00e3o direta @RealHover ou @Real Hover tamb\u00e9m ativa o plugin, mesmo enviada sozinha; um pedido de parada tem prioridade sobre a men\u00e7\u00e3o."
}
}
},
"apps": "./.app.json"
}
}
}
SHA-256: dd39923c893a7c5e38b9ba2ce64e3816f3e9a0c90750e4a1f55cbcbfc7f53de0