编程

skill-publisher

试用

将本地已编写完成的 SKILL.md 技能目录一键发布到多个公开市场(ClawHub、腾讯 SkillHub、 skills.sh、LobeHub、SkillsMP、Agensi、Coze、ClawMart),自动完成格式校验、双语 README、 敏感文件清理、Git 版本打标、串行发布与结果汇总。 当用户要把已经写好的 SKILL.md 同时分发到多个公开市场时使用——即使他们只说 "发布 skill"、"publish to clawhub"、"ship to marketplace"、"一键发布"或"上架 skill"。 不用于:纯本地 skill 管理、未完成 skill 的撰写、单个市场的单独发布指引。

它能做什么

将本地已编写完成的 SKILL.md 技能目录一键发布到多个公开市场(ClawHub、腾讯 SkillHub、 skills.sh、LobeHub、SkillsMP、Agensi、Coze、ClawMart),自动完成格式校验、双语 README、 敏感文件清理、Git 版本打标、串行发布与结果汇总。 当用户要把已经写好的 SKILL.md 同时分发到多个公开市场时使用——即使他们只说 "发布 skill"、"publish to clawhub"、"ship to marketplace"、"一键发布"或"上架 skill"。 不用于:纯本地 skill 管理、未完成 skill 的撰写、单个市场的单独发布指引。

技能文档

Skill Publisher — 多市场一键发布 v2.1

将本地 skill 目录同时发布到所有主流市场,自动处理各市场 CLI 差异和已知坑。

使用时机: 当用户拥有一个本地已完成、含 SKILL.md 的 skill 目录,并希望把它推到 一个或多个公开市场(ClawHub / SkillHub / skills.sh 等)。 不要使用: 仅做本地整理、为单个市场手写发布指南、或 skill 还在撰写阶段。


市场总览

#市场地址CLI认证审核变现安装命令
1ClawHubclawhub.aiclawhub publishAPI Token clh_xxx机器审核✅ 付费技能clawhub install
2腾讯 SkillHubskillhub.tencent.comskillhub push + publishskillhub login三线安全审核skillhub install
3skills.shagentskill.shGit tag + npxGitHub 公开npx skills add
4SkillsMPagentskills.ioAPI / 网页可选✅ 按次付费npx skills add
5LobeHub Skillslobehub.com/skillslobe-cliGitHub OAuth机器审核❌(生态内)lobe-cli skill add
6Agensiagensi.aiAPIAPI Key人工审核✅ 付费+抽成agensi skill publish
7Coze/扣子coze.cnAPICOZE_TOKEN人工审核✅ Bot订阅API 发布
8ClawMartclawmart.com网页账号✅ 月入$80k+第三方商店

用户参数

参数必填说明
skill_dir本地 skill 文件夹(需含 SKILL.md)
clawhub_token✅(ClawHub)ClawHub API Token,格式 clh_xxx
github_repo✅(skills.sh/Agensi)GitHub 仓库地址
coze_tokenCoze API Token(发布到扣子时需要)
agensi_keyAgensi API Key(发布到 Agensi 时需要)
markets目标市场列表,默认全部

缺少必填项时,只问缺少的那一项


执行流程(8步)

Step 1 — 环境与目录检查

ls {skill_dir}/SKILL.md || exit "❌ SKILL.md 不存在"
cat {skill_dir}/SKILL.md | head -30

# 检查各 CLI
which clawhub   || echo "⚠️ clawhub 未安装"
which skillhub  || curl -fsSL https://skillhub.cn/install/install.sh | bash
which lobe      || echo "⚠️ lobe-cli 未安装"
git --version

Step 2 — SKILL.md 格式校验

必填字段:namedescription(英文)、versionauthor,缺失任一则停止并告知

python3 -c "
import sys, re, yaml
content = open('{skill_dir}/SKILL.md').read()
m = re.match(r'^---\n(.*?)\n---', content, re.DOTALL)
if not m: sys.exit('❌ frontmatter 缺失')
data = yaml.safe_load(m.group(1))
for k in ['name','description','version','author']:
    v = data.get(k,'❌ 缺失')
    status = '✅' if v != '❌ 缺失' else '❌'
    print(f'{status} {k}: {v}')
    if v == '❌ 缺失': sys.exit(1)
"

Step 3 — 文档生成

文件语言必须包含
README.md英文安装命令(8个市场)、快速开始、文件结构
README.zh-cn.md中文同上,中文
RELEASE_NOTES.md中英发布内容 + 版本历史

README.md 安装命令必须覆盖:

# ClawHub (OpenClaw)
clawhub install {slug}

# 腾讯 SkillHub
skillhub install {slug}

