[BREAKGLASS] Skill Directory for OpenClaw https://clawhub.ai
Go to file
2026-01-11 05:20:20 +01:00
.github/workflows ci: add GitHub Actions 2026-01-04 04:19:02 +01:00
convex fix: restore backups + fork lineage (#1) (thanks @joshp123) 2026-01-10 20:32:47 +01:00
docs feat: add nix plugin bundles 2026-01-10 20:27:22 +01:00
e2e feat: add v1 public api 2026-01-10 20:25:50 +01:00
packages fix: restore backups + fork lineage (#1) (thanks @joshp123) 2026-01-10 20:32:47 +01:00
public feat: add v1 public api 2026-01-07 18:28:51 +01:00
scripts chore: add docs:list helper 2026-01-07 17:58:00 +01:00
server fix: hide onlycrabs branding 2026-01-11 05:20:20 +01:00
src fix: hide onlycrabs branding 2026-01-11 05:20:20 +01:00
.env.local.example feat: SoulHub registry + auto-seed 2026-01-10 18:25:11 +00:00
.gitignore feat: dynamic skill OG images 2026-01-08 05:47:27 +01:00
.oxlintrc.json style: apply biome formatting 2026-01-03 18:23:30 +01:00
AGENTS.md docs: note Convex run --env-file auth gotcha 2026-01-07 05:50:42 +01:00
biome.json feat: add nix plugin bundles 2026-01-10 20:27:22 +01:00
bun.lock feat: refresh skill detail layout and dashboard 2026-01-10 20:23:01 +01:00
CHANGELOG.md fix: restore backups + fork lineage (#1) (thanks @joshp123) 2026-01-10 20:32:47 +01:00
clawdhub refactor(clawdhub): split CLI modules 2026-01-04 06:48:56 +01:00
convex.json feat: bootstrap clawdhub 2026-01-03 18:14:33 +01:00
DEPRECATIONS.md feat: add v1 public api 2026-01-07 18:28:51 +01:00
LICENSE Initial commit 2026-01-03 14:49:41 +01:00
package.json feat: dynamic skill OG images 2026-01-08 05:47:27 +01:00
README.md feat: add nix plugin bundles 2026-01-10 20:27:22 +01:00
tsconfig.json fix(types): align file buffers for convex deploy 2026-01-03 22:53:44 +01:00
tsconfig.oxlint.json refactor: extract @clawdhub/schema package 2026-01-04 03:49:57 +01:00
vercel.json feat: proxy /api to Convex 2026-01-04 06:51:49 +01:00
vite.config.ts fix: embed fonts in OG images 2026-01-08 05:54:49 +01:00
vitest.config.ts test: add opt-in e2e suite 2026-01-04 07:28:47 +01:00
vitest.e2e.config.ts test: add opt-in e2e suite 2026-01-04 07:28:47 +01:00
vitest.setup.ts feat: bootstrap clawdhub 2026-01-03 18:14:33 +01:00

ClawdHub

CI status Discord MIT License

ClawdHub is the public skill registry for Clawdbot: publish, version, and search text-based agent skills (a SKILL.md plus supporting files). Its designed for fast browsing + a CLI-friendly API, with moderation hooks and vector search.

onlycrabs.ai is the SOUL.md registry: publish and share system lore the same way you publish skills.

Live: https://clawdhub.com onlycrabs.ai: https://onlycrabs.ai

What you can do

  • Browse skills + render their SKILL.md.
  • Publish new skill versions with changelogs + tags (including latest).
  • Browse souls + render their SOUL.md.
  • Publish new soul versions with changelogs + tags.
  • Search via embeddings (vector index) instead of brittle keywords.
  • Star + comment; admins/mods can curate and approve skills.

onlycrabs.ai (SOUL.md registry)

  • Entry point is host-based: onlycrabs.ai.
  • On the onlycrabs.ai host, the home page and nav default to souls.
  • On ClawdHub, souls live under /souls.
  • Soul bundles only accept SOUL.md for now (no extra files).

How it works (high level)

  • Web app: TanStack Start (React, Vite/Nitro).
  • Backend: Convex (DB + file storage + HTTP actions) + Convex Auth (GitHub OAuth).
  • Search: OpenAI embeddings (text-embedding-3-small) + Convex vector search.
  • API schema + routes: packages/schema (clawdhub-schema).

Telemetry

ClawdHub tracks minimal install telemetry (to compute install counts) when you run clawdhub sync while logged in. Disable via:

export CLAWDHUB_DISABLE_TELEMETRY=1

Details: docs/telemetry.md.

Repo layout

  • src/ — TanStack Start app (routes, components, styles).
  • convex/ — schema + queries/mutations/actions + HTTP API routes.
  • packages/schema/ — shared API types/routes for the CLI and app.
  • docs/spec.md — product + implementation spec (good first read).

Local dev

Prereqs: Bun + Convex CLI.

bun install
cp .env.local.example .env.local

# terminal A: web app
bun run dev

# terminal B: Convex dev deployment
bunx convex dev

Auth (GitHub OAuth) setup

Create a GitHub OAuth App, set AUTH_GITHUB_ID / AUTH_GITHUB_SECRET, then:

bunx auth --deployment-name <deployment> --web-server-url http://localhost:3000

This writes JWT_PRIVATE_KEY + JWKS to the deployment and prints values for your local .env.local.

Environment

  • VITE_CONVEX_URL: Convex deployment URL (https://<deployment>.convex.cloud).
  • VITE_CONVEX_SITE_URL: Convex site URL (https://<deployment>.convex.site).
  • VITE_SOULHUB_SITE_URL: onlycrabs.ai site URL (https://onlycrabs.ai).
  • VITE_SOULHUB_HOST: onlycrabs.ai host match (onlycrabs.ai).
  • VITE_SITE_MODE: Optional override (skills or souls) for SSR builds.
  • CONVEX_SITE_URL: same as VITE_CONVEX_SITE_URL (auth + cookies).
  • SITE_URL: App URL (local: http://localhost:3000).
  • AUTH_GITHUB_ID / AUTH_GITHUB_SECRET: GitHub OAuth App.
  • JWT_PRIVATE_KEY / JWKS: Convex Auth keys.
  • OPENAI_API_KEY: embeddings for search + indexing.

Nix plugins (nixmode skills)

ClawdHub can store a nix-clawdbot plugin pointer in SKILL frontmatter so the registry knows which Nix package bundle to install. A nix plugin is different from a regular skill pack: it bundles the skill pack, the CLI binary, and its config flags/requirements together.

Add this to 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"]}}}
---

Install via nix-clawdbot:

programs.clawdbot.plugins = [
  { source = "github:clawdbot/nix-steipete-tools?dir=tools/peekaboo"; }
];

You can also declare config requirements + an example snippet:

---
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\\\"; }; };"}}}
---

To show CLI help (recommended for nix plugins), include the cli --help output:

---
name: padel
description: Check padel court availability and manage bookings via Playtomic.
metadata: {"clawdbot":{"cliHelp":"padel --help\\nUsage: padel [command]\\n"}}
---

metadata.clawdbot is preferred, but metadata.clawdis is accepted as an alias for compatibility.

Scripts

bun run dev
bun run build
bun run test
bun run coverage
bun run lint