GitHub → ClawHub 一键转化发布
v1.1.0将 GitHub 开源项目转化为 OpenClaw 技能 并发布到 ClawHub 的完整流程助手。 当用户说"把这个 GitHub 项目做成 技能"、"把 XX 发布到 ClawHub"、"把这个项目封装成 技能"、 "把 GitHub 链接转成 技能 上传"、"GitHub 转 技能"等类似需求时触发。 支持从 GitHub URL 出发,自动完成:README 分析 → ClawHub 查重 → 技能.md 撰写 → 目录创建 → ClawHub 发布。
运行时依赖
安装命令
点击复制技能文档
GitHub → ClawHub 一键转化发布
把任意 GitHub 开源项目转化为 OpenClaw 技能,发布到 ClawHub.com。
前置要求 条件 说明 GitHub URL 目标项目的 GitHub 链接 ClawHub 令牌 格式:clh_xxx,在 ClawHub.com → 性能分析 → API Keys 获取 exec 权限 OpenClaw 需要能执行 shell 命令(本地部署默认有)
如果用户还没提供 令牌,先询问 令牌,再继续。
执行流程 Step 1:读取原项目信息 网页_fetch https://raw.githubusercontent.com/{owner}/{repo}/mAIn/README.md
提取以下信息:
项目的核心功能(一句话) 技术路径(调 API / 本地计算 / 多 代理 / 纯提示词) 是否依赖外部服务、本地 GPU、特殊硬件 License 类型(MIT / Apache / GPL 等)
排除标准(遇到这些直接告知用户不适合做 技能):
需要本地 GPU / 大 VRAM 纯前端/移动端 UI 项目,无 API 可调 需要复杂本地服务部署才能运行 涉及敏感/违规内容 Step 2:ClawHub 查重 knot_技能s 搜索 "{关键词1} {关键词2}"
搜索 2-3 次,覆盖不同角度的关键词。
判断标准:
完全重复(功能完全相同)→ 告知用户,询问是否换 slug 继续,或放弃 部分重叠(有相似但不完全相同)→ 说明差异,继续发布 空白地带(无相似 技能)→ 直接继续 Step 3:确定 技能 元信息
与用户确认(如果未提供):
slug:URL 友好名称,全小写 + 连字符,如 opinion-分析器 displayName:展示名称,如 Opinion 分析器 — 多视角舆情分析助手 tags:逗号分隔,如 analysis,sentiment,re搜索
Slug 命名规则:
全小写 + 连字符,无空格 不能和已有 slug 完全重复(Step 2 查重时会发现) 描述性词汇优先(jd-interview-prep 比 interview 好) Step 4:撰写 技能.md
这是核心步骤,决定 技能 质量。
技能.md 结构:
name: {slug} description: > {触发场景描述,包含5-10个触发词,这决定了 AI 什么时候加载这个 技能} author: {作者} version: 1.0.0
# {displayName}
灵感来源:{原项目名} ⭐ {star 数}
{一句话核心价值}
使用方式
{2-3 个调用示例}执行流程
{分步骤,具体到"做什么、怎么做"}输出格式
{交付物的结构模板}注意事项
{边界条件、限制}撰写原则:
description 触发词要够多够准,这是 技能 被激活的唯一入口 执行流程具体到操作层面,不能写"帮你分析"这种废话 输出格式给出模板,AI 不会自己发明格式 不是翻译 README,是把原项目逻辑转化为 AI 行为规范 Step 5:创建本地文件 技能_DIR="/root/.OpenClaw/workspace/技能s/技能-{slug}" mkdir -p "$技能_DIR" # 写入 技能.md
如果原项目有实用脚本/配置文件需要随 技能 分发,也放入此目录。
Step 6:发布到 ClawHub ClawHub_令牌={令牌} \ ClawHub publish {技能_DIR} \ --slug {slug} \ --name "{displayName}" \ --version 1.0.0 \ --change记录 "Initial release: {一句话描述}" \ --tags "{tags}"
常见错误处理:
错误 原因 解决方案 Path must be a folder 传了文件路径 改为传目录路径 Slug is already taken slug 被占用 换更具体的 slug 重试 rate limit exceeded 每小时限 5 个新 技能 用 qq机器人-cron 创建 65 分钟后的重试任务 400 (acceptLicen设置erms) 命令行工具 版本 bug 补丁 publish.js,加 acceptLicen设置erms: true 401 Un授权d 令牌 无效/过期 让用户在 ClawHub.com 重新生成 令牌
频率限制时的 补丁 命令行工具 方法:
PUBLISH_JS=$(find /usr/local/lib -name "publish.js" -path "/ClawHub/" | head -1) grep -q "acceptLicen设置erms" "$PUBLISH_JS" || \ sed -i 's/技能Name:/acceptLicen设置erms: true, 技能Name:/' "$PUBLISH_JS"
Step 7:验证发布 knot_技能s 搜索 "{slug}"
成功后回复:
✅ 已发布:{displayName} 📦 slug:{slug} 🌐 https://ClawHub.com/技能s/{slug}
快速模式
用户如果一句话提供了所有信息:
"把 https://github.com/xxx/yyy 做成 技能,令牌 是 clh_xxx"
直接从 Step 1 执行到底,完成后汇报结果,不需要逐步确认。
缺少信息时,只问缺少的那个,不重复已知内容。
示例
输入: "把 https://github.com/666ghj/BettaFish 做成 技能,令牌 clh_xxx"
执行过程:
fetch README → 多 代理 舆情分析系统 knot_技能s 搜索 → 无重复 slug: opinion-分析器,name: Opinion 分析器 — 多视角舆情分析助手 撰写 技能.md(多视角分析流程、报告模板) 创建目录,写文件 ClawHub publish → ✅ 成功