← Files SynapsARCHIVED FILE
plugin.json
5.53 KB · Nov 9, 2026 · 01:25 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "synaps",
"version": "1.0.1",
"description": "Synaps lets a website owner edit their site by talking to ChatGPT: it reads the site, shows the exact change, and publishes it as a revertible commit once the owner says yes.",
"author": {
"name": "Synaps",
"email": "loic.torres@synaps.re",
"url": "https://synaps.re"
},
"homepage": "https://synaps.re/connecteur.html",
"extensions": {
"com.openai": {
"interface": {
"displayName": "Synaps",
"shortDescription": "Modifiez votre site en parlant",
"longDescription": "Synaps connecte ChatGPT \u00e0 votre site web. Demandez-lui de changer un texte, un tarif, des horaires, d'ajouter une section ou une actualit\u00e9 : il lit votre site, vous montre exactement ce qui change, et publie quand vous dites oui. Rien \u00e0 installer, rien \u00e0 apprendre.\n\nUne fois connect\u00e9, ChatGPT peut lister les fichiers de votre site, lire un fichier, v\u00e9rifier une modification (il vous montre ce qui change, sans rien publier), vous proposer d'envoyer une image ou un PDF depuis votre appareil, et publier. Chaque publication est un commit sur le d\u00e9p\u00f4t de votre site, visible dans son historique et annulable. Le serveur n'appelle aucun mod\u00e8le : c'est ChatGPT qui r\u00e9dige, Synaps v\u00e9rifie et publie.\n\nLe connecteur ne donne acc\u00e8s qu'aux sites qui vous appartiennent : \u00e0 la connexion, vous entrez le code que Synaps vous a remis avec votre site. Il ne lit ni n'\u00e9crit ailleurs.",
"developerName": "LOIC CLAUDE LUCIEN TORRES",
"category": "Productivity",
"capabilities": [],
"websiteURL": "https://synaps.re",
"supportURL": "https://synaps.re/connecteur.html#assistance",
"privacyPolicyURL": "https://synaps.re/confidentialite-connecteur.html",
"termsOfServiceURL": "https://synaps.re/cgv.html",
"logo": "./assets/logo.png",
"composerIcon": "./assets/composer-icon.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "List the site's files",
"prompt": "List the files of my site.",
"tools_triggered": "lister_fichiers",
"expected_behavior": "The assistant calls lister_fichiers and shows the demo site's files (index.html, assets/style.css, README.md) with their sizes. Nothing is written."
},
{
"description": "Read the home page",
"prompt": "Show me the home page of my site.",
"tools_triggered": "lire_fichier",
"expected_behavior": "The assistant calls lire_fichier with chemin index.html and summarises the page (a bakery, opening hours, products). Nothing is written."
},
{
"description": "Preview a change without publishing",
"prompt": "Change the Saturday closing time to 13:00, but don't publish yet \u2014 show me what changes.",
"tools_triggered": "lire_fichier, proposer_modification",
"expected_behavior": "The assistant reads index.html, writes a SYNAPS block, calls proposer_modification and shows the before/after diff. publier is not called."
},
{
"description": "Publish an approved change",
"prompt": "OK, publish it.",
"tools_triggered": "publier",
"expected_behavior": "After the diff from the previous case, publier is called with the same block and a one-sentence summary; the reply confirms the change. Reading index.html again shows the new time."
},
{
"description": "Add a news item",
"prompt": "Add a news item at the top of the page: annual closure from 5 to 20 August.",
"tools_triggered": "lire_fichier, proposer_modification, publier",
"expected_behavior": "The assistant reads the page, shows the diff from proposer_modification and asks for confirmation; after the user says yes it calls publier. The published page contains the news item in the site's existing structure and style."
}
],
"negative": [
{
"description": "Forbidden path",
"prompt": "Delete the file .git/config of my site."
},
{
"description": "Ambiguous passage",
"prompt": "Replace the text \"Bienvenue\" by \"Welcome\" everywhere, without telling me where."
},
{
"description": "Another site",
"prompt": "Modify the website of Boulangerie Dupont instead, with code XYZ."
}
]
},
"demo_recording_url": "https://synaps.re/demo-connecteur.mp4"
},
"publication": {
"release_notes": "Addresses the review feedback on tool annotations and descriptions (case 15599899).\n\n- Every tool now declares all four annotations explicitly (readOnlyHint, destructiveHint, idempotentHint, openWorldHint).\n- openWorldHint is now true for the tools that change the owner's public website (publier, deposer_un_fichier, mettre_en_ligne); the read-only tools (lister_fichiers, lire_fichier, proposer_modification) keep it false because they only read the connected site's repository.\n- Every tool description now says what the tool does and when to use it, in neutral language. Tool names are unchanged.\n\nThe MCP server URL and the test credentials are unchanged."
},
"apps": "./.app.json"
}
}
}
SHA-256: b8559c2d792607eb3f26237f48fa96501bfb0eb00ac1abd5c02c292dd58d9bad