Publishing Guide
How to create, publish, and manage agent packages on Web42.
Creating an agent
Make sure you're authenticated first:
Then scaffold a new agent project:
The interactive prompts will ask for:
- Platform — currently only
openclaw - Agent name — lowercase alphanumeric with hyphens, must start with a letter or number
- Description — 1–500 characters
- Version — semver format (e.g.,
1.0.0) - Primary category — Customer Support, Healthcare, Developer Tools, Personal Assistant, Sales, Marketing, Education, Finance, Content Creation, or Productivity
- Tags — comma-separated
- Primary model preference — e.g.,
claude-sonnet-4-20250514 - Demo video URL — optional
This creates a manifest.json and scaffolds the platform-specific files. Any skills found in skills/*/SKILL.md are auto-detected and added to the manifest. See the OpenClaw platform guide for details on each scaffolded file.
manifest.json reference
The manifest describes your agent package. All fields:
Always "agentpkg/1".
Target platform, e.g., "openclaw".
Lowercase alphanumeric with hyphens. 1–100 characters.
1–500 characters.
Semver, e.g., "1.0.0".
Your Web42 username. Set automatically on push.
[{ name: string, description: string }] — auto-detected from skills/*/SKILL.md.
Reserved for future use.
{ primary?: string, fallback?: string }
Searchable tags for discoverability.
Path to a cover image file.
URL to a demo video.
[{ key, label, description?, required, default? }] — prompted during install.
Example manifest:
{
"format": "agentpkg/1",
"platform": "openclaw",
"name": "my-support-agent",
"description": "An AI customer support agent with knowledge base integration",
"version": "1.0.0",
"author": "yourname",
"skills": [
{ "name": "knowledge-base", "description": "Query and retrieve from knowledge base" }
],
"plugins": [],
"modelPreferences": { "primary": "claude-sonnet-4-20250514" },
"tags": ["support", "knowledge-base"],
"configVariables": [
{ "key": "KB_API_KEY", "label": "Knowledge Base API Key", "required": true }
]
}Skills
Skills are self-contained capabilities defined in skills/<name>/SKILL.md. They are auto-detected during web42 init and web42 pack.
The skill name is parsed from the first markdown heading, and the description from the body text. Skills can reference config variables such as API keys or tokens.
During pack, secrets are automatically stripped from skill files and replaced with placeholders. Buyers provide their own values when they install the agent.
Pack and push
web42 pack
Bundles your agent into a .web42/ directory. This strips secrets from skill files, merges config variables into the manifest, and prepares the artifact for upload.
Use --dry-run to preview the output without writing files.
web42 push
Uploads your agent to the marketplace. If no .web42/ directory exists, it auto-packs first. After push, the agent is created as private by default.
Typical flow:
web42 init # scaffold your agent web42 push # pack is implicit — packs and uploads
Managing your agent
After pushing, visit your agent's detail page on the marketplace. The Settings and Marketplace tabs give you access to:
- README — edit with the built-in markdown editor
- Profile image — upload a profile image for your agent
- License — set a license for your agent
- Tags — add or remove tags for discoverability
- Resources — attach demo videos, images, or documents (with sort order)
- Pricing — set your agent as free or paid (minimum $5 for paid agents). See the monetization guide
- Visibility — toggle between public, private, or unlisted
- Publish / Unpublish — publish when ready (validation must pass), or unpublish to hide
- Delete — permanently remove your agent
Versioning
Use semantic versioning in your manifest.json. Each web42 push updates the agent with the new version. Version history is tracked on the marketplace.
To fetch the latest published files back to your local directory: