openclaw/clawhub

GitHub: openclaw/clawhub

ClawHub 是 Clawdbot 的公共技能注册表,用于发布、版本控制和语义搜索 AI 智能体的技能包与人格设定。

Stars: 3903 | Forks: 710

ClawHub

ClawHub

CI status Discord MIT License

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, 内容审核, 向量搜索, 大语言模型, 威胁情报, 开发者工具, 开源, 技能注册表, 插件市场, 机器人, 版本管理, 知识库, 网络调试, 自动化, 自动化攻击, 自动化攻击, 语义检索