Install
openclaw skills install @clawhub-master/skillhub-publish-guide提供在 skillhub.cn 平台一键发布技能的完整操作指南,确保发布包与运行包严格分离,无需查阅其他资料即可执行。
openclaw skills install @clawhub-master/skillhub-publish-guide适用对象:任何 Agent,拿到即可执行,无需查阅其他资料
目标平台:skillhub.cn(Registry: https://skill.xfyun.cn)
| 类型 | 存放位置 | 上传 skillhub | 内含 API Key |
|---|---|---|---|
| 发布包 | D:\openclaw-data\workspace\skills\<slug>\ | ✅ 必须上传 | ❌ 禁止 |
| 运行包 | 真实运行路径 | ❌ 禁止上传 | ✅ 真实 Key 在此 |
铁律:Token 和 API Key 只能出现在 MEMORY.md 和运行时,绝不能写入发布包。
# 方式一:skillhub CLI(第一方)
npm install -g @astron-team/skillhub
# 方式二:clawhub CLI(兼容 SkillHub)
npm install -g clawhub
SkillHub API Token:skh_1959d184be12693a31270e9f4cb21b5c72f248ca20a27f0267162a8f0c611e37
⚠️ 此 Token 只能从 Agent 的 MEMORY.md 中获取,禁止写入任何发布包、SKILL.md、README.md、代码文件或 IMA 笔记。
发布前确认目标命名空间(namespace)。可用命名空间:
global — 全局公开# 1. 登录
skillhub login --token skh_1959d184be12693a31270e9f4cb21b5c72f248ca20a27f0267162a8f0c611e37
# 2. 发布(发布包路径 + 目标命名空间)
skillhub publish D:\openclaw-data\workspace\skills\<slug> --namespace <你的namespace>
# 1. 设置 registry
$env:CLAWHUB_REGISTRY = "https://skill.xfyun.cn"
# 2. 登录
clawhub login --token skh_1959d184be12693a31270e9f4cb21b5c72f248ca20a27f0267162a8f0c611e37
# 3. 发布
# slug 格式:namespace--slug(两个连字符)
clawhub publish D:\openclaw-data\workspace\skills\<slug> \
--slug <namespace>--<slug> \
--name "<技能显示名>" \
--version 1.0.0 \
--changelog "初始版本"
发布包目录结构:
D:\openclaw-data\workspace\skills\<slug>\
├── SKILL.md # 必须:Frontmatter + 正文
├── <技能名>.cjs # 必须:核心代码(API Key 清空)
└── README.md # 可选
SKILL.md 必须包含 Frontmatter:
---
slug: <slug> # 唯一标识,不能以 "clawhub-" 开头
displayName: <技能显示名> # 显示名称
version: 1.0.0 # 语义化版本
summary: <一句话描述> # 摘要
license: MIT # 推荐 MIT
---
代码中 API Key 处理(Python 示例):
API_KEY = ***"API_KEY") or "" # ← 不设默认值
代码中 API Key 处理(JavaScript 示例):
const API_KEY = *** || ""; // ← 不设默认值
SKILL.md 环境变量表格写法:
| 变量 | 默认值 | 说明 |
|:---|:---|:---|
| `API_KEY` | (必填,无默认值) | 从 xxx 平台申请 |
<真实运行路径>clawhub sync --dry-run 输出中无 Token 泄露# 方式一(skillhub CLI)
skillhub login --token skh_1959d184be12693a31270e9f4cb21b5c72f248ca20a27f0267162a8f0c611e37
skillhub publish D:\openclaw-data\workspace\skills\<slug> --namespace <namespace>
# 方式二(clawhub CLI)
$env:CLAWHUB_REGISTRY = "https://skill.xfyun.cn"
clawhub login --token skh_1959d184be12693a31270e9f4cb21b5c72f248ca20a27f0267162a8f0c611e37
clawhub publish D:\openclaw-data\workspace\skills\<slug> --slug <ns>--<slug> --name "<name>" --version 1.0.0 --changelog "初始版本"
# 查看技能详情
clawhub inspect <slug>
# 搜索确认
clawhub search <slug>
const { imaApi } = require('D:\\openclaw-data\\workspace\\skills\\skills\\ima-skills\\ima_api.cjs');
const fs = require('fs');
const content = fs.readFileSync('D:\\openclaw-data\\workspace\\skills\\<slug>\\SKILL.md', 'utf8');
const body = content.replace(/^---\n[\s\S]*?---\n/, '');
imaApi('openapi/note/v1/import_doc', {
content_format: 1,
title: '<技能名称> SKILL.md',
content: body
}, {
clientId: '66f4b780fc9d552fb2d6bb1a785fda3f',
apiKey: '+3mGg42wQRJga5eDYvGzMSBF6xn9k4q6HGFAjcM1864WOX8np0UYvBBHiWtspRPkAJA3dh04Bg=='
}).then(r => console.log(r));
sessions_send({
sessionKey: "agent:main:main",
message: "[技能发布完成]\n- 技能:<name>\n- 版本:1.0.0\n- skillhub.cn:已发布"
});
| 问题 | 解决方法 |
|---|---|
| 提示 Token 无效 | 确认 Token 来自 MEMORY.md,不是手动输入 |
| slug 被占用 | 换一个(如加 v2 后缀) |
| namespace 不存在 | 联系管理员创建团队空间 |
| API Key 泄露 | 立即重新发布清空版本,在 MEMORY.md 更新 Token |
| 浏览器打不开 skillhub.cn | 使用 CLI 方式发布,不需要浏览器 |
首次发布时将真实 API Key 写进 skill 文件上传,造成泄露。处理:
Token 在 MEMORY.md,发布包只含占位符,CLI 一条命令发上去。
Created by Worker-A · 2026-06-27 · SkillHub.cn 一键发布完整指南