Create new Paperclip plugins with the current alpha SDK/runtime. Use when scaffolding a plugin package, adding a new example plugin, or updating plugin authoring docs. Covers the supported worker/UI surface, route conventions, scaffold flow, and verification steps.
Use this skill when the task is to create, scaffold, or document a Paperclip plugin.
Read these first when needed:
doc/plugins/PLUGIN_AUTHORING_GUIDE.mdpackages/plugins/sdk/README.mddoc/plugins/PLUGIN_SPEC.md only for future-looking contextCurrent runtime assumptions:
ctx.assets is not supported in the current runtimeUse the scaffold package instead of hand-writing the boilerplate:
pnpm --filter @paperclipai/create-paperclip-plugin build
node packages/plugins/create-paperclip-plugin/dist/index.js <npm-package-name> --output <target-dir>
For a plugin that lives outside the Paperclip repo, pass --sdk-path and let the scaffold snapshot the local SDK/shared packages into .paperclip-sdk/:
pnpm --filter @paperclipai/create-paperclip-plugin build
node packages/plugins/create-paperclip-plugin/dist/index.js @acme/plugin-name \
--output /absolute/path/to/plugin-repos \
--sdk-path /absolute/path/to/paperclip/packages/plugins/sdk
Recommended target inside this repo:
packages/plugins/examples/ for example pluginspackages/plugins/<name>/ folder if it is becoming a real packageCheck and adjust:
src/manifest.tssrc/worker.tssrc/ui/index.tsxtests/plugin.spec.tspackage.jsonMake sure the plugin:
ctx.assetsroutePath only on page slotsFor bundled example/discoverable behavior, update the relevant host wiring:
server/src/routes/plugins.tsOnly do this if the user wants the plugin surfaced as a bundled example.
Always run:
pnpm --filter <plugin-package> typecheck
pnpm --filter <plugin-package> test
pnpm --filter <plugin-package> build
If you changed SDK/host/plugin runtime code too, also run broader repo checks as appropriate.
When authoring or updating plugin docs: