Skill Publisher

Security

将 Agent 技能发布到多个平台:ClawHub、GitHub Releases、SkillHub CN。支持验证、打包、版本管理和一键多平台发布。

Install

openclaw skills install skill-publisher-zlx

Skill Publisher

将本地 Agent 技能发布到多个平台。支持单平台发布、一键多平台发布,平台可扩展。

平台架构

采用插件式平台注册,每个平台是独立适配器,通过统一元数据声明自己的能力。

skill-publisher/
  SKILL.md
  scripts/
    publish.sh              # 主入口
    platform_registry.sh    # 平台注册表 & 能力发现
    platform_clawhub.sh     # ClawHub 适配器
    platform_github.sh      # GitHub Releases 适配器
    platform_skillhub.sh    # SkillHub CN 适配器
    validate.sh
    version.sh
    status.sh
  references/
    adding-platforms.md     # 如何添加新平台
    platform-interface.md   # 完整接口规范

平台适配器声明(manifest)

每个平台适配器在文件头部以注释形式声明元数据:

# @platform_name: clawhub
# @platform_label: ClawHub (OpenClaw Registry)
# @auth_method: cli          # cli | api_key | oauth | web_login | ssh_key | none
# @auth_check: clawhub whoami
# @auth_hint: "请先运行: clawhub login"
# @upload_type: tarball      # tarball | files | http_api | cli_tool
# @upload_command: clawhub publish
# @requires_bin: clawhub
# @install_hint: "npm i -g clawhub"
# @supports_changelog: true
# @supports_version: true

认证方式(@auth_method)

auth_method说明适配器职责
cliCLI 工具自带登录调用 CLI 检查登录态,给出登录提示
api_key环境变量或配置文件检查环境变量,提示设置方式
oauthOAuth 浏览器授权返回授权 URL,等待 token 输入
web_login浏览器登录(无 CLI)打开浏览器,提示粘贴确认码
ssh_keySSH 密钥认证检查密钥,提示添加到平台
none无需认证直接跳过

上传方式(@upload_type)

upload_type说明适配器职责
tarball打包 tar.gz 后上传主流程打包,适配器接收路径并上传
files逐文件上传遍历目录,逐文件调用上传接口
http_apiHTTP REST API构造 HTTP 请求上传
cli_tool委托第三方 CLI组装命令行并执行

标准函数接口

# 必选
platform_<name>_manifest       # 返回元数据 JSON
platform_<name>_check_auth     # 检查认证
platform_<name>_publish        # 执行发布

# 可选
platform_<name>_validate       # 平台特定验证
platform_<name>_status         # 查询远程版本/状态
platform_<name>_post_publish   # 发布后钩子
platform_<name>_help           # 平台帮助信息

主流程

publish <path> --to <platforms>
  │
  ├─ 1. validate       ← 全局验证
  ├─ 2. version check  ← 版本号管理
  ├─ 3. for each platform:
  │     ├─ manifest    ← 读取平台能力
  │     ├─ check_auth  ← 检查认证
  │     ├─ validate    ← 平台验证(可选)
  │     ├─ package     ← 按 upload_type 打包
  │     ├─ publish     ← 上传
  │     └─ post_publish ← 后钩子(可选)
  └─ 4. summary        ← 汇总结果

内置平台

🟢 ClawHub(OpenClaw 官方)

  • auth: cliclawhub login
  • upload: tarballclawhub publish
  • 支持 slug、changelog、版本管理

🟣 GitHub Releases

  • auth: cligh auth login
  • upload: cli_toolgh release create
  • 自动创建 tag,附带 tarball

🟠 SkillHub CN(腾讯云 ClawHub 镜像)

  • 地址: skillhub.cloud.tencent.com
  • 模式: mirror(ClawHub 镜像,发布到 ClawHub 后自动同步)
  • auth: 无需单独认证,通过 ClawHub 发布即可
  • 专为中国用户优化,国内高速下载

第三方扩展

参考 references/adding-platforms.md,社区可添加:

平台authupload说明
GitLab Packagesapi_keyhttp_apiREST API
Giteessh_keycli_toolgit push
自建 Registryapi_keyhttp_apiPOST tarball
飞书云盘oauthfileslark-cli 逐文件上传
ClawHub Mirrornonemirror自动同步,无需单独发布

命令

# 验证
skill-publisher validate <skill-path>

# 打包
skill-publisher package <skill-path> [--output <dir>] [--version <ver>]

# 发布
skill-publisher publish <path> --to <platform> [平台参数...]
skill-publisher publish <path> --to clawhub,github
skill-publisher publish <path> --to all
skill-publisher publish <path> --to <platform> --yes

# 版本管理
skill-publisher version <skill-path>
skill-publisher version <skill-path> --bump patch|minor|major
skill-publisher version <skill-path> --set <ver>

# 状态检查
skill-publisher status <skill-path>

# 平台管理
skill-publisher platforms list
skill-publisher platforms info <name>

安全规则

  • 发布前自动 validate,失败则中止
  • 不发布含敏感关键词的文件
  • 认证凭证不写入日志或输出
  • 所有发布操作需用户确认(--yes 跳过)
  • 每次发布记录到 ~/.openclaw/skill-publisher/history.jsonl(不含凭证)

参考

  • ClawHub CLI: clawhub --help
  • GitHub CLI: gh release create --help
  • SkillHub CN: https://skillhub.cn/
  • OpenClaw 技能规范: skill-creator skill