paperclip-create-plugin
paperclipai/paperclip
Scaffold and develop Paperclip plugins with CLI-first workflow and local install loop.
What is paperclip-create-plugin?
Create and iterate on external Paperclip plugins using the `paperclipai plugin init` command and local path installation. Use this skill when scaffolding a new plugin, developing against a running Paperclip instance, or authoring plugin documentation.
- Scaffold new plugins with `paperclipai plugin init` using configurable templates (default, connector, workspace, environment, ui)
- Install plugins locally by absolute path and watch for rebuilt outputs without reinstalling
- Rebuild worker and UI code with `pnpm dev` and hot-reload via the SDK dev server
- Verify plugins with typecheck, test, and build commands before deployment
- Inspect installed plugins with `paperclipai plugin list` and `plugin inspect` commands
How to install paperclip-create-plugin
npx skills add https://github.com/paperclipai/paperclip --skill paperclip-create-plugin- Paperclip CLI (`paperclipai`) installed and on PATH, or access to the Paperclip source checkout
- Node.js and pnpm for building and installing dependencies
- A running Paperclip instance to install and test plugins against
How to use paperclip-create-plugin
- 1.Run `paperclipai plugin init @scope/plugin-name --output ~/dev/paperclip-plugins` to scaffold the plugin
- 2.Navigate to the created plugin folder and run `pnpm install` to install dependencies
- 3.Run `pnpm dev` to start the esbuild watcher for worker and UI rebuilds
- 4.In another shell, run `paperclipai plugin install /absolute/path/to/plugin` to install the local plugin
- 5.Verify the plugin is ready with `paperclipai plugin list` and `paperclipai plugin inspect <plugin-key>`
- 6.Run `pnpm typecheck`, `pnpm test`, and `pnpm build` to verify the plugin before deployment
- 7.Edit code in `src/manifest.ts`, `src/worker.ts`, and `src/ui/index.tsx`; the server auto-reloads worker on rebuild
Use cases
- Create a new connector plugin from scratch using the CLI scaffold
- Develop a workspace plugin locally against a running Paperclip instance and iterate on code changes
- Set up a plugin with custom manifest metadata, display name, and category during initialization
- Verify a completed plugin passes typecheck, tests, and build before publishing to npm
- Debug plugin installation status and inspect declared capabilities and slots
- Plugin developers building external Paperclip plugins
- Teams authoring custom connectors, workspace, or automation plugins
- Developers integrating plugins into a local Paperclip instance for testing
paperclip-create-plugin FAQ
Create plugins outside the Paperclip checkout (e.g., `~/dev/paperclip-plugins/<name>`) unless explicitly asked for a bundled example. Install them locally by absolute path. Only edit Paperclip core when surfacing a plugin as a bundled example.
The server watches the built outputs in `dist/` for local-path plugins and automatically restarts the plugin worker on rebuild. You do not need to reinstall after every edit. UI hot reload via the SDK dev server is optional and template-dependent.
Verify `src/manifest.ts` declares only supported capabilities, `src/worker.ts` is the worker entry, `src/ui/index.tsx` is the UI entry, `package.json` has the correct `paperclipPlugin` block, and the plugin does not use unsupported APIs like `ctx.assets` or host UI component stubs.
Report the scaffold path, exact commands run, install status from `paperclipai plugin list`, and results of `pnpm typecheck`, `pnpm test`, and `pnpm build`. Note any reload limitations or manifest changes that required reinstall.
Fall back to building and running the scaffold package directly from the Paperclip source: `pnpm --filter @paperclipai/create-paperclip-plugin build` followed by `node packages/plugins/create-paperclip-plugin/dist/index.js` with the same flags and `--sdk-path` pointing to the local SDK.
Full instructions (SKILL.md)
Source of truth, from paperclipai/paperclip.
name: paperclip-create-plugin
description: >
Create and develop external Paperclip plugins with the CLI-first workflow.
Use when scaffolding a new plugin, working on a local plugin against a running
Paperclip instance, or updating plugin authoring docs. Covers paperclipai plugin init, the local install loop via paperclipai plugin install <path>,
worker/UI rebuild and reload semantics, and the required success checklist.
Create and develop a Paperclip plugin
Use this skill when the task is to create, scaffold, or iterate on a Paperclip plugin against a local Paperclip instance.
1. Default: build the plugin OUTSIDE Paperclip core
Plugins are their own packages. Unless the task explicitly asks for a bundled in-repo example, do not add plugin source under packages/plugins/ in this repo.
- Scaffold the plugin into a directory outside the Paperclip checkout (e.g.
~/dev/paperclip-plugins/<name>). - Install it into the running Paperclip instance by local absolute path.
- Edit code in the external package; let Paperclip pick up rebuilt output.
Only edit Paperclip core itself when the user asks to surface a plugin as a bundled example (server/src/routes/plugins.ts, in-repo example lists, docs).
2. Ground rules
Reference docs when you need detail:
doc/plugins/PLUGIN_AUTHORING_GUIDE.mdpackages/plugins/sdk/README.mddoc/plugins/PLUGIN_SPEC.md— future-looking context only
Current runtime assumptions:
- plugin workers are trusted code
- plugin UI is trusted same-origin host code
- worker APIs are capability-gated
- plugin UI is not sandboxed by manifest capabilities
- no host-provided shared plugin UI component kit yet
ctx.assetsis not supported in the current runtime
3. CLI-first scaffold workflow
Use paperclipai plugin init. Do not invoke the scaffold package node entrypoint by hand unless the CLI command is unavailable in the environment.
paperclipai plugin init @acme/my-plugin --output ~/dev/paperclip-plugins
Useful flags (all optional):
--output <dir>— parent directory; the command creates<dir>/<unscoped-name>/. Defaults to the current directory.--template <default|connector|workspace|environment>— starter template.--category <connector|workspace|automation|ui|environment>— manifest category.--display-name <name>,--description <text>,--author <name>— manifest metadata.--sdk-path <path>— snapshot the local SDK from a Paperclip checkout into.paperclip-sdk/(useful when developing against an unreleased SDK).
On success the command prints the exact next commands (cd, pnpm install, pnpm dev, paperclipai plugin install <abs-path>). Run them in order.
If paperclipai is not on PATH in your environment, fall back to:
pnpm --filter @paperclipai/create-paperclip-plugin build
node packages/plugins/create-paperclip-plugin/dist/index.js @acme/my-plugin \
--output /absolute/path \
--sdk-path /absolute/path/to/paperclip/packages/plugins/sdk
4. Local install + rebuild loop
In the scaffolded plugin folder:
pnpm install
pnpm dev # esbuild --watch: rebuilds dist/manifest.js, dist/worker.js, dist/ui/
paperclipai plugin install /absolute/path/to/my-plugin
Notes:
paperclipai plugin installauto-detects local paths (absolute,./,../,~, or an existing relative folder) and forwardsisLocalPath: trueto the server. Pass--localto force local mode if the heuristic is ambiguous.- Paths are resolved to absolute paths before being sent to the server.
- The server watches built outputs (
dist/) for local-path plugins and restarts the plugin worker on rebuild — you do not need to reinstall after every edit. - UI hot reload via the SDK dev server (
pnpm dev:ui, port4177) is optional and template-dependent; only mention it if the template wiresdevUiUrland you verified it works end to end. --versiononly applies to npm package installs. Combining it with a local path is an error.
After install, inspect with:
paperclipai plugin list
paperclipai plugin inspect <plugin-key>
5. After scaffolding, sanity-check the package
Open and confirm:
src/manifest.ts— declared capabilities and slotssrc/worker.ts— worker entrysrc/ui/index.tsx— UI entry (if applicable)tests/plugin.spec.ts— placeholder testpackage.json—paperclipPluginblock points atdist/manifest.js,dist/worker.js,dist/ui/
Make sure the plugin:
- declares only supported capabilities
- does not use
ctx.assets - does not import host UI component stubs
- keeps UI self-contained
- uses
routePathonly onpageslots
6. Verification (run before declaring success)
From the plugin folder:
pnpm typecheck
pnpm test
pnpm build
If the plugin is already running under pnpm dev, you can keep the watcher up and run pnpm typecheck and pnpm test in a separate shell.
If you changed Paperclip SDK/host/plugin runtime code in addition to the plugin, also run the relevant Paperclip workspace checks.
7. Success checklist (report this back)
When you finish a local plugin task, report:
- Scaffold path — absolute path of the created plugin folder.
- Commands run — the exact
paperclipai plugin init,pnpm install,pnpm dev,paperclipai plugin install <path>invocations (and any verification commands). - Install status — output of
paperclipai plugin list/plugin inspect(plugin key, version, status). Note ifstatusis anything other thanreadyand includelastError. - Tests / build result —
pnpm typecheck,pnpm test,pnpm buildpass/fail with the failing output if any. - Reload limitations — call out anything that did not hot-reload (e.g. manifest changes required a reinstall, UI dev server was not wired, etc.).
If any item is missing, mark it as such — do not silently skip.
8. When NOT to edit Paperclip core
Do not add the plugin under packages/plugins/ or update bundled-example wiring unless the user explicitly asks for a bundled example. Local-path installs are the supported development model; npm packages are the production deployment path.
If the user does ask for a bundled example, also update:
server/src/routes/plugins.tsexample list- any docs that enumerate in-repo example plugins
9. Documentation expectations
When authoring or updating plugin docs:
- distinguish current implementation from future spec ideas
- be explicit about the trusted-code model
- do not promise host UI components or asset APIs
- prefer local-path development + npm-package deployment guidance over repo-local workflows
Related skills
More from paperclipai/paperclip and the wider catalog.

para-memory-files
>

paperclip
Manage tasks, delegate work, and coordinate with other agents via the Paperclip control plane API.

paperclip-create-agent
Create new agents in Paperclip with governance-aware hiring and configuration discovery.

parallel-cli-setup
Install and configure the Parallel CLI for web search, extraction, and research capabilities.

parallel-data-enrichment
Bulk enrich company, people, or product data with web-sourced fields like CEO names, funding, and contact info.

parallel-deep-research
Exhaustive multi-source research for complex topics when users explicitly request deep, comprehensive, or thorough investigation.