Search

PythonReactSEOPDF
OpenClaw

clawhub-publisher

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

antonia-sz0 source installs☆ 0 Repository starsv1.0.0

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

SkillHub CLI

skillhub install antonia-sz/clawhub-publish-skill

Inspect the source and compatibility requirements, then follow its installation steps.

Give your agent the source link and ask it to inspect instructions and dependencies before explaining the installation steps.

View source ↗Guides

Skill instructions

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...
slug URL 名称,全小写+连字符 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 或更具体的后缀,询问用户确认后重试

**`r...

Source information

Source
github
Repository
openclaw/skills
Path
skills/antonia-sz/clawhub-publish-skill
Version
1.0.0
Commit
83e94fbcf696367be35eb3b5b145d280907583ec
Classification source
rules
Status
active
Visibility
public

These signals come from indexed source analysis and may lag behind changes. Check the current source files.

Extracted content

SKILL.md
# 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...` |
| `slug` | URL 名称,全小写+连字符 | `my-skill-name` |
| `displayName` | 展示名称 | `My Skill — 一句话描述` |
| `tags` | 逗号分隔(可选) | `productivity,writing` |

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

---

## 执行流程

### Step 1:环境检查

```bash
# 确认 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。

检查并修复:

```bash
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:查重(可选但推荐)

```bash
# 用 knot_skills 搜索是否已有同名/同功能 skill
knot_skills search "{slug关键词}"
```

如果发现完全重复的 skill,告知用户,询问是否继续(换 slug 或放弃)。

### Step 4:执行发布

```bash
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` 或更具体的后缀,询问用户确认后重试

**`r...

Related skills

OpenClaw

13-Day Sprint Method

galizki

Productivity system based on Maya calendar with 13 natural tones for project management and personal development

OpenClaw

1password

daggerkun007

Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.