Install
openclaw skills install plugin-creatorBuild, review, and debug OpenClaw plugins with the official plugin SDK. Use when creating or modifying `extensions/<id>` plugins, `openclaw.plugin.json`, plugin-shipped skills, tools, hooks, slash commands, manifests, or tests, and when diagnosing why a plugin, hook, skill, command, or tool is loaded but unavailable at runtime.
openclaw skills install plugin-creatorUse this skill to build or debug OpenClaw plugins. Prefer the official SDK surface, official documentation, and existing plugin patterns over generic plugin assumptions.
Plugins exist to extend OpenClaw without forking the host.
That matters because most user needs are not “change everything.” They are usually one of these:
The philosophical goal is not to put all custom logic into one plugin. The goal is to place each behavior at the smallest correct boundary so it stays understandable, testable, and portable.
When deciding what to build, start from the user need, not from the mechanism. Ask:
If you answer those questions first, the plugin shape usually becomes obvious.
These are different layers. Do not collapse them into “plugin stuff.”
Use a hook when the behavior should happen because something else happened.
Use a tool when the agent needs to do something during reasoning.
Use a command when the user should be able to explicitly trigger a behavior without relying on model judgment.
Use a skill when the problem is not “run this one function,” but “help the model reason in a repeatable way.”
Many good plugins combine more than one layer. The mistake is not combining them. The mistake is combining them without separating responsibilities.
When a user says “I want a plugin that does X,” do not immediately design files. Decompose the request.
Most plugin requests contain multiple concerns mixed together:
Split those concerns before coding. A clean plugin often looks like:
index.tsPrefer:
Avoid “mega plugins” that mix unrelated behavior just because the code lives in one package.
Every plugin feature should be checked at four layers:
This prevents a common failure mode: “the code exists, therefore the feature works.”
When something is unclear, use this priority order:
extensions/observability-lab/.If layers 3 or 4 conflict with layers 1 or 2, trust layers 1 and 2. Also separate “current repo implementation observations” from “stable public contract” in your write-up.
Classify the task first.
references/plugin-layout-and-registration.md first.references/hooks-and-events.md first.references/pitfalls-and-debugging.md first.references/testing-and-workflow.md first.references/official-docs.md first.Confirm the plugin boundary before writing code.
Prefer an existing pattern before inventing one.
extensions/observability-lab/: best for learning combined tool, typed hook, plugin skill, and slash-command patterns.extensions/open-prose/: useful for learning plugin-shipped skill packaging.extensions/lobster/ and extensions/llm-task/: useful for optional tools via optional: true.Choose the location and shape first.
extensions/<plugin-id>/.Build the smallest valid skeleton first.
package.json, openclaw.plugin.json, and index.ts.api.ts barrel.Add capabilities after the boundary is clear.
api.registerTool(...)api.registerCommand(...)api.on(...)api.registerHook(...)skills field in openclaw.plugin.jsonPass the pre-install validation gate before any install step.
pnpm test -- extensions/<plugin-id>/ or pnpm test -- extensions/<plugin-id>/index.test.tspnpm buildpnpm check and the appropriate broader pnpm testpnpm openclaw plugins inspect <id>, install, restart, and real-surface verificationThen do post-install and runtime verification.
pnpm openclaw plugins inspect <id>systemPromptReport when neededAny new deliverable package must get a new version.
package.json version before repackaging.If the task includes “hand this to someone to install”, “ship to a remote environment”, “build a tgz”, or “prepare install instructions”, pre-install validation is mandatory. Do not treat openclaw plugins install ... as the first validation step.
Minimum gate for in-repo plugin development:
pnpm build passesRecommended order:
pnpm test -- extensions/<plugin-id>/index.test.ts
pnpm build
pnpm check
pnpm openclaw plugins inspect <plugin-id> --json
Execution rules:
pnpm check is not always required for the smallest isolated plugin-local change, but once the touched surface crosses plugin-local boundaries, do not skip it.plugins inspect before install so you can confirm manifest / registration / diagnostics before debugging a failed install.npm pack --pack-destination dist, then provide the exact latest dist/<package>-<version>.tgz filename, version, and checksum.2026.3.23, plugin compatibility is resolved against the active runtime version during install, so do not rely on stale constants.2026.3.23-2, do not reuse an older tgz. Repack and hand off the new deliverable version explicitly.openclaw/plugin-sdk/<subpath> official surfaces; do not import core src/** paths directly.openclaw.plugin.json must exist, and configSchema must stay strict.api.registerCommand(...), plugin-shipped skills, skill commands, command-dispatch: tool, and native command menu visibility are different mechanisms; do not blur them together.before_model_resolve / before_prompt_build for prompt injection; treat before_agent_start as a compatibility path only.api.runtime.* instead of bypassing the SDK into host internals.openclaw plugins install ....Plugins fail in predictable ways. Treat failure handling as part of the design, not as a cleanup step.
Use this order:
This order matters because many “logic bugs” are actually loading, policy, or surface-discovery problems.
The job is not just to expose SDK features. The job is to help the user get the behavior they actually want.
That means you should be able to explain, in simple language:
If you cannot explain the design simply, the design is probably still too tangled.
When plugin development or debugging is complete, the output should cover at least:
references/plugin-layout-and-registration.mdreferences/hooks-and-events.mdreferences/testing-and-workflow.mdreferences/pitfalls-and-debugging.mdreferences/official-docs.mdreferences/example-map.md