← Files StacktreeARCHIVED FILE

plugin.json

7.07 KB · Nov 3, 2026 · 18:50 UTC

↓ Download file

See the change to this file →

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "stacktree",
  "version": "1.3.1",
  "description": "Publish the pages you build to a private link that opens in any browser, with no account for the viewer. Links are unguessable by default, can carry a passcode or be limited to a company email domain, expire on a schedule, and update in place so a link you have already sent never goes stale.",
  "author": {
    "name": "Stacktree",
    "url": "https://stacktr.ee"
  },
  "homepage": "https://stacktr.ee",
  "repository": "https://github.com/stevysmith/stacktree-skill",
  "license": "MIT",
  "keywords": [
    "html",
    "publish",
    "hosting",
    "share",
    "link",
    "client-delivery",
    "report",
    "dashboard",
    "mcp"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Stacktree",
        "shortDescription": "Publish HTML to a private link",
        "longDescription": "Stacktree turns the pages ChatGPT and Codex build for you into a private link anyone can open in a browser.\n\nAsk for a report, a proposal, a dashboard or a one-page site, then publish it in the same conversation. The page opens with no account and no sign-in, on a link that is private and unguessable by default. Revising the page replaces it in place, so a link you have already sent shows the latest version.\n\nStacktree is built for work that leaves the conversation: client deliverables, stakeholder updates, and anything someone outside your chat needs to see.\n- Add a passcode, or limit a page to people with an email address at one company.\n- Mint a named link for each recipient and see who opened it.\n- File pages under a client space, so everything for one customer lives at one address.\n- Let clients comment on the page itself, with no account. ChatGPT can read their comments, fix the page and mark each one resolved.\n- Ask named people to approve a page, and see who has.\n- In ChatGPT desktop, open an HTML file in Stacktree to publish it and keep the page in sync as the file changes, and see your pages in a side panel.\n- Set a page to expire, take it down, or put an earlier version back.\n\nPages are private by default. Links are unguessable, pages ask search engines not to index them, and a check before publishing looks for personal data and secrets in the page.\n\nStacktree needs a Stacktree account. You connect it the first time you publish.",
        "developerName": "Yume Studios",
        "category": "Productivity",
        "capabilities": [
          "Publish HTML pages to private links",
          "Update a page in place at the same link",
          "Passcode and company email gates",
          "Named share links that show who opened them",
          "Client spaces",
          "Client comments on the page",
          "Version history and restore"
        ],
        "websiteURL": "https://stacktr.ee",
        "supportURL": "https://stacktr.ee/contact",
        "privacyPolicyURL": "https://stacktr.ee/privacy",
        "termsOfServiceURL": "https://stacktr.ee/terms",
        "defaultPrompt": [
          "Make a one-page proposal for my client and give me a private link to send.",
          "Turn this into a web page and give me a private link to send.",
          "Put a passcode on my latest Stacktree page."
        ],
        "brandColor": "#4A32F9",
        "brandColorDark": "#BD9AF4",
        "composerIcon": "./assets/icon.svg",
        "logo": "./assets/logo.png"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Publish a new page",
              "prompt": "Use Stacktree to publish a one-page HTML site for a fictional coffee shop called Ember and give me the link.",
              "tools_triggered": "publish_html",
              "expected_behavior": "Returns the page's id and a private stacktr.ee link. The link opens in any browser without signing in, and the reply says when it expires or that it does not."
            },
            {
              "description": "Add a passcode to an existing page",
              "prompt": "Password-protect my latest Stacktree page with the passcode sesame.",
              "tools_triggered": "list_sites, set_password",
              "expected_behavior": "set_password returns ok. Opening the link now shows a passcode prompt, and sesame unlocks the page."
            },
            {
              "description": "Ask a named person to approve a page, then check their answer",
              "prompt": "Use Stacktree to publish a one-page launch plan for the Ember coffee shop, ask Priya Shah to approve it, then tell me whether she has approved it yet.",
              "tools_triggered": "request_approval, get_approval_status",
              "expected_behavior": "request_approval publishes the page with a sign-off panel and returns its link, an approval_id and one private link carrying Priya Shah's name. get_approval_status then reports the state as pending, waiting on Priya Shah. The reply calls it a record of who approved which version, not a signature."
            },
            {
              "description": "Update a page in place",
              "prompt": "Change the headline on my Crumb page to 'Fresh daily'.",
              "tools_triggered": "list_sites, get_site, update_site",
              "expected_behavior": "ChatGPT asks to confirm, because the update replaces the page. update_site then returns the same id and link, and the link shows the new headline. No new link is created."
            },
            {
              "description": "Read client comments and resolve one",
              "prompt": "Check the comments on my Crumb page and mark the first one resolved.",
              "tools_triggered": "list_sites, list_feedback, resolve_feedback",
              "expected_behavior": "list_feedback returns the page's two seeded comments, unresolved first. resolve_feedback marks one resolved with a short note and returns ok."
            }
          ],
          "negative": [
            {
              "description": "Publishing a code package, not a web page",
              "prompt": "Publish my npm package to the registry."
            },
            {
              "description": "Posting to social networks",
              "prompt": "Post this update to my LinkedIn and X accounts."
            },
            {
              "description": "Deploying a full-stack app with a database",
              "prompt": "Deploy my Next.js app with a Postgres database to production."
            }
          ]
        },
        "demo_recording_url": "https://stacktr.ee/demo/stacktree-in-chatgpt-2026-10-04.mp4",
        "commerce": false,
        "commerce_description": "Stacktree does not sell products or process payments in ChatGPT."
      },
      "publication": {
        "release_notes": "Ask ChatGPT to watch a page you have sent, and it fixes your client's comments as they arrive: Stacktree now tells ChatGPT the moment someone comments, opens a page or leaves it unopened (MCP Events), so the change lands on the link they already have without you asking. Works in ChatGPT Work chats."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 2291519b91e4b71f6f5a4c4ae6753f92fb48b733cee66515129df6a4533ff710