← Back to Skills Marketplace
cat-xierluo

ClawHub Sync

by xierluo · GitHub ↗ · v1.4.1 · MIT-0
cross-platform ⚠ suspicious
110
Downloads
0
Stars
1
Active Installs
3
Versions
Install in OpenClaw
/install clawhub-sync
Description
将本地开发的 Skills 批量同步到 ClawHub 平台。支持智能 .gitignore 过滤、白名单控制、增量同步、单个 skill 同步。本技能应在用户需要将本地 skills 发布到 ClawHub、批量同步技能、检查发布状态时使用。
README (SKILL.md)

ClawHub 同步工具

将本地开发的 Skills 批量同步到 ClawHub 平台。支持读取 .gitignore 智能忽略敏感文件和临时文件。

⚠️ ClawHub 许可证说明

ClawHub 平台强制使用 MIT-0 许可证(无需署名,允许商业使用)。

  • MIT 许可证的 skill 可以同步
  • CC-BY-NC-SA-4.0 等限制性许可证与 MIT-0 冲突,不应同步

详见 ClawHub Skill Format


前置条件

SKILL.md frontmatter 需包含必要字段:

---
name: skill-name
description: 技能描述
version: "1.0.0"  # 推荐但不强制
homepage: https://github.com/cat-xierluo/legal-skills  # 自动设置
---

使用方式

1. 登录 ClawHub(首次使用)

clawhub login

2. 验证发布内容

执行 dry-run 检查配置是否正确,不实际发布:

clawhub sync --dry-run

3. 同步技能

同步单个技能

clawhub sync skills/\x3Cskill-name>

同步所有技能

clawhub sync --all

注意:--all 会受 skills/clawhub-sync/config/sync-allowlist.yaml 约束。如果存在白名单文件,只同步其中列出的 skill。

交互式选择同步

用户可以指定要同步的技能列表,我会逐个执行同步命令。


单个 Skill 同步工作流

当需要同步指定的 skill(而非全部)时,使用此工作流。

