patcher-plugin-authoringlisted
Install: claude install-skill laruss/patcher-browser
# Authoring Patcher plugins
A Patcher plugin is a TypeScript package running in-process inside the Patcher server.
Its backend entry default-exports a factory that receives the full plugin API
(`patcher`); an optional frontend entry registers React UI inside the Patcher app.
Plugins are full-trust code: they can read all local Patcher data.
Plugins are on by default. Builtin plugins ship with Patcher; a few sit behind
their own product gates. `patcher plugin list` shows each plugin's status.
This file is the map. Each surface has a reference file next to it — read the
one your task needs rather than all of them.
## Quickstart
```
patcher plugin new hello # scaffolds ./patcher-plugin-hello (add --app for a frontend entry)
cd patcher-plugin-hello
patcher plugin install . # registers the directory in place (--yes to skip the prompt)
patcher plugin dev # watch loop: rebuild frontend (if any) + reload on every save
```
The manifest is `package.json`. The required shape:
```json
{
"name": "patcher-plugin-hello",
"version": "0.1.0",
"type": "module",
"engines": { "patcher": ">=0.9", "patcherPluginSdk": "^1.0.0" },
"patcher": {
"name": "Hello",
"description": "A friendly example plugin.",
"branding": { "icon": "Zap" },
"server": "./server.ts",
"app": "./app.tsx",
"permissions": []
}
}
```
`patcher.permissions` is what the plugin may reach through `patcher.browser` and
`patcher.sdk`, and **undeclared me