{
  "slug": "io-github-marcimastro98-xenon-widgets",
  "name": "xenon-widgets",
  "auditedAt": "2026-11-02T12:22:29Z",
  "version": "1.0.0",
  "ecosystem": "npm",
  "package": "xenon-mcp",
  "disclaimer": "Automated smoke test, not a security guarantee.",
  "complete": true,
  "checks": {
    "versionPin": {
      "status": "pass",
      "detail": "Pinned npm xenon-mcp@1.0.0",
      "version": "1.0.0"
    },
    "vulnerabilities": {
      "status": "pass",
      "detail": "No critical, high, or medium advisories were returned.",
      "critical": 0,
      "high": 0,
      "medium": 0,
      "low": 0,
      "packagesScanned": 1
    },
    "license": {
      "status": "warn",
      "detail": "The package license field says \u201cSEE LICENSE IN LICENSE\u201d. No recognized SPDX license id.",
      "spdx": null
    },
    "installScripts": {
      "status": "pass",
      "detail": "No preinstall, install, postinstall, or prepare script.",
      "scripts": []
    },
    "secrets": {
      "status": "pass",
      "detail": "No credential patterns in the published artifact.",
      "findings": []
    },
    "packageSize": {
      "status": "pass",
      "detail": "31642 bytes",
      "bytes": 31642
    },
    "activity": {
      "status": "pass",
      "detail": "Active 3 days ago.",
      "ageDays": 3
    },
    "sandbox": {
      "status": "pass",
      "detail": "MCP handshake completed. 9 tools listed.",
      "starts": true,
      "handshake": true,
      "timeToReadyMs": 34,
      "tools": [
        {
          "name": "xenon_status",
          "description": "Check that Xenon is running on this computer and ready for widgets: its version, the Widget SDK version, whether community widgets are on and whether a dashboard is open. Call it first."
        },
        {
          "name": "sdk_reference",
          "description": "Read the Xenon Widget SDK reference: the manifest, the message protocol, data streams, actions, storage, sizing and the sandbox rules. With no section you get the table of contents. Read it before writing a widget."
        },
        {
          "name": "new_widget",
          "description": "Write a working starter widget (manifest, HTML, CSS, JS showing live CPU and memory) into a new or empty folder. Edit it from there, then install_widget."
        },
        {
          "name": "check_widget",
          "description": "Run the checks Xenon runs before installing, without installing: the package rules, what the sandbox will refuse (inline scripts, remote code, hosts) and the Store's review notes."
        },
        {
          "name": "install_widget",
          "description": "Install or update the widget from its folder put it on the dashboard and show its page (a new page when the one in view is full). Permissions it asks for still wait for the person to approve them on the dashboard. Then call widget_issues an"
        },
        {
          "name": "widget_issues",
          "description": "What went wrong in an installed widget while it ran: errors and console.error lines, requests the sandbox blocked, whether its permissions are approved, and how heavy it is. Errors thrown in widget code show as \"Script error.\" because of th"
        },
        {
          "name": "widget_screenshot",
          "description": "A picture of the widget's tile as it is on screen now. Anything on top of the dashboard shows too. Not available on Linux under Wayland."
        },
        {
          "name": "my_widgets",
          "description": "List the widgets the person made (not Store downloads). With an id and a folder, write that widget's files into the folder to keep working on it."
        },
        {
          "name": "share_widget",
          "description": "A share code for one of the person's own widgets, which anyone can paste into Xenon, plus the Store review notes. To put it in the Store the person sends it from xenon-app.com/submit."
        }
      ],
      "toolCount": 9,
      "resourceCount": 0,
      "promptCount": 0,
      "stderrExcerpt": "",
      "network": "disabled",
      "networkAttemptedWhileOffline": false,
      "outboundHosts": [],
      "requiresCredentials": false
    }
  },
  "tier": "tested",
  "tierReason": "Sandbox handshake completed, with warnings: license.",
  "logExcerpt": ""
}