SkillHub 发布助手
> 把本地 Skill 一键发布到 SkillHub:装 CLI → 登录 → 预检 → 发布 → 审核跟进。
何时使用
- 「把这个 skill 发布到 SkillHub」「上架技能」「帮我发到 skillhub」
- 已有 skill 目录 /
.zip,想走 CLI 发布(而非网页手传) - 排查:
command not found: skillhub、Windows 下 CLI 报路径错误、发布报 401 / 403 / 409 / 429
前置条件(缺一不可)
| 条件 | 说明 |
|---|---|
| 账号已实名 | 未实名无法创建 Token,发布报 403(须网页人脸核身) |
| API Token | 形如 skh_...,网页「个人中心 → API keys」创建,完整值仅显示一次 |
python3 在 PATH |
CLI 本体是 Python 脚本(非二进制),故与操作系统无关 |
| SKILL.md frontmatter | 至少含 slug / version / displayName,缺失即阻断发布 |
> ⚠️ slug 提交后不可修改、全网唯一。发布前务必定稿(建议带个人 handle 前缀避免冲突)。
标准流程
第 0 步 · 发布前自检
确认 SKILL.md 头部字段齐备(八要素):
---
slug: your-skill-slug # 必填,kebab-case,全网唯一,不可改
displayName: 你的技能名 # 必填,对外展示名
version: 1.0.0 # 必填,SemVer
summary: 一句话简介 # 建议
license: MIT # 建议
---
建议再补齐:description(含输入/输出/边界)、category + 子类、tags、changelog、icon.svg(纯 SVG,平台禁位图)、3 个使用案例。分类枚举见 SkillHub发布物料规范.md。
第 1 步 · 安装 / 修复 CLI
bash scripts/setup_cli.sh
脚本会:检查 python3 → 下载官方 kit → install.sh --cli-only --no-skills --no-self-upgrade → 重写 wrapper 修复 Windows 路径转换 → 写入 PATH 并验证版本。可重复执行。
第 2 步 · 登录
skillhub login --key skh_你的Token --host https://api.skillhub.cn
skillhub auth whoami # 应返回 userId / handle / role 三行
第 3 步 · 预检(不发布)
skillhub publish <目录或.zip> --dry-run
出现 ✓ Dry-run passed: <slug>@<version> 即合规。此步纯本地校验,不需登录。
第 4 步 · 正式发布
skillhub publish <目录或.zip> --changelog "首次发布 v1.0.0"
成功输出 ✓ Published: skillId=<数字>。CLI 同时支持目录与 .zip 两种输入。
第 5 步 · 收尾(须网页完成)
- 查审核:skillhub.cn → 个人中心 →「我的 Skill」。审核通过前详情页/搜索不可见属正常。
- 设图标:CLI 不会自动上传头像,须在详情页手动设
iconUrl(用包内icon.svg)。 - 配计费:若为付费技能,后台确认计费模式与收款渠道(如「按调用量 ¥x/次 + 支付宝个人」)。
- 实测:审核通过后调用一次,确认「扣费 → 正常返回」闭环。
Windows / Git Bash 关键适配
> 官方教程写「Windows 请使用 WSL」,实测不必:CLI 是纯标准库 Python 脚本。
唯一的坑是 MSYS 路径转换:Git Bash 会把 wrapper 里的 /c/Users/... 误转成 d:\c\Users\...,导致 can't open file。
- ✅ 正确解法:wrapper 中用
cygpath -w只把 CLI 脚本自身路径转成 Windows 原生路径。 - ❌ 切勿全局
MSYS_NO_PATHCONV=1——它会把publish <dir>的目录参数也一并弄坏。 - 💡 传参建议:
publish传目录时,先cd进目录传.,或传 Windows 风格D:/path,最稳。
错误码速查
| 码 | 含义 | 处置 |
|---|---|---|
| 401 | Token 失效/被撤销 | 网页重建 Token 后重新 login |
| 403 | 未实名 | 网页完成实名认证后重试 |
| 409 | slug 被占用 | 改 SKILL.md 的 slug(加 handle 前后缀) |
| 429 | 触发限频 | 等约 1 分钟后重试 |
更多(含 status=None、审核期可见性、批量发布间隔)见 references/troubleshooting.md。
边界(本技能不做)
- 不代办注册 / 实名 / 建 Token(须网页)
- 不代填平台表单字段(iconUrl、计费渠道、分类)
- 不修改 skill 内容与版本号(只做打包与发布动作)
脚本
| 脚本 | 用途 |
|---|---|
scripts/setup_cli.sh |
安装/修复 CLI(幂等,含 Windows 适配) |
scripts/publish_skillhub.sh |
预检 + 发布一条龙(先 dry-run,通过才发) |
附:批量发布
需连发多个 skill 时,间隔 20–30 秒再发下一个,避免触发限频。