[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74763":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":28,"readmeContent":29,"aiSummary":30,"trendingCount":16,"starSnapshotCount":16,"syncStatus":31,"lastSyncTime":32,"discoverSource":33},74763,"clawhub","openclaw\u002Fclawhub","openclaw","Skill + Plugin Registry for OpenClaw","https:\u002F\u002Fclawhub.ai",null,"TypeScript",8922,1392,60,94,0,38,96,356,114,40.43,"MIT License",false,"main",[26,27],"directory","skill","2026-06-12 02:03:27","\u003Cp align=\"center\">\n  \u003Cimg src=\"public\u002Fclawd-logo.png\" alt=\"ClawHub\" width=\"120\">\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">ClawHub\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fclawhub\u002Factions\u002Fworkflows\u002Fci.yml?branch=main\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fopenclaw\u002Fclawhub\u002Fci.yml?branch=main&style=for-the-badge\" alt=\"CI status\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002Fclawd\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1456350064065904867?label=Discord&logo=discord&logoColor=white&color=5865F2&style=for-the-badge\" alt=\"Discord\">\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue.svg?style=for-the-badge\" alt=\"MIT License\">\u003C\u002Fa>\n\u003C\u002Fp>\n\nClawHub is the **public skill registry for OpenClaw**: publish, version, and search text-based agent skills (a `SKILL.md` plus supporting files).\nIt's designed for fast browsing + a CLI-friendly API, with moderation hooks and vector search.\nIt also now exposes a native **OpenClaw package catalog** for code plugins and bundle plugins.\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fclawhub.ai\">ClawHub\u003C\u002Fa> ·\n  \u003Ca href=\"VISION.md\">Vision\u003C\u002Fa> ·\n  \u003Ca href=\"docs\u002Fclawhub.md\">Docs\u003C\u002Fa> ·\n  \u003Ca href=\"CONTRIBUTING.md\">Contributing\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002Fclawd\">Discord\u003C\u002Fa>\n\u003C\u002Fp>\n\n## What you can do with it\n\n- Browse skills + render their `SKILL.md`.\n- Publish new skill versions with changelogs + tags (including `latest`).\n- Rename an owned skill without breaking old links or installs.\n- Merge duplicate owned skills into one canonical slug.\n- Browse souls + render their `SOUL.md`.\n- Publish new soul versions with changelogs + tags.\n- Search via embeddings (vector index) instead of brittle keywords.\n- Star + comment; admins\u002Fmods can curate and approve skills.\n- Pin local skill installs so updates and force reinstalls cannot overwrite frozen copies.\n- Browse OpenClaw packages with family\u002Ftrust\u002Fcapability metadata.\n- Publish native code plugins and bundle plugins through `\u002Fpackages` APIs and CLI flows.\n\n## How it works (high level)\n\n- Web app: TanStack Start (React, Vite\u002FNitro).\n- Backend: Convex (DB + file storage + HTTP actions) + Convex Auth (GitHub OAuth).\n- Search: OpenAI embeddings (`text-embedding-3-small`) + Convex vector search.\n- API schema + routes: `packages\u002Fschema` (`clawhub-schema`).\n\n## CLI\n\nCommon CLI flows:\n\n- Auth: `clawhub login`, `clawhub whoami`\n- Remote\u002Fheadless auth: `clawhub login --device`\n- Discover: `clawhub search ...`, `clawhub explore`\n- Browse unified catalog (skills + plugins): `clawhub package explore`, `clawhub package inspect \u003Cname>`\n- Manage local installs: `clawhub install \u003Cslug>`, `clawhub pin \u003Cslug>`, `clawhub unpin \u003Cslug>`, `clawhub uninstall \u003Cslug>`, `clawhub list`, `clawhub update --all`\n- Inspect without installing: `clawhub inspect \u003Cslug>`\n- Publish\u002Fsync skills: `clawhub skill publish \u003Cpath>`, `clawhub sync`\n- Publish plugins: `clawhub package publish \u003Csource>`\n- Code-plugin manifests must include `openclaw.compat.pluginApi` and `openclaw.build.openclawVersion`; see [`docs\u002Fcli.md`](docs\u002Fcli.md) for a minimal example.\n- Canonicalize owned skills: `clawhub skill rename \u003Cslug> \u003Cnew-slug>`, `clawhub skill merge \u003Csource> \u003Ctarget>`\n\nDocs: [`docs\u002Fquickstart.md`](docs\u002Fquickstart.md), [`docs\u002Fcli.md`](docs\u002Fcli.md).\n\n### Removal permissions\n\n- `clawhub uninstall \u003Cslug>` only removes a local install on your machine.\n- Uploaded registry skills use soft-delete\u002Frestore (`clawhub delete \u003Cslug>` \u002F `clawhub undelete \u003Cslug>` or API equivalents).\n- Soft-delete\u002Frestore is allowed for the skill or package owner, publisher owner\u002Fadmin, moderators, and admins.\n- Packages use `clawhub package delete \u003Cname>` \u002F `clawhub package undelete \u003Cname>`.\n- Hard delete is admin-only (management tools \u002F ban flows).\n- Owner rename keeps the old slug as a redirect alias.\n- Owner merge hides the source listing and redirects the old slug to the canonical target.\n\n## Telemetry\n\nClawHub tracks minimal **install telemetry** (to compute install counts) when you run `clawhub sync` while logged in.\nDisable via:\n\n```bash\nexport CLAWHUB_DISABLE_TELEMETRY=1\n```\n\nDetails: [`docs\u002Ftelemetry.md`](docs\u002Ftelemetry.md).\n\n## Repo layout\n\n- `src\u002F` — TanStack Start app (routes, components, styles).\n- `convex\u002F` — schema + queries\u002Fmutations\u002Factions + HTTP API routes.\n- `packages\u002Fschema\u002F` — shared API types\u002Froutes for the CLI and app.\n- [`docs\u002F`](docs\u002FREADME.md) — publishable ClawHub public\u002Foperator docs for users, publishers, API clients, and deploy operators.\n- [`specs\u002F`](specs\u002FREADME.md) — product specs, plans, regression notes, and design history.\n- [`specs\u002Fspec.md`](specs\u002Fspec.md) — product + implementation spec (good first read for maintainers).\n\n## Local dev\n\nPrereqs: [Bun](https:\u002F\u002Fbun.sh\u002F) (Convex runs via `bunx`, no global install needed).\n\n```bash\nbun install\ncp .env.local.example .env.local\n# edit .env.local — see CONTRIBUTING.md for local Convex values\n\n# terminal A: local Convex backend\nbunx convex dev\n\n# terminal B: web app (port 3000)\nbun run dev\n\n# detached\u002FCodex worktree preview\nbun run dev:worktree\n\n# seed local QA fixtures and the public corpus\nbun run seed:dev\n```\n\n`bun run seed:dev` waits for the local Convex deployment, runs the dev fixture seed, and refreshes\nglobal stats. The fixtures are owned by `@local` and are safe to rerun after fixture or schema\nchanges. For reset\u002Fmanual commands and full setup instructions (env vars, GitHub OAuth, JWT keys,\ndatabase seeding), see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Environment\n\n- `VITE_CONVEX_URL`: Convex deployment URL (`https:\u002F\u002F\u003Cdeployment>.convex.cloud`).\n- `VITE_CONVEX_SITE_URL`: Convex site URL (`https:\u002F\u002F\u003Cdeployment>.convex.site`).\n- `VITE_SOULHUB_SITE_URL`: SoulHub site URL.\n- `VITE_SOULHUB_HOST`: SoulHub host match.\n- `VITE_SITE_MODE`: Optional override (`skills` or `souls`) for SSR builds.\n- `CONVEX_SITE_URL`: same as `VITE_CONVEX_SITE_URL` (auth + cookies).\n- `SITE_URL`: App URL (local: `http:\u002F\u002Flocalhost:3000`).\n- `AUTH_GITHUB_ID` \u002F `AUTH_GITHUB_SECRET`: GitHub OAuth App.\n- `JWT_PRIVATE_KEY` \u002F `JWKS`: Convex Auth keys.\n- `OPENAI_API_KEY`: embeddings for search + indexing.\n\n## Nix plugins (nixmode skills)\n\nClawHub can store a nix-clawdbot plugin pointer in SKILL frontmatter so the registry knows which\nNix package bundle to install. A nix plugin is different from a regular skill pack: it bundles the\nskill pack, the CLI binary, and its config flags\u002Frequirements together.\n\nAdd this to `SKILL.md`:\n\n```yaml\n---\nname: peekaboo\ndescription: Capture and automate macOS UI with the Peekaboo CLI.\nmetadata:\n  {\n    \"clawdbot\":\n      {\n        \"nix\":\n          {\n            \"plugin\": \"github:clawdbot\u002Fnix-steipete-tools?dir=tools\u002Fpeekaboo\",\n            \"systems\": [\"aarch64-darwin\"],\n          },\n      },\n  }\n---\n```\n\nInstall via nix-clawdbot:\n\n```nix\nprograms.clawdbot.plugins = [\n  { source = \"github:clawdbot\u002Fnix-steipete-tools?dir=tools\u002Fpeekaboo\"; }\n];\n```\n\nYou can also declare config requirements + an example snippet:\n\n```yaml\n---\nname: padel\ndescription: Check padel court availability and manage bookings via Playtomic.\nmetadata:\n  {\n    \"clawdbot\":\n      {\n        \"config\":\n          {\n            \"requiredEnv\": [\"PADEL_AUTH_FILE\"],\n            \"stateDirs\": [\".config\u002Fpadel\"],\n            \"example\": \"config = { env = { PADEL_AUTH_FILE = \\\\\\\"\u002Frun\u002Fagenix\u002Fpadel-auth\\\\\\\"; }; };\",\n          },\n      },\n  }\n---\n```\n\nTo show CLI help (recommended for nix plugins), include the `cli --help` output:\n\n```yaml\n---\nname: padel\ndescription: Check padel court availability and manage bookings via Playtomic.\nmetadata: { \"clawdbot\": { \"cliHelp\": \"padel --help\\\\nUsage: padel [command]\\\\n\" } }\n---\n```\n\n`metadata.clawdbot` is preferred, but `metadata.clawdis` and `metadata.openclaw` are accepted as aliases.\n\n## Skill metadata\n\nSkills declare their runtime requirements (env vars, binaries, install specs) in the `SKILL.md` frontmatter. ClawHub's security analysis checks these declarations against actual skill behavior; purpose-aligned ClawScan notes stay as guidance, medium review findings stay visible, and the suspicious filter is reserved for high-impact or malicious concerns.\n\nFull reference: [`docs\u002Fskill-format.md`](docs\u002Fskill-format.md#frontmatter-metadata)\n\nQuick example:\n\n```yaml\n---\nname: my-skill\ndescription: Does a thing with an API.\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - MY_API_KEY\n      bins:\n        - curl\n    primaryEnv: MY_API_KEY\n---\n```\n\n## Scripts\n\n```bash\nbun run dev\nbun run build\nbun run test\nbun run coverage\nbun run lint\n```\n","ClawHub 是一个面向 OpenClaw 的公共技能目录，用于发布、版本管理和搜索基于文本的代理技能。它支持快速浏览和CLI友好的API，具备审核挂钩和向量搜索功能，并提供了一个原生的OpenClaw包目录来管理代码插件和捆绑插件。项目采用TypeScript编写，后端使用Convex进行数据库与文件存储及HTTP操作处理，通过OpenAI的嵌入技术实现高级搜索能力。适用于需要构建或扩展智能代理技能库的应用场景，如自动化助手开发、对话系统集成等。",2,"2026-06-11 03:50:42","high_star"]