<p align="center"> <img src="public/clawd-logo.png" alt="ClawHub" width="120"> </p>
ClawHub 横幅
ClawHub
<p align="center"> <a href="https://github.com/openclaw/clawhub/actions/workflows/ci.yml?branch=main"><img src="https://img.shields.io/github/actions/workflow/status/openclaw/clawhub/ci.yml?branch=main&style=for-the-badge" alt="CI 状态"></a> <a href="https://discord.gg/clawd"><img src="https://img.shields.io/discord/1456350064065904867?label=Discord&logo=discord&logoColor=white&color=5865F2&style=for-the-badge" alt="Discord"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge" alt="MIT 许可证"></a> </p>
ClawHub 是 OpenClaw 的公共技能注册表:用于发布、版本管理和搜索基于文本的智能体技能(一个 SKILL.md 及其支持文件)。 它专为快速浏览和 CLI 友好的 API 设计,并提供审核钩子和向量搜索功能。 它还提供原生的 OpenClaw 软件包目录,用于管理代码插件、捆绑插件以及实验性的完整智能体 Claw 软件包。
<p align="center"> <a href="https://clawhub.ai">ClawHub</a> · <a href="VISION.md">愿景</a> · <a href="docs/clawhub.md">文档</a> · <a href="CONTRIBUTING.md">参与贡献</a> · <a href="https://discord.gg/clawd">Discord</a> </p>
你可以用它做什么
- 浏览技能并渲染其
SKILL.md。 - 使用变更日志和标签(包括
latest)发布新的技能版本。 - 重命名自己拥有的技能,同时不影响旧链接或安装结果。
- 将自己拥有的重复技能合并为一个规范 slug。
- 通过嵌入(向量索引)进行搜索,而不是依赖脆弱的关键词。
- 点赞和评论;管理员/版主可以整理和审核技能。
- 固定本地技能安装,使更新和强制重新安装无法覆盖被冻结的副本。
- 浏览带有家族/信任级别/能力元数据的 OpenClaw 软件包。
- 通过
/packagesAPI 和 CLI 流程发布原生代码插件和捆绑插件。 - 为实验性的完整智能体 Claw 软件包托管、发现和解析精确的软件产物。
工作原理(概览)
- Web 应用:TanStack Start(React、Vite/Nitro)。
- 后端:Convex(数据库 + 文件存储 + HTTP actions)+ Convex Auth(GitHub OAuth)。
- 搜索:OpenAI 嵌入(
text-embedding-3-small)+ Convex 向量搜索。 - API 架构 + 路由:
packages/schema(clawhub-schema)。
CLI
常见 CLI 流程:
- 身份验证:
clawhub login、clawhub whoami - 远程/无头身份验证:
clawhub login --device - 发现:
clawhub search ...、clawhub explore - 浏览统一目录(技能 + 插件):
clawhub package explore、clawhub package inspect <name> - 管理本地安装:
clawhub install @openclaw/demo、clawhub pin <skill>、clawhub unpin <skill>、clawhub uninstall <skill>、clawhub list、clawhub update --all - 检查但不安装:
clawhub inspect @openclaw/demo - 发布技能:
clawhub skill publish <path> - 发布插件:
clawhub package publish <source> - 代码插件清单必须包含
openclaw.compat.pluginApi和openclaw.build.openclawVersion;最小示例请参阅docs/cli.md。 - 规范化自己拥有的技能:
clawhub skill rename <skill> <new-name>、clawhub skill merge <source> <target>
文档:docs/quickstart.md、docs/cli.md。
移除权限
clawhub uninstall <skill>只会移除你机器上的本地安装。- 已上传的注册表技能使用软删除/恢复(
clawhub delete <skill>/clawhub undelete <skill>或对应的 API)。 - 技能或软件包所有者、发布者所有者/管理员、版主和管理员均可执行软删除/恢复。
- 软件包使用
clawhub package delete <name>/clawhub package undelete <name>。 - 硬删除仅限管理员执行(管理工具/封禁流程)。
- 所有者重命名会将旧 slug 保留为重定向别名。
- 所有者合并会隐藏源条目,并将旧 slug 重定向到规范目标。
遥测
当你以登录状态运行 clawhub install 时,ClawHub 会跟踪最少量的 安装遥测数据(用于计算安装次数)。 通过以下方式禁用:
export CLAWHUB_DISABLE_TELEMETRY=1
详情:docs/telemetry.md。
仓库布局
src/— TanStack Start 应用(路由、组件、样式)。convex/— 架构 + 查询/突变/actions + HTTP API 路由。packages/schema/— CLI 和应用共享的 API 类型/路由。docs/— 面向用户、发布者、API 客户端和部署运维人员的可发布 ClawHub 公共/运维文档。specs/— 产品规格、计划、回归说明和设计历史。specs/spec.md— 产品 + 实现规格(维护者适合首先阅读)。
本地开发
前置条件:Bun(Convex 通过 bunx 运行,无需全局安装)。分离工作树路径还需要 Worktrunk(wt)。
bun install
cp .env.local.example .env.local
# edit .env.local — see CONTRIBUTING.md for local Convex values
# terminal A: local Convex backend
bunx convex dev
# terminal B: web app (port 3000)
bun run dev
# detached/Codex worktree preview
bun run setup:worktree
bun run dev:worktree
wt --yes url
# seed local QA fixtures and the public corpus
bun run seed:dev
bun run seed:dev 会等待本地 Convex 部署,运行开发 fixture 初始化,并刷新全局统计信息。fixture 由 @local 所有,在 fixture 或架构发生更改后可以安全地重新运行。如需了解重置/手动命令和完整设置说明(环境变量、GitHub OAuth、JWT 密钥、数据库填充),请参阅 CONTRIBUTING.md。
环境
VITECONVEXURL:Convex 部署 URL(https://<deployment>.convex.cloud)。VITECONVEXSITE_URL:Convex 站点 URL(https://<deployment>.convex.site)。CONVEXSITEURL:与VITECONVEXSITE_URL相同(身份验证 + Cookie)。SITE_URL:应用 URL(本地:http://localhost:3000)。AUTHGITHUBID/AUTHGITHUBSECRET:GitHub OAuth 应用。JWTPRIVATEKEY/JWKS:Convex Auth 密钥。OPENAIAPIKEY:用于搜索 + 索引的嵌入。
Nix 插件(nixmode 技能)
ClawHub 可以在 SKILL frontmatter 中存储 nix-clawdbot 插件指针,以便注册表知道要安装哪个 Nix 软件包捆绑包。Nix 插件不同于常规技能包:它会将技能包、CLI 二进制文件及其配置标志/要求捆绑在一起。
将以下内容添加到 SKILL.md:
---
name: peekaboo
description: Capture and automate macOS UI with the Peekaboo CLI.
metadata:
{
"clawdbot":
{
"nix":
{
"plugin": "github:clawdbot/nix-steipete-tools?dir=tools/peekaboo",
"systems": ["aarch64-darwin"],
},
},
}
---
通过 nix-clawdbot 安装:
programs.clawdbot.plugins = [
{ source = "github:clawdbot/nix-steipete-tools?dir=tools/peekaboo"; }
];
你还可以声明配置要求和示例片段:
---
name: padel
description: Check padel court availability and manage bookings via Playtomic.
metadata:
{
"clawdbot":
{
"config":
{
"requiredEnv": ["PADEL_AUTH_FILE"],
"stateDirs": [".config/padel"],
"example": "config = { env = { PADEL_AUTH_FILE = \\\"/run/agenix/padel-auth\\\"; }; };",
},
},
}
---
要显示 CLI 帮助(Nix 插件推荐),请包含 cli --help 输出:
---
name: padel
description: Check padel court availability and manage bookings via Playtomic.
metadata: { "clawdbot": { "cliHelp": "padel --help\\nUsage: padel [command]\\n" } }
---
首选使用 metadata.clawdbot,但 metadata.clawdis 和 metadata.openclaw 也可作为别名接受。
技能元数据
技能在 SKILL.md frontmatter 中声明其运行时要求(环境变量、二进制文件、安装规格)。ClawHub 的安全分析会根据技能的实际行为检查这些声明;中等程度的审核发现会保持可见,而可疑筛选仅用于高影响或恶意问题。
完整参考:docs/skill-format.md
快速示例:
---
name: my-skill
description: Does a thing with an API.
metadata:
openclaw:
requires:
env:
- MY_API_KEY
bins:
- curl
primaryEnv: MY_API_KEY
---
脚本
bun run dev
bun run build
bun run test
bun run coverage
bun run lint