# skills.sh / SkillsMP / LobeHub / Agensi / Coze
npx skills add {github_repo}
lobe-cli skill add {slug}
agensi skill publish {slug}

Step 4 — Git 打标签

skills.sh / SkillsMP / LobeHub 均依赖 Git tag 版本:

cd {skill_dir_parent}
git config --global user.email "jackyshen@uperform.cn" 2>/dev/null || true
git config --global user.name "jackyshen" 2>/dev/null || true

SKILL_VER=$(grep '^version:' {skill_dir}/SKILL.md | head -1 | cut -d: -f2 | tr -d ' ')
TARGET_TAG="v$SKILL_VER"
CURRENT_TAG=$(git tag --sort=-v:refname | head -1 2>/dev/null || echo "")

if [ "$CURRENT_TAG" = "$TARGET_TAG" ]; then
    echo "ℹ️ Tag $TARGET_TAG 已存在"
else
    git tag -a "$TARGET_TAG" -m "Release $TARGET_TAG"
    git push origin "$TARGET_TAG"
    echo "✅ Tag $TARGET_TAG 已推送"
fi

Step 5 — Bundle 清理

RM_LIST=".git .DS_Store .idea .vscode node_modules .env .env.* *.key *.pem credentials.* secrets.* *.log *.tmp *.bak"

echo "=== 将删除 ==="
for item in $RM_LIST; do find {skill_dir} -name "$item" 2>/dev/null; done

[ "$DRY_RUN" = "true" ] && echo "[DRY RUN]" && exit 0

for item in $RM_LIST; do
    find {skill_dir} -name "$item" -type d -exec rm -rf {} + 2>/dev/null
    find {skill_dir} -name "$item" -type f -delete 2>/dev/null
done
echo "✅ 清理完成"

Step 6 — 串行发布

6a. ClawHub( markets 包含 clawhub 时)

# CLI patch(已知 bug)
PUBLISH_JS=$(find /usr/local/lib /usr/lib ~/.npm -name "publish.js" 2>/dev/null | grep clawhub | head -1)
[ -n "$PUBLISH_JS" ] && ! grep -q "acceptLicenseTerms" "$PUBLISH_JS" && \
    sed -i 's/skillName:/acceptLicenseTerms: true, skillName:/' "$PUBLISH_JS"

CLAWHUB_TOKEN="***" \
clawhub publish {skill_dir} \
  --slug {slug} --name "{display_name}" --version {version} \
  --changelog "Release v{version}" --tags "latest"

sleep 3 && clawhub search {slug}
echo "✅ ClawHub 完成"

错误处理:

错误方案
slug already taken (409)slug 加 -v2
rate limit exceeded (429)等 65 分钟 cron 重试
400重跑 patch
401重新生成 token

6b. 腾讯 SkillHub( markets 包含 skillhub 时)

skillhub whoami 2>/dev/null || skillhub login

[ ! -f "{skill_dir}/skillhub.yaml" ] && \
    skillhub init --name {slug} --category "效率工具" --dir {skill_dir}

cd {skill_dir}
skillhub push --message "Release v{version}"
skillhub publish --version {version} --changelog "Release v{version}"

skillhub search {slug}
echo "✅ SkillHub 完成(审核约 5-10 分钟)"

6c. skills.sh( markets 包含 skillssh 时)

GH_REPO="{github_repo}"
curl -s "https://api.github.com/repos/$GH_REPO" | python3 -c "
import sys,json
try:
    d=json.load(sys.stdin)
    print('✅', d['full_name'], '| Stars:', d['stargazers_count'])
except: print('⚠️ Repo 不存在或未公开')
"
echo "✅ skills.sh 完成(安装: npx skills add $GH_REPO)"

6d. SkillsMP( markets 包含 skillsmp 时)

# SkillsMP 通过 GitHub repo 聚合,无需专门 publish
# 但可在 agentskills.io 注册以便有独立页面
echo "✅ SkillsMP: npx skills add {github_repo} 即可安装"
echo "   注册独立页面: https://agentskills.io/submit"

6e. LobeHub Skills( markets 包含 lobehub 时)

# LobeHub 使用 lobe-cli 或 GitHub repo 方式
# 方式1: lobe-cli(如已安装)
lobe-cli skill add {github_repo} 2>/dev/null && echo "✅ lobe-cli 添加成功" || true

# 方式2: 通过 GitHub 提交 PR 到 lobehub/lobe-chat
echo "✅ LobeHub: 提交 PR 到 https://github.com/lobehub/lobe-chat#skills"
echo "   或直接: npx skills add {github_repo}"

6f. Agensi( markets 包含 agensi 时)

