paperclip-create-plugin
paperclipai/paperclip
Scaffold and develop external Paperclip plugins with CLI-first workflow.
What is paperclip-create-plugin?
Create and iterate on Paperclip plugins outside the core repository using the CLI-first development model. Use this skill when scaffolding a new plugin, editing plugin code locally, installing it into a running Paperclip instance, or updating plugin authoring documentation.
- Scaffold new plugins with `paperclipai plugin init` using configurable templates (default, connector, workspace, environment, automation, ui)
- Manage local plugin development with watch-mode rebuilds via `pnpm dev` that auto-reload in the running Paperclip instance
- Install and inspect plugins by local absolute path with automatic hot-reload of worker and UI on file changes
- Verify plugin correctness with typecheck, test, and build commands before deployment
- Generate plugin manifests with capability declarations, slot definitions, and metadata
How to install paperclip-create-plugin
npx skills add https://github.com/paperclipai/paperclip --skill paperclip-create-plugin- Paperclip instance running locally or accessible via CLI
- Node.js and pnpm installed
- `paperclipai` CLI on PATH (or access to the create-paperclip-plugin package in the Paperclip checkout)
How to use paperclip-create-plugin
- 1.Run `paperclipai plugin init @scope/plugin-name --output ~/dev/paperclip-plugins` to scaffold a new plugin
- 2.Navigate to the generated plugin folder and run `pnpm install` to install dependencies
- 3.Run `pnpm dev` in the plugin folder to start the watch-mode build process
- 4.In another terminal, run `paperclipai plugin install /absolute/path/to/plugin` to install into Paperclip
- 5.Edit plugin source files (`src/manifest.ts`, `src/worker.ts`, `src/ui/index.tsx`) and observe auto-reload in Paperclip
- 6.Run `pnpm typecheck`, `pnpm test`, and `pnpm build` to verify the plugin before deployment
- 7.Use `paperclipai plugin list` and `paperclipai plugin inspect <key>` to inspect installed plugin status
Use cases
- Scaffolding a new connector or workspace plugin to extend Paperclip functionality
- Iterating on plugin worker logic and UI in a local directory while Paperclip auto-reloads changes
- Installing a locally-developed plugin into a running Paperclip instance for testing
- Validating plugin code against the SDK before publishing to npm
- Creating bundled example plugins within the Paperclip repository (when explicitly requested)
- Plugin developers building extensions for Paperclip
- Teams authoring custom connectors or workspace integrations
- Developers contributing plugin examples to Paperclip documentation
paperclip-create-plugin FAQ
No. Scaffold plugins as external packages outside the Paperclip checkout (e.g., `~/dev/paperclip-plugins/<name>`). Only edit Paperclip core if the user explicitly asks for a bundled example.
No. The server watches the built outputs in `dist/` for local-path plugins and auto-restarts the worker on rebuild. Just keep `pnpm dev` running in the plugin folder.
Fall back to running the scaffold via Node directly: `node packages/plugins/create-paperclip-plugin/dist/index.js` with the same flags, passing `--sdk-path` to the local SDK.
Plugins can declare capability-gated worker APIs and trusted same-origin UI. Do not use `ctx.assets`, do not import host UI component stubs, and keep UI self-contained. Refer to `doc/plugins/PLUGIN_AUTHORING_GUIDE.md` and `packages/plugins/sdk/README.md` for details.
Run `pnpm typecheck`, `pnpm test`, and `pnpm build` in the plugin folder. Then check `paperclipai plugin list` and `paperclipai plugin inspect <plugin-key>` to confirm the plugin status is `ready`.
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 plugin, iterating on a local plugin, installing it into Paperclip, or updating plugin authoring docs.
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
File-based PARA memory system for persistent knowledge storage across agent sessions.

paperclip
Coordinate tasks and governance through the Paperclip control plane API.

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

migrate-to-parallel
Migrate Exa, Tavily, Perplexity, or Firecrawl integrations to Parallel products while preserving application behavior.

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

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