前置检查

  1. 检查登录状态

    clawhub whoami
    
  2. 检查白名单

    • 读取 skills/clawhub-sync/config/sync-allowlist.yaml
    • 确认目标 skill 在白名单中(未被 # 注释)
  3. 检查许可证

    • 读取目标 skill 的 SKILL.md frontmatter 中的 license 字段
    • 只有 MIT 许可证的 skill 才能同步
    • CC-BY-NC-SA-4.0 等限制性许可证不应同步

版本检测

比较两个版本号:

来源 位置 格式
新版本 skills/\x3Cskill-name>/SKILL.md frontmatter 的 version "1.2.0"
已记录版本 skills/clawhub-sync/config/sync-records.yaml 中的 version "1.1.0"

版本比较逻辑(语义化版本):

new_version > recorded_version → 需要同步
new_version == recorded_version → 跳过(无变化)
new_version \x3C recorded_version → 警告(版本回退?)
recorded_version 为 null → 需要同步(首次发布)

执行同步

步骤 1:准备发布目录

bash skills/clawhub-sync/scripts/prepare-publish.sh skills/\x3Cskill-name>

步骤 2:执行发布(使用 publish 命令)

clawhub publish /tmp/clawhub-publish-\x3Cskill-name> \
  --version "\x3C新版本号>" \
  --changelog "\x3C变更说明>"

为什么用 publish 而不是 sync

  • clawhub sync 会扫描所有目录的 skills,可能遇到 slug 冲突
  • clawhub publish \x3Cpath> 只发布指定路径的单个 skill,更精确

步骤 3:更新同步记录

更新 skills/clawhub-sync/config/sync-records.yaml

\x3Cskill-name>:
  version: "\x3C新版本号>"
  last_sync: "\x3CISO 8601 时间>"
  git_hash: "\x3C当前 commit hash>"
  status: synced
  changelog_summary: "\x3C变更说明>"
  url: "https://clawhub.ai/skills/\x3Cskill-name>"
  publish_id: "\x3C从命令输出获取>"

示例:同步 git-batch-commit

# 1. 检查白名单
grep "git-batch-commit:" skills/clawhub-sync/config/sync-allowlist.yaml
# 输出:git-batch-commit:           # MIT

# 2. 比较版本
# SKILL.md: version: "1.2.0"
# sync-records.yaml: version: "1.1.0"
# 结论:1.2.0 > 1.1.0,需要同步

# 3. 准备发布
bash skills/clawhub-sync/scripts/prepare-publish.sh skills/git-batch-commit

# 4. 执行发布(使用 publish 命令)
clawhub publish /tmp/clawhub-publish-git-batch-commit \
  --version "1.2.0" \
  --changelog "添加 ClawHub 同步工作流"

# 5. 更新记录
# 编辑 sync-records.yaml,更新 git-batch-commit 条目

失败处理

  • 同步失败时记录 status: failed
  • 不重试,让用户决定后续操作
  • 记录失败原因到 changelog_summary

同步策略

版本号处理

  • 从技能的 CHANGELOG.md 第一行提取版本号
  • 格式要求:## [x.y.z] - YYYY-MM-DD
  • 自动处理 v 前缀(v1.0.01.0.0

自动字段

字段 处理方式
homepage 自动设置为 GitHub 仓库地址
version 从 CHANGELOG.md 提取(如 SKILL.md 中未指定)

同步范围控制(白名单机制)

配置文件: skills/clawhub-sync/config/sync-allowlist.yaml(skill 自包含)

优先级:白名单 > 默认忽略规则

  • 如果 skills/clawhub-sync/config/sync-allowlist.yaml 存在:只同步文件中列出的 skill
  • 如果 skills/clawhub-sync/config/sync-allowlist.yaml 不存在:使用默认忽略规则(忽略 test/、private-skills/、node_modules/)

配置格式:

# legal-qa-extractor:    # 带 # 表示不发布
legal-qa-extractor:       # 无 # 表示发布
litigation-analysis:

配置文件: skills/clawhub-sync/sync-allowlist.yaml(skill 自包含)

文件过滤规则

发布时会自动应用 .gitignore 过滤规则,确保敏感文件和临时文件不会被上传。

双重过滤机制

  1. 项目根目录 .gitignore - 自动检测 Git 仓库根目录的 .gitignore
  2. 技能内部 .gitignore - 如果技能目录有自己的 .gitignore,会额外应用

默认排除(始终生效):

  • .git/ - Git 目录
  • node_modules/ - Node.js 依赖
  • __pycache__/ - Python 缓存
  • .DS_Store - macOS 系统文件

同步流程

每次同步前,会自动:

  1. 创建临时目录 - 在 /tmp/clawhub-publish-\x3Cskill-name> 创建临时目录
  2. 复制过滤后的文件 - 使用 rsync 遵循 .gitignore 规则复制文件
  3. 发布到 ClawHub - 从临时目录执行发布命令
  4. 清理临时目录 - 发布完成后自动清理

手动准备发布目录

如需手动检查将要发布的文件:

# 准备发布目录(不实际发布)
bash skills/clawhub-sync/scripts/prepare-publish.sh skills/trademark-assistant

# 检查临时目录内容
ls -la /tmp/clawhub-publish-trademark-assistant/

安全最佳实践

发布前检查清单

  • 确认 .gitignore 包含所有敏感文件模式
  • 使用 prepare-publish.sh 检查将要发布的文件
  • 不要在技能中包含 API keys、密码等
  • 使用 .env.example 代替 .env 文件

常见敏感文件

  • .env - 环境变量(使用 .env.example 作为模板)
  • config.yaml - 配置文件(使用 config.example.yaml 作为模板)
  • *.db, *.sqlite - 数据库文件
  • logs/ - 日志目录
  • downloads/, output/ - 输出目录

修复已发布的技能

如果发现已发布的技能包含敏感信息:

  1. 立即更新 - 从技能目录中删除敏感文件
  2. 更新 .gitignore - 确保未来不会再次包含
  3. 重新发布 - 使用 clawnet publish 更新 ClawHub 上的技能
  4. 联系 ClawHub 支持 - 如果需要删除旧版本

重要提醒

  • ClawHub 是公开平台:发布的技能任何人都可以访问
  • 不要包含客户信息:案例文件、沟通记录等应排除
  • 不要包含凭证:API keys、tokens 等应使用环境变量

常见问题

版本号未更新?

检查 CHANGELOG.md 格式:

## [1.0.0] - 2026-03-21

### 新增
- 新功能描述

同步失败?

  1. 运行 clawhub sync --dry-run 检查配置
  2. 确认 SKILL.md frontmatter 格式正确
  3. 检查登录状态:clawhub whoami

输入/输出

输入

  • 必需:本地开发的 skill 目录
  • 可选:指定技能名称列表、白名单配置

输出

  • 同步结果报告(成功/失败列表)
  • 错误信息(如有)

同步记录

每次同步后,会更新 config/sync-records.yaml 记录文件,便于溯源和增量同步。

记录字段

字段 说明
version 同步时的版本号
last_sync 最后同步时间 (ISO 8601)
git_hash 同步时的 commit hash
status synced / pending / failed
changelog_summary 变更摘要
url ClawHub 发布地址
publish_id ClawHub 内部 ID

记录示例

trademark-assistant:
  version: "1.5.0"
  last_sync: "2026-03-24T16:42:00+08:00"
  git_hash: "f5f0726"
  status: synced
  changelog_summary: "新增商标说明撰写、图形商标分析、商品清单生成"
  url: "https://clawhub.ai/skills/trademark-assistant"
  publish_id: "k97fmhvcnrh1tn2msya98nbxxd83gspe"

用途

  1. 增量同步:只同步 status: pending 或版本更新的 skill
  2. 溯源:通过 git_hash 追溯发布时的代码状态
  3. 快速访问:通过 url 直接访问 ClawHub 上的 skill 页面
Usage Guidance
要点总结与建议: - 这是一个用于将本地 skills 发布到 ClawHub 的文档化工具,功能自洽,但在 metadata 中没有声明它实际需要的外部命令(至少需要 clawhub CLI 与 rsync/basicshell)。在运行前请确保系统已安装并信任这些工具。 - 在首次运行前:检查并理解 skills/clawhub-sync/config/sync-allowlist.yaml 和 config/sync-records.yaml,避免意外发布不应公开的 skill。 - prepare-publish.sh 会读取项目根和技能目录下的 .gitignore 并使用 rsync 的 --filter 从这些文件加载规则。手工审查这些 .gitignore(以及技能目录)以确认敏感文件(.env、private keys、数据库、日志等)确实被排除。 - 文档中提到的许可证检查和 sync-records 的更新多数是手动步骤;该仓库并不会自动验证/强制许可证或自动更新记录。若你需要强制化检查或自动化更新,应在流程中加入明确的自动化步骤或额外脚本,并在 metadata 中声明依赖。 - 若你对授权/凭证安全敏感:在运行 clawhub login 或 publish 之前,使用隔离环境或短期凭证,并在发布后审计已发布内容的实际文件列表(prepare-publish.sh 会在最后输出临时目录路径,可先检查再 publish)。 - 总体判断:行为并不明显恶意,但存在工程不一致(未声明的依赖和部分仅文档化的检查),因此建议谨慎安装并在受控环境中先做一次 dry-run 并逐步验证。
Capability Assessment
Purpose & Capability
Skill 名称/描述(将本地 skills 同步到 ClawHub)与包含的脚本和说明基本一致 — 它确实准备发布目录并指导使用 ClawHub CLI 发布。唯一值得注意的是 registry 元数据标注“Required binaries: none”,但运行说明和脚本显式依赖外部工具(例如 clawhub CLI、rsync、bash),这些并未在 metadata 中声明。
Instruction Scope
SKILL.md 的运行指令限定在发布流程:检查登录、读取白名单、读取/比较 SKILL.md frontmatter、构建临时发布目录(/tmp)、调用 clawhub publish 并更新 sync-records.yaml。没有发现指令要求读取系统范围凭证或将数据上报到不明外部端点。注意:许可证检查和版本记录的更新在文档中是手动/流程性步骤(由用户或调用者执行),并非被脚本自动强制执行。
Install Mechanism
这是一个 instruction-only skill(没有安装规范,也没有从不可信 URL 下载内容),唯一的可执行文件是 scripts/prepare-publish.sh(包含在包内)。没有发现不安全的下载或写入到非标准位置的安装步骤。
Credentials
清单显示不需要任何环境变量或凭据,但运行流程实际依赖 ClawHub CLI 的身份(clawhub login / whoami)和本地 Git 仓库信息;这些外部依赖没有在元数据中声明。虽然该 skill 本身不请求凭证,但用户若运行会需要向 clawhub CLI 提供认证信息 — 这应该在元数据/说明中明确。
Persistence & Privilege
没有请求常驻(always)权限,也没有修改其他 skills 的配置。脚本只在 /tmp 下创建临时目录并读取本地仓库与配置文件(sync-allowlist.yaml、sync-records.yaml);没有发现试图持久化到系统配置或偷窃凭证的行为。
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install clawhub-sync
  3. After installation, invoke the skill by name or use /clawhub-sync
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.4.1
修复 display name
v1.4.0
新增单个 Skill 同步工作流、版本号检测、前置检查、增量同步;改用 clawhub publish 命令避免 slug 冲突
v1.3.0
重构目录结构,调整定位为通用本地 skills 同步工具
Metadata
Slug clawhub-sync
Version 1.4.1
License MIT-0
All-time Installs 1
Active Installs 1
Total Versions 3
Frequently Asked Questions

What is ClawHub Sync?

将本地开发的 Skills 批量同步到 ClawHub 平台。支持智能 .gitignore 过滤、白名单控制、增量同步、单个 skill 同步。本技能应在用户需要将本地 skills 发布到 ClawHub、批量同步技能、检查发布状态时使用。 It is an AI Agent Skill for Claude Code / OpenClaw, with 110 downloads so far.

How do I install ClawHub Sync?

Run "/install clawhub-sync" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is ClawHub Sync free?

Yes, ClawHub Sync is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does ClawHub Sync support?

ClawHub Sync is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created ClawHub Sync?

It is built and maintained by xierluo (@cat-xierluo); the current version is v1.4.1.

💬 Comments