Install
openclaw skills install autosolutions-plugin-publisherEnd-to-end plugin creation and publishing for Claude Code, Cowork, and OpenClaw. Handles the full lifecycle: design the plugin, scaffold it in the correct Anthropic marketplace format, generate an OpenClaw install script, create or connect to a GitHub repo, push it, and package a .plugin file for direct Cowork installation. Use this skill whenever the user says "create a plugin", "publish a plugin", "make a marketplace plugin", "push plugin to GitHub", "package a plugin", "turn this into a plugin", "make this installable", "publish to marketplace", or wants to convert existing skills/agents/workflows into a distributable plugin. Also trigger when the user asks to "update my plugin repo", "restructure my plugin", or "add a new plugin to my marketplace". Even if they just say "plugin" in the context of creating or distributing something, this skill is probably what they need.
openclaw skills install autosolutions-plugin-publisherCreate, package, and publish Claude plugins that work across Claude Code, Cowork desktop, and OpenClaw — with correct Anthropic marketplace structure and GitHub integration.
Plugins that don't follow the exact Anthropic marketplace directory convention won't install correctly in Cowork. The marketplace system expects a specific layout — this skill encodes that layout so you never have to guess. It also generates OpenClaw compatibility automatically, so every plugin you create works in both ecosystems.
marketplace-repo/ ← GitHub repo (one per marketplace)
├── .claude-plugin/
│ └── marketplace.json ← Catalog listing all plugins in this marketplace
├── my-plugin/ ← Plugin dir AT REPO ROOT (not nested!)
│ ├── .claude-plugin/
│ │ └── plugin.json ← Plugin manifest
│ ├── skills/
│ │ └── skill-name/SKILL.md ← Skills (triggered automatically)
│ ├── commands/
│ │ └── command-name.md ← Slash commands (invoked explicitly)
│ ├── agents/
│ │ └── agent-name.md ← Subagent definitions
│ ├── .mcp.json ← MCP server connections (optional)
│ ├── CONNECTORS.md ← Tool-agnostic placeholders (optional)
│ └── README.md
├── another-plugin/ ← Additional plugins in same marketplace
│ └── ...
├── openclaw-install.sh ← Generated OpenClaw deployer
└── README.md ← Marketplace-level documentation
Critical rule: Each plugin directory lives at the REPO ROOT, not nested under plugins/.
The marketplace.json source path is "./my-plugin", never "./plugins/my-plugin".
This matches how Anthropic's own knowledge-work-plugins marketplace works.
Read references/marketplace-structure.md for the complete format specification before
creating any files.
Determine the scope through conversation:
~~placeholder connectors.If the user already has skills, agents, or workflows in this session or in files, offer to convert them directly rather than starting from scratch.
Create all files in a working directory, following this exact order:
Write .claude-plugin/plugin.json:
{
"name": "plugin-name",
"version": "1.0.0",
"description": "What it does in one sentence",
"author": {
"name": "Author Name",
"url": "https://example.com"
},
"homepage": "https://github.com/owner/repo",
"license": "MIT",
"keywords": ["relevant", "keywords"]
}
Name rules: kebab-case, lowercase, hyphens only, no spaces.
Each skill is a directory with a SKILL.md file. Skills trigger automatically when Claude
detects a matching user request.
---
name: skill-name
description: >
Third-person description with trigger phrases.
"When the user asks to X, Y, or Z, use this skill."
---
Body: imperative instructions, under 3,000 words. Use references/ for detailed content.
Each command is a .md file with optional YAML frontmatter. Commands are invoked explicitly
by the user (e.g., /plugin-name:command).
---
description: Short description (under 60 chars)
allowed-tools: Read, Write, Edit, Bash, WebSearch
argument-hint: [concept-description]
---
Body: directives FOR Claude to follow. Use $ARGUMENTS for user input.
Each agent is a .md file with YAML frontmatter. Agents are subagent definitions that run
in isolated context windows.
---
name: agent-name
description: When to use this agent, with <example> blocks
model: sonnet
allowed-tools: Read Write WebSearch WebFetch
---
Body: system prompt for the subagent.
Write .mcp.json at plugin root. Use ${CLAUDE_PLUGIN_ROOT} for local paths.
Use ${ENV_VAR} for secrets. Document required env vars in README.
Only create this if the plugin references external tools by category (~~chat, ~~project tracker).
Write a plugin-level README covering: overview, components, setup, usage.
Wrap the plugin in a marketplace structure. Read references/marketplace-structure.md for
the exact marketplace.json format.
Write .claude-plugin/marketplace.json at the repo root:
{
"name": "marketplace-name",
"owner": { "name": "Owner Name", "email": "email@example.com" },
"metadata": { "description": "What this marketplace offers", "version": "1.0.0" },
"plugins": [
{
"name": "plugin-name",
"source": "./plugin-name",
"description": "Plugin description",
"version": "1.0.0",
"author": { "name": "Author Name" },
"homepage": "https://github.com/owner/repo",
"license": "MIT",
"keywords": ["keyword1", "keyword2"],
"category": "category-name",
"tags": ["tag1", "tag2"]
}
]
}
Write a marketplace-level README.md covering:
Every plugin gets an openclaw-install.sh at the repo root. Read
references/openclaw-template.md for the template and adaptation rules.
The script translates the Claude plugin structure into an OpenClaw agent workspace:
skills/ directoryskills/[methodology]/agents/Key adaptation: OpenClaw runs everything in a single context window. Agent prompts that assume independent subagent execution need a "mental isolation" discipline section.
Check if a repo already exists or create a new one:
If the user has gh CLI available (Claude Code / local terminal):
# Create new repo
gh repo create owner/repo-name --public --description "Description" --clone
cd repo-name
# ... copy all files ...
git add -A
git commit -m "Initial release: plugin-name marketplace v1.0.0"
git push origin main
If in Cowork (no git access):
Prepare all files in the outputs directory and generate a PowerShell script the user can run locally. The script should:
git push command to runAlways detect the user's OS (check for Windows paths, PowerShell indicators) and generate
the appropriate script format (.ps1 for Windows, .sh for Mac/Linux).
If adding to an existing marketplace repo:
marketplace.json to add the new plugin entryCreate a .plugin file (a zip) for direct Cowork installation:
cd /path/to/plugin-dir
zip -r /tmp/plugin-name.plugin . -x "*.DS_Store"
cp /tmp/plugin-name.plugin /path/to/outputs/
Always create the zip in /tmp/ first, then copy to outputs. The .plugin file renders
as an interactive card in Cowork where the user can browse files and install with one click.
Deliver to the user:
.plugin file for immediate Cowork installation/plugin marketplace add owner/repo/plugin marketplace add owner/repo then /plugin install name@marketplacegit clone + bash openclaw-install.shWhen the user already has a marketplace repo and wants to add a new plugin:
marketplace.json plugins arrayWhen the user says "turn this into a plugin" or has skills/agents/workflows already built:
references/marketplace-structure.md)When the user wants to update a published plugin:
plugin.json and marketplace.jsonBefore declaring done, verify:
plugin.json has name field (kebab-case)marketplace.json has correct source path ("./plugin-name", not nested)plugins/name and description in frontmattername, description, and model in frontmatterdescription in frontmatter.plugin file contains all expected files${CLAUDE_PLUGIN_ROOT} for intra-plugin refs)