notch.monster
DownloadGet it

The manifest

manifest.json sits at the root of your built package. In the starter it lives in public/, so Vite copies it into dist/.

{
  "id": "com.example.weather",      // reverse-DNS, unique, never changes
  "name": "Weather",                // 1–40 characters
  "version": "1.0.0",               // MAJOR.MINOR.PATCH (optionally -pre)
  "apiVersion": 1,                  // SDK API version: 1
  "minAppVersion": "0.1.0",         // optional
  "publisher": "Example Inc.",      // optional
  "description": "Current conditions.",
  "icon": "icon.svg",               // optional: .svg, .png or .webp in the package
  "widget": {
    "entry": "index.html",          // default index.html
    "minSize": { "w": 2, "h": 2 },  // grid cells, 2×2 up to 12×6
    "defaultSize": { "w": 4, "h": 2 },
    "expanded": true,               // has a full-panel view
    "pill": true                    // may set pill claims
  },
  "permissions": ["network"],
  "network": { "domains": ["api.open-meteo.com"] },
  "justifications": { "location": "Weather where you are." },
  "uses": {},                       // services you call: see services.md
  "provides": {},                   // services you offer: see services.md
  "stats": [                        // metrics for the Stats view: see sdk.md#stats
    { "id": "pages_read", "label": "Pages read", "unit": "count" }
  ]
}

Rules

Field Rule
id Lowercase reverse-DNS: at least 2 labels of a-z 0-9 -, each ≤ 40 chars, ≤ 100 total. It belongs to you after your first submission.
version Each published version must be newer than the last.
apiVersion 1.
widget.entry A relative path to an .html file. Loaded with ?view=tile, ?view=expanded or ?view=service.
sizes Whole cells, from 2×2 up to the 12×6 board. defaultSize ≥ minSize.
permissions Names from Permissions.
network.domains Required with network. Public hostnames such as api.example.com or *.example.com. No IPs, localhost or .local.
background.budget Required with background: "low", "medium" or "high" (see Permissions).
stats Up to 8 metrics. id: 1–32 of a-z 0-9 _, unique. label: 1–40 characters. unit: "count", "minutes" or "seconds". agg (how a day’s values combine): "sum" (default) or "max". retention: days of raw values to keep before they roll up into daily totals, 1–3650 or "forever" (default 30).
justifications Required for every sensitive permission and for background, keyed by permission. Shown to the user when you first ask (for background, on the install sheet).

Package limits

npx @notch-monster/plugin-cli pack dist runs the same checks as the marketplace, so run it before you submit.