Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Skill Publisher — ClawHub 一键发布器

v1.0.0

将本地 skill 目录发布到 clawhub.com 的自动化发布助手。 当用户说"发布这个 skill 到 clawhub"、"把 XX skill 上传到 clawhub"、 "clawhub publish"、"发布到 clawhub" 等时触发。 自动处理:token 验证、CLI bug patch、...

0· 348· 1 versions· 1 current· 1 all-time· Updated 11h ago· MIT-0
byantonia huang@antonia-sz

Install

openclaw skills install clawhub-publish-skill

ClawHub Publisher — Skill 自动发布器

把本地 skill 目录一键发布到 clawhub.com,自动处理所有已知坑。


需要用户提供

参数说明示例
skill 目录路径本地 skill 文件夹(必须包含 SKILL.md)/root/.openclaw/workspace/skills/SKILL-xxx
clawhub token格式 clh_xxx,clawhub.com → Profile → API Keys 获取clh_7XoVic...
slugURL 名称,全小写+连字符my-skill-name
displayName展示名称My Skill — 一句话描述
tags逗号分隔(可选)productivity,writing

如果缺少任何必填项,只问缺少的那个,不要重复已知信息。


执行流程

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 / 409 → 在 slug 后加 -v2 或更具体的后缀,询问用户确认后重试

rate limit exceeded / 429 → 使用 qqbot-cron skill 创建定时重试任务:

约 65 分钟后执行相同的 publish 命令
任务名:clawhub-publish-retry-{slug}
完成后通知用户

400 Bad Request(含 acceptLicenseTerms) → 重新执行 Step 2 的 patch,再重试

401 Unauthorized → token 无效或已过期,请用户在 clawhub.com 重新生成

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,完成后汇报结果,无需逐步确认。

Version tags

clawhubvk9798v2vmxgdnaehpsza0mdr9182mfendevtoolsvk9798v2vmxgdnaehpsza0mdr9182mfenlatestvk9798v2vmxgdnaehpsza0mdr9182mfenpublishvk9798v2vmxgdnaehpsza0mdr9182mfenworkflowvk9798v2vmxgdnaehpsza0mdr9182mfen