- Updated: March 17, 2026
- 5 min read
How to Publish, Version, and Distribute Your OpenClaw Plugins on the OpenClaw Marketplace
How to Publish, Version, and Distribute Your OpenClaw Plugins on the OpenClaw Marketplace
To get an OpenClaw plugin onto the Marketplace, you must prepare a clean Git repository, add proper metadata, build a release package, publish it through the OpenClaw CLI, verify the upload, and then manage future versions with semantic tags.
1. Introduction
OpenClaw plugins extend the core functionality of the OpenClaw platform, allowing developers to add custom commands, UI widgets, or automation scripts. Publishing a plugin on the OpenClaw Marketplace makes it discoverable by thousands of users and opens a channel for feedback, monetisation, and community contributions.
This guide walks you through a complete, repeatable workflow—from repository setup to version management—so you can focus on coding rather than deployment headaches. All steps are tested on the latest UBOS‑hosted OpenClaw environment.
2. Prerequisites
- Node.js ≥ 18.x and npm ≥ 9.x installed locally.
- Git client configured with your GitHub/GitLab credentials.
- OpenClaw CLI (
oc) installed globally:npm i -g @openclaw/cli. - An active OpenClaw developer account (you’ll need an API token).
- Basic familiarity with semantic versioning (MAJOR.MINOR.PATCH).
[Screenshot: Prerequisites checklist in a terminal]
3. Step 1: Prepare Your Plugin Repository
A clean, well‑structured repository is the foundation of a reliable plugin. Follow the folder layout below:
my-openclaw-plugin/
├─ src/
│ ├─ commands/
│ │ └─ hello-world.js
│ └─ ui/
│ └─ widget.html
├─ tests/
│ └─ hello-world.test.js
├─ .gitignore
├─ package.json
└─ README.md
Key points:
- Keep
src/for production code andtests/for unit tests. - Exclude
node_modulesand build artifacts via.gitignore. - Document usage and contribution guidelines in
README.md.
[Screenshot: Repository tree view in VS Code]
4. Step 2: Add Metadata for Versioning
OpenClaw reads plugin metadata from package.json. Populate the following fields precisely:
{
"name": "my-openclaw-plugin",
"version": "1.0.0",
"description": "A sample OpenClaw plugin that greets the user.",
"main": "src/index.js",
"author": "Your Name <you@example.com>",
"license": "MIT",
"keywords": ["openclaw", "plugin", "greeting"],
"oc": {
"id": "com.example.myplugin",
"displayName": "My Greeting Plugin",
"category": "Utility",
"compatibleWith": ">=2.0.0"
}
}
Why the oc block matters: The Marketplace uses oc.id as a unique identifier, displayName for UI listings, and compatibleWith to filter plugins based on the host OpenClaw version.
[Screenshot: Filled package.json in an editor]
5. Step 3: Create a Release Build
OpenClaw plugins are distributed as a single .zip containing the compiled source. Follow these steps:
-
Install dependencies:
npm ci -
Run the build script (if you use a bundler):
npm run buildIf you don’t need bundling, skip this step.
-
Package the plugin:
oc pack --output dist/my-openclaw-plugin-1.0.0.zipThe
oc packcommand validates theocmetadata and creates a zip ready for upload.
[Screenshot: CLI output showing successful packaging]
6. Step 4: Publish to the OpenClaw Marketplace
Publishing requires an API token. Retrieve it from your OpenClaw developer dashboard, then run:
oc publish \
--token YOUR_API_TOKEN \
--file dist/my-openclaw-plugin-1.0.0.zip \
--release-notes "Initial release – greets users with a friendly message."The CLI will respond with a JSON payload containing the marketplace URL, plugin ID, and status.
Important: Keep the token secret; treat it like a password. Store it in an environment variable or a CI secret store.
[Screenshot: Successful publish response in terminal]
7. Step 5: Verify and Test the Published Plugin
After publishing, confirm that the plugin appears in the Marketplace and works on a live OpenClaw instance.
- Open the Marketplace UI: Navigate to OpenClaw Marketplace and search for My Greeting Plugin.
-
Install via CLI on a test node:
oc install com.example.myplugin --version 1.0.0 -
Run the command:
oc run hello-worldYou should see
Hello, OpenClaw user!printed in the console.
[Screenshot: Marketplace entry for the plugin]
[Screenshot: CLI output after running the command]
8. Step 6: Update and Manage Versions
Continuous improvement means releasing new versions. Follow this disciplined process:
- Increment the version: Use
npm versionwith the appropriate semver bump.npm version patch # 1.0.1 - Update release notes: Keep a
CHANGELOG.mdfile and reference it in the--release-notesflag. - Re‑run the build and pack steps.
- Publish the new zip: Same
oc publishcommand, but with the new file name. - Deprecate old versions (optional): Use the Marketplace UI to mark a version as “Deprecated” if it contains breaking changes.
Automation tip: Add a GitHub Actions workflow that triggers on tag creation, runs the build, and publishes automatically. This reduces manual errors and speeds up delivery.
[Screenshot: GitHub Actions workflow YAML snippet]
9. Common Issues & Troubleshooting
| Symptom | Likely Cause | Fix |
|---|---|---|
Publish fails with 401 Unauthorized | Invalid or expired API token | Regenerate the token from the developer dashboard and update your CI secret. |
| Marketplace shows “Incompatible” | Incorrect compatibleWith range in package.json | Adjust the semver range to match the target OpenClaw version (e.g., >=2.1.0). |
| Installed plugin crashes on start | Missing dependency in the packaged zip | Ensure npm ci --production runs before packing, or include a node_modules folder if you rely on dev‑only packages. |
For deeper debugging, enable verbose logging:
OC_LOG_LEVEL=debug oc install com.example.myplugin10. Conclusion
Publishing an OpenClaw plugin is a systematic process that blends good software engineering (clean repo, semantic versioning) with the specific requirements of the OpenClaw Marketplace (metadata, zip packaging, API token). By following the steps outlined above, you can confidently release, verify, and iterate on plugins that reach a global audience.
Remember to keep your package.json metadata up‑to‑date, automate builds with CI/CD, and monitor the Marketplace for user feedback. When you’re ready to host your own OpenClaw instance or need a managed environment, check out the OpenClaw hosting guide for a seamless UBOS integration.
Happy coding, and may your plugins empower the OpenClaw community!