openclaw/clawhub
GitHub: openclaw/clawhub
ClawHub 是 Clawdbot 的公共技能注册表,用于发布、版本控制和语义搜索 AI 智能体的技能包与人格设定。
Stars: 3903 | Forks: 710
ClawHub
ClawHub 是 **Clawdbot 的公共技能注册表**:发布、版本控制和搜索基于文本的智能体技能(一个 `SKILL.md` 加上支持文件)。
它专为快速浏览和 CLI 友好的 API 而设计,并具备审核钩子和向量搜索功能。
onlycrabs.ai 是 **SOUL.md 注册表**:以与发布技能相同的方式发布和共享系统设定。
ClawHub ·
onlycrabs.ai ·
愿景 ·
文档 ·
贡献指南 ·
Discord
## 你可以用它做什么
- 浏览技能并渲染其 `SKILL.md`。
- 发布带有变更日志和标签(包括 `latest`)的新技能版本。
- 浏览 Souls 并渲染其 `SOUL.md`。
- 发布带有变更日志和标签的新 Soul 版本。
- 通过 embeddings(向量索引)进行搜索,而不是脆弱的关键字。
- Star 和评论;管理员/版主可以管理和批准技能。
## onlycrabs.ai (SOUL.md 注册表)
- 入口点基于主机:`onlycrabs.ai`。
- 在 onlycrabs.ai 主机上,主页和导航默认为 souls。
- 在 ClawHub 上,souls 位于 `/souls` 下。
- Soul 包目前只接受 `SOUL.md`(没有额外文件)。
## 工作原理(高层概览)
- Web 应用:TanStack Start (React, Vite/Nitro)。
- 后端:Convex (DB + 文件存储 + HTTP actions) + Convex Auth (GitHub OAuth)。
- 搜索:OpenAI embeddings (`text-embedding-3-small`) + Convex 向量搜索。
- API schema + 路由:`packages/schema` (`clawhub-schema`)。
## CLI
常见的 CLI 流程:
- 认证:`clawhub login`, `clawhub whoami`
- 发现:`clawhub search ...`, `clawhub explore`
- 管理本地安装:`clawhub install
`, `clawhub uninstall `, `clawhub list`, `clawhub update --all`
- 不安装进行检查:`clawhub inspect `
- 发布/同步:`clawhub publish `, `clawhub sync`
文档:[`docs/quickstart.md`](docs/quickstart.md),[`docs/cli.md`](docs/cli.md)。
### 删除权限
- `clawhub uninstall ` 仅删除你机器上的本地安装。
- 上传到注册表的技能使用软删除/恢复(`clawhub delete ` / `clawhub undelete ` 或等效 API)。
- 允许技能所有者、版主和管理员进行软删除/恢复。
- 硬删除仅限管理员(管理工具/封禁流程)。
## 遥测
当你登录后运行 `clawhub sync` 时,ClawHub 会跟踪最少的**安装遥测**数据(用于计算安装次数)。
通过以下方式禁用:
```
export CLAWHUB_DISABLE_TELEMETRY=1
```
详情:[`docs/telemetry.md`](docs/telemetry.md)。
## 仓库布局
- `src/` — TanStack Start 应用(路由、组件、样式)。
- `convex/` — schema + queries/mutations/actions + HTTP API 路由。
- `packages/schema/` — CLI 和应用的共享 API 类型/路由。
- [`docs/`](docs/README.md) — 项目文档(架构、CLI、认证、部署等)。
- [`docs/spec.md`](docs/spec.md) — 产品 + 实现规范(建议首选阅读)。
## 本地开发
前置条件:[Bun](https://bun.sh/)(Convex 通过 `bunx` 运行,无需全局安装)。
```
bun install
cp .env.local.example .env.local
# 编辑 .env.local — 本地 Convex 值请参见 CONTRIBUTING.md
# 终端 A:本地 Convex 后端
bunx convex dev
# 终端 B:Web 应用 (端口 3000)
bun run dev
# 填充示例数据
bunx convex run --no-push devSeed:seedNixSkills
```
有关完整的设置说明(环境变量、GitHub OAuth、JWT 密钥、数据库填充),请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 环境变量
- `VITE_CONVEX_URL`: Convex 部署 URL (`https://.convex.cloud`).
- `VITE_CONVEX_SITE_URL`: Convex 站点 URL (`https://.convex.site`).
- `VITE_SOULHUB_SITE_URL`: onlycrabs.ai 站点 URL (`https://onlycrabs.ai`).
- `VITE_SOULHUB_HOST`: onlycrabs.ai 主机匹配 (`onlycrabs.ai`).
- `VITE_SITE_MODE`: SSR 构建的可选覆盖 (`skills` 或 `souls`).
- `CONVEX_SITE_URL`: 与 `VITE_CONVEX_SITE_URL` 相同(认证 + cookies)。
- `SITE_URL`: 应用 URL (本地: `http://localhost:3000`).
- `AUTH_GITHUB_ID` / `AUTH_GITHUB_SECRET`: GitHub OAuth App。
- `JWT_PRIVATE_KEY` / `JWKS`: Convex Auth 密钥。
- `OPENAI_API_KEY`: 用于搜索和索引的 embeddings。
## Nix 插件 (nixmode skills)
ClawHub 可以在 SKILL frontmatter 中存储一个 nix-clawdbot 插件指针,以便注册表知道要安装哪个 Nix 包 bundle。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 元数据
Skills 在 `SKILL.md` frontmatter 中声明其运行时要求(环境变量、二进制文件、安装规范)。ClawHub 的安全分析会根据实际的技能行为检查这些声明。
完整参考:[`docs/skill-format.md`](docs/skill-format.md#frontmatter-metadata)
快速示例:
```
---
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
```
标签:AI代理, ClawHub, DLL 劫持, Markdown, OpenClaw, RAG, Ruby, 内容审核, 向量搜索, 大语言模型, 威胁情报, 开发者工具, 开源, 技能注册表, 插件市场, 机器人, 版本管理, 知识库, 网络调试, 自动化, 自动化攻击, 自动化攻击, 语义检索