Automate the full lifecycle of publishing OpenClaw skills: package → GitHub → ClawHub.
gh CLI authenticated ( gh auth status)npx clawhub CLI authenticated ( npx clawhub whoami)SKILL.mdbash
# From the skill directory
scripts/publish.sh /path/to/skill-folder --repo owner/repo-name --version 1.0.0
bash
# 1. Validate & package only
scripts/validate.sh /path/to/skill-folder
# 2. Push to GitHub
scripts/push-github.sh /path/to/skill-folder --repo owner/repo-name
# 3. Publish to ClawHub
npx clawhub publish /path/to/skill-folder --version 1.0.0 --slug skill-name
Ensure the skill folder contains:
text
skill-name/
├── SKILL.md (required — YAML frontmatter + markdown body)
├── LICENSE (recommended — MIT)
├── examples/ (optional — usage examples)
├── scripts/ (optional — helper scripts)
├── references/ (optional — reference docs)
└── assets/ (optional — templates, images, fonts)
SKILL.md frontmatter must include:
yaml
---
name: skill-name
description: Clear description of what the skill does and when to activate it
---
bash
cd /path/to/skill-folder
# Init if needed
git init
git add -A
git commit -m "feat: initial release of skill-name"
# Create repo and push
gh repo create owner/repo-name --public --source=. --push
If the repo already exists:
bash
git remote add origin https://github.com/owner/repo-name.git 2>/dev/null || true
git push -u origin main
bash
# Login if needed (opens browser)
npx clawhub login
# Publish with version
npx clawhub publish /path/to/skill-folder \
--version 1.0.0 \
--slug skill-name \
--name "Display Name" \
--tags "tag1,tag2"
# Verify
npx clawhub inspect skill-name
Note: ClawHub runs a security scan after publishing. The skill becomes searchable once the scan passes (usually within a few minutes).
bash
# 1. Make changes to the skill folder
# 2. Push to GitHub
cd /path/to/skill-folder
git add -A && git commit -m "fix: description of changes"
git push
# 3. Publish new version to ClawHub
npx clawhub publish /path/to/skill-folder --version 1.1.0
bash
npx clawhub publish /path/to/skill-folder \
--version 1.0.0 \
--slug my-fork-name \
--fork-of original-skill@1.0.0
bash
npx clawhub inspect skill-name
npx clawhub search skill-name
ErrorFix--version must be valid semverAdd --version x.y.z flagSkill is hidden while security scan is pendingWait a few minutes, then retry inspect``Not logged inRun npx clawhub login``gh: not authenticatedRun gh auth login``fatal: remote origin already existsSafe to ignore, or use git remote set-url
figma-plugin-writer)openclaw-figma-plugin-writer)1.0.0, 1.2.3)