# Agensi 有独立 API publish
curl -X POST https://api.agensi.ai/v1/skills/publish \
  -H "Authorization: Bearer {agensi_key}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "{slug}",
    "repo": "{github_repo}",
    "version": "{version}",
    "description": "...",
    "tags": ["productivity"]
  }'
echo "✅ Agensi 发布请求已提交(等待人工审核)"

6g. Coze( markets 包含 coze 时)

# Coze 通过 API 发布到 Bot store
curl -X POST "https://api.coze.cn/v1/skills" \
  -H "Authorization: Bearer {coze_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "{slug}",
    "description": "...",
    "icon_url": "...",
    "skill_type": "published"
  }'
echo "✅ Coze 发布请求已提交(等待人工审核)"

6h. ClawMart( markets 包含 clawmart 时)

# ClawMart 是第三方付费商店,引导用户手动发布
echo "✅ ClawMart: 手动发布到 https://clawmart.com/sell"
echo "   月收入 \$80k+,热门第三方付费技能商店"
echo "   可参考: https://clawmart.com/publish"

Step 7 — 结果汇总

=========================================
✅ 多市场发布完成

📦 ClawHub         clawhub.com/skills/{slug}     clawhub install {slug}
📦 腾讯 SkillHub   skillhub.tencent.com/skills   skillhub install {slug}
📦 skills.sh       agentskill.sh                 npx skills add {repo}
📦 SkillsMP        agentskills.io                npx skills add {repo}
📦 LobeHub         lobehub.com/skills            lobe-cli skill add {repo}
📦 Agensi          agensi.ai                    API publish(审核中)
📦 Coze            coze.cn                      API publish(审核中)
📦 ClawMart        clawmart.com                 手动发布
=========================================

全局参数

参数默认说明
DRY_RUNfalsetrue 时只检查不发布
markets全部8个指定市场列表,如 clawhub,skillhub,skillssh
--skip-*false跳过指定市场

已知限制

  1. 腾讯 SkillHub / Agensi / Coze 有人工审核,约 5-10 分钟
  2. LobeHub 推荐通过 GitHub PR 方式提交
  3. ClawMart 需手动网页发布,不支持 CLI
  4. 版本号必须递增,不允许重复版本发布
  5. 作者:jackyshen,优普丰定制版 v2.1.0

相关技能

将当前项目中的 Skill 发布到 GitHub 并同步到 ClawHub。新项目自动走完流程,已有仓库的项目会总结变更、确认提交信息和建议版本号。

16 次安装

技能发布 — 将已有 Skill 三平台同步推送到 GitHub + ClawHub + SkillHub。当用户说 技能发布到三平台/发布技能更新/迭代技能发布 时触发。⚠️ 本技能的行为范围(用户须知):① 推送代码到外部平台(GitHub/ClawHub/SkillHub),操作对外可见且可能不可逆 ② 同步到本地 TRAE 安装目录(会覆盖已有版本) ③ 在本地 docs/knowledge/ 追加发布日志。执行前会向用户确认。含安全审查、隐私清洗、版本号查重、仓库结构生成、ClawHub 自动文件排除、SkillHub dry-run 预检。Do NOT use for creating skill content, general coding, or non-skill projects.

5 次安装

Multi-hub skill publisher. Sign → Audit (placeholder) → Pack (clean tar.gz with exclude rules) → Publish to clawhub.com, skillhub.cn (Tencent Cloud), or GitH...

1 次安装

把本地 Agent / Skill / 工具包标准化发布到 GitHub 公开仓库。当用户要把本地文件转成开源 skill 上传时触发。 完整工作流:脱敏检查 → 文件结构对齐 github-project-radar 标准 → 建空仓 → 逐文件推送 → 补 topics / description / release。封装了今天踩过的所有坑(auto_init README 覆盖、URL 转码、 私改公开、topic 清理)。一次成功不再返工。

Quickly open-source a local skill to GitHub (primary) and optionally clawhub.com. Workflow: slug pre-check, fork to opensourceskills, strip internal info, normalize SKILL.md, generate LICENSE/README, init git, push to GitHub with configurable token source, and optionally publish to clawhub. Use when the user says "open-source this skill", "把这个 skill 开源", "发到 github", "publish skill publicly", or "把本地 skill 发开源". Hard rules: never modify the original skill in place, never auto-add force/yes flags, never write tokens to git/remote/memory, and ask the user at decision points.

1 次安装

将本地开发的 Skills 同步到 ClawHub、腾讯 SkillHub 与联想开放平台。支持智能 .gitignore 过滤、平台独立白名单、增量与单个 skill 同步。本技能应在用户需要将本地 skills 发布到上述平台、批量同步技能或检查发布状态时使用。