Skills clawhub-publisher
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/antonia-sz/clawhub-publish-skill" ~/.claude/skills/clawdbot-skills-clawhub-publisher && rm -rf "$T"
manifest:
skills/antonia-sz/clawhub-publish-skill/SKILL.mdsource content
ClawHub Publisher — Skill 自动发布器
把本地 skill 目录一键发布到 clawhub.com,自动处理所有已知坑。
需要用户提供
| 参数 | 说明 | 示例 |
|---|---|---|
| 本地 skill 文件夹(必须包含 SKILL.md) | |
| 格式 ,clawhub.com → Profile → API Keys 获取 | |
| URL 名称,全小写+连字符 | |
| 展示名称 | |
| 逗号分隔(可选) | |
如果缺少任何必填项,只问缺少的那个,不要重复已知信息。
执行流程
Step 1:环境检查
# 确认 clawhub CLI 已安装 which clawhub || npm install -g clawhub clawhub --version # 确认 skill 目录存在且包含 SKILL.md ls {skill_dir}/SKILL.md
Step 2:Patch CLI(如需要)
clawhub CLI 存在一个 bug:publish 时 payload 缺少
acceptLicenseTerms: true,服务端会返回 400。
检查并修复:
PUBLISH_JS=$(find /usr/local/lib /usr/lib -name "publish.js" -path "*/clawhub/*" 2>/dev/null | head -1) # 检查是否已 patch grep -q "acceptLicenseTerms" "$PUBLISH_JS" && echo "已 patch" || \ # 在 payload 构建处加入 acceptLicenseTerms: true sed -i 's/skillName:/acceptLicenseTerms: true, skillName:/' "$PUBLISH_JS" && echo "patch 完成"
💡 patch 是幂等的,重复执行无害。
Step 3:查重(可选但推荐)
# 用 knot_skills 搜索是否已有同名/同功能 skill knot_skills search "{slug关键词}"
如果发现完全重复的 skill,告知用户,询问是否继续(换 slug 或放弃)。
Step 4:执行发布
CLAWHUB_TOKEN={token} \ clawhub publish {skill_dir} \ --slug {slug} \ --name "{displayName}" \ --version {version:-1.0.0} \ --changelog "{changelog:-Initial release}" \ --tags "{tags:-latest}"
Step 5:错误处理
遇到以下错误时,按对应方案处理:
→ 检查传入的是目录路径还是文件路径,修正后重试Error: Path must be a folder
/ slug already taken
→ 在 slug 后加 409
-v2 或更具体的后缀,询问用户确认后重试
/ rate limit exceeded
→ 使用 qqbot-cron skill 创建定时重试任务:429
约 65 分钟后执行相同的 publish 命令 任务名:clawhub-publish-retry-{slug} 完成后通知用户
(含 acceptLicenseTerms)
→ 重新执行 Step 2 的 patch,再重试400 Bad Request
→ token 无效或已过期,请用户在 clawhub.com 重新生成401 Unauthorized
Step 6:验证上架
knot_skills search "{slug}"
发布成功后回复:
✅ 发布成功:{displayName} 📦 slug:{slug} 🌐 https://clawhub.com/skills/{slug} 安装命令:clawhub install {slug}
快速调用示例
用户说:
"把 /workspace/skills/SKILL-my-tool 发布到 clawhub,token 是 clh_abc,slug 用 my-tool"
直接执行 Step 1-6,完成后汇报结果,无需逐步确认。