npm create notch-plugin@latestEvery new plugin comes with these docs and an AGENTS.md, so coding agents know the rules too.Getting started
A Notch Monster plugin is a widget on the board, written with ordinary web
code (HTML, CSS, TypeScript) and the @notch-monster/plugin-sdk package. It runs in a
sandbox. It can’t reach the network, files, the app or other plugins except
through the SDK, and only with the permissions it declares.
1. Create a plugin
npm create notch-plugin@latest my-widget
cd my-widget
npm install
You get:
my-widget/
├── public/manifest.json what the app reads: id, name, sizes, permissions
├── index.html the widget's page (tile and expanded view)
├── src/main.ts your code
├── src/style.css
├── vite.config.ts base: "./" so the build loads from your package
├── AGENTS.md instructions for coding agents
└── docs/ these docs, offline
2. Build it
npm run build # → dist/, with manifest.json at its root
npm run watch # rebuild on every save
3. Load it in the app
- Open Notch Monster’s Settings (the notch’s Settings button, or the tray icon) → Plugins.
- Turn on Developer mode, then Choose folder… and pick
dist/. - Review the install sheet and click Install.
- Settings → Your widgets → Add a widget → your plugin.
After a rebuild, click ↻ next to the plugin to reload it. See Testing.
4. Publish
npx @notch-monster/plugin-cli login
npx @notch-monster/plugin-cli submit dist
See Publishing.
Next
- The manifest: every field and rule
- The sandbox: what’s allowed in a plugin page
- SDK reference:
notch.ready, storage, pill, events - Permissions: network, location, files, clipboard…
- Design: sizing, theme tokens, the pill
- Services: talk to Timer, Tasks, Notes, Media and other plugins
- Testing and Publishing