* fix: polish skill detail hero metadata * fix: improve skill readme presentation * chore: outline skill detail structure * fix: narrow detail page container * fix: compact skill sidebar on detail pages * fix: use body font for install switcher * fix: align plugin detail sidebar * fix: shorten skill readme preview * fix: soften related skills heading * fix: remove duplicate stars metadata * fix: remove related skill hover underline * chore: remove detail debug outlines * fix: align hero with content column * fix: rename summary disclosure action * fix: wrap tab content in contrast panel * fix: restore full width hero layout * fix: refine skill detail surfaces * fix: soften skill readme body copy * fix: hide skill detail breadcrumbs * fix: place skill taxonomy above title * fix: reduce skill detail title size * fix: add skill hero top spacing * fix: standardize skill markdown formatting * fix: refine related skills navigation * fix: align plugin detail hero with skills * fix: increase hero taxonomy spacing * fix: mark official plugin owners * fix: tune detail sidebar labels * fix: restyle install tab switcher * fix: add subtle skill detail wash * fix: horizontalize skill versions panel * fix: animate install tab switcher * fix: align plugin versions layout * fix: improve tab markdown surface contrast * fix: separate detail categories with commas * fix: remove detail tab underline bars * fix: bleed skill wash behind header * fix: polish detail versions changelog * fix: add file tree to skill files view * fix: anchor skill wash to page top * fix: restore plugin version download actions * fix: align detail sidebar top spacing * fix: restore active detail tab bar * fix: collapse detail version changelogs * fix: clarify version changelog toggles * fix: tune detail tab and install polish * fix: polish markdown code blocks * fix: refine markdown code wrap control * docs: capture detail polish direction * fix: refine release history layout * feat: simplify detail file navigation * fix: align detail hero sidebar patterns * fix: unify plugin and skill detail polish * fix: refine detail hero and release rows * fix: move related skills below detail content * fix: align detail hero title with main content column Keep the hero wash full width while constraining taxonomy, title, and summary to the same grid column as install and tab content on desktop. * fix: increase star count badge font to 14px Make the sidebar star action count easier to read on detail pages. * fix: align shiki code block surfaces with detail markdown Override Shiki's inline pre background so fenced blocks use the shared markdown-code-block surface on skill and plugin README tabs. * fix: remove code wrap toggle blur flicker Drop the wrap-state blur reveal so toggling nowrap/wrap keeps the code DOM stable without flashing highlighted tokens. * fix: contain detail markdown overflow in tab bodies Keep README and SKILL surfaces clipped to the tab column while preserving horizontal scroll only inside code blocks and tables. * fix: use neutral hover border on detail sidebar actions Override the accent outline hover on Star, Share, and Download sidebar buttons so detail pages keep a quieter action treatment. * fix: tighten release row checks and download actions Keep scan badges on one horizontal row, left-align package actions with the column header, and show an icon-only download control. * fix: collapse long plugin README previews like SKILL.md Reuse the skill readme preview limiter with Read more/Show less on plugin README.md tabs so long documentation stays scannable by default. * fix: match activity metric info icon to security audit Reuse the quiet sidebar info button styling so download labels no longer show a circular hover treatment on the help icon. * chore: remove unused activity metric info button styles * fix: use neutral colors for download trend sparklines Keep sidebar activity graphs muted with ink-soft tones instead of accent red on skill and plugin detail pages. * fix(ui): style related skills category link as outline button Give the compact hero "More in …" footer full-width outline button affordance with neutral hover, matching sidebar secondary actions. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ui): compact skill/plugin detail hero on mobile Tighten vertical rhythm below 1100px: side-by-side Star/Share, smaller action buttons, denser metadata rows, shorter download sparkline, and reduced gaps between hero, sidebar, and install sections. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ui): reduce sidebar action count font to 13px Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ui): reduce sidebar action count font to 13px Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ui): shrink sidebar star count badge height Lower the action-count pill so Star and Share buttons align at the same height. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ui): restore markdown ordered and bullet list markers Tailwind preflight strips list-style from ol/ul; re-apply disc and decimal markers inside .markdown so SKILL.md and plugin README numbering renders. Co-authored-by: Cursor <cursoragent@cursor.com> * feat: add download period tabs to detail sidebar Replace the static 30-day downloads row with All time, 30d, and 7d tabs that update the sparkline and total on skill and plugin detail pages. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ui): polish audit sidebar, badges, and chart theme tokens Make creator badges fully clickable, collapse Latest audit to one inline row, and tune download sparkline colors per theme with softer blue tones. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: make creator user badges fully clickable Use fallbackHandle for profile links, pass plugin ownerHandle when the owner record omits it, and add sidebar hover affordance on the whole badge. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ui): tighten audit sidebar and related skills footer Center the category footer action, remove the secondary-actions negative margin hack, and keep Latest audit on one compact inline row. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ui): refine downloads tabs, report row, and related summaries Move download period tabs inline with the Downloads label using listing-style underline tabs, drop the Report block top border, and cap related skill descriptions at 80 characters. Co-authored-by: Cursor <cursoragent@cursor.com> * feat: polish skill and plugin detail pages * feat: add diff viewer skeleton * fix: retain diff skeleton while versions load * feat: restructure skill card review layout * feat: add category icons to related skills * fix: keep primary skill file first * fix: keep skill card context expanded * fix: refine skill card overview and risk contrast * fix: show stars in related skill rows * fix: refine install requirement tabs * fix: join skill card risk rail * fix: align plugin versions panel behavior * fix: polish plugin repository and requirement panels * fix: stabilize detail page skeleton layouts * fix: resolve detail hydration gaps and finish polish pass Keep mobile/desktop detail markup stable for SSR hydration, sync Shiki theme selection with useSyncExternalStore, and complete tabpanel ARIA for Files and Versions. Also lands remaining plugin categorize, install, and metadata dialog polish from the detail-page iteration. Co-authored-by: Cursor <cursoragent@cursor.com> * fix: stabilize detail page CI contracts * feat(web): polish detail install shell and checkpoint branch WIP Add subtle terminal $ prompt to skill/plugin install commands with vertical alignment and descender-safe line height. Bundle remaining detail-page polish, dialog tweaks, and local PR proof artifacts as a restore point before further agent work. * fix(web): polish plugin sidebar download and detail hero alignment Move plugin download inline with the downloads count when no activity graph is shown, and to the sidebar footer when a graph is present. Align skill/plugin hero summary rows, compact management toolbar actions, and plugin mobile About/Stats tabs. Remove accidental local proof artifacts from the branch. * fix(web): stabilize detail page CI --------- Co-authored-by: Cursor <cursoragent@cursor.com>
ClawHub
ClawHub is the public skill registry for OpenClaw: publish, version, and search text-based agent skills (a SKILL.md plus supporting files).
It's designed for fast browsing + a CLI-friendly API, with moderation hooks and vector search.
It also now exposes a native OpenClaw package catalog for code plugins and bundle plugins.
ClawHub · Vision · Docs · Contributing · Discord
What you can do with it
- Browse skills + render their
SKILL.md. - Publish new skill versions with changelogs + tags (including
latest). - Rename an owned skill without breaking old links or installs.
- Merge duplicate owned skills into one canonical slug.
- Search via embeddings (vector index) instead of brittle keywords.
- Star + comment; admins/mods can curate and approve skills.
- Pin local skill installs so updates and force reinstalls cannot overwrite frozen copies.
- Browse OpenClaw packages with family/trust/capability metadata.
- Publish native code plugins and bundle plugins through
/packagesAPIs and CLI flows.
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(clawhub-schema).
CLI
Common CLI flows:
- Auth:
clawhub login,clawhub whoami - Remote/headless auth:
clawhub login --device - Discover:
clawhub search ...,clawhub explore - Browse unified catalog (skills + plugins):
clawhub package explore,clawhub package inspect <name> - Manage local installs:
clawhub install @openclaw/demo,clawhub pin <skill>,clawhub unpin <skill>,clawhub uninstall <skill>,clawhub list,clawhub update --all - Inspect without installing:
clawhub inspect @openclaw/demo - Publish skills:
clawhub skill publish <path> - Publish plugins:
clawhub package publish <source> - Code-plugin manifests must include
openclaw.compat.pluginApiandopenclaw.build.openclawVersion; seedocs/cli.mdfor a minimal example. - Canonicalize owned skills:
clawhub skill rename <skill> <new-name>,clawhub skill merge <source> <target>
Docs: docs/quickstart.md, docs/cli.md.
Removal permissions
clawhub uninstall <skill>only removes a local install on your machine.- Uploaded registry skills use soft-delete/restore (
clawhub delete <skill>/clawhub undelete <skill>or API equivalents). - Soft-delete/restore is allowed for the skill or package owner, publisher owner/admin, moderators, and admins.
- Packages use
clawhub package delete <name>/clawhub package undelete <name>. - Hard delete is admin-only (management tools / ban flows).
- Owner rename keeps the old slug as a redirect alias.
- Owner merge hides the source listing and redirects the old slug to the canonical target.
Telemetry
ClawHub tracks minimal install telemetry (to compute install counts) when you run clawhub install while logged in.
Disable via:
export CLAWHUB_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/— publishable ClawHub public/operator docs for users, publishers, API clients, and deploy operators.specs/— product specs, plans, regression notes, and design history.specs/spec.md— product + implementation spec (good first read for maintainers).
Local dev
Prereqs: Bun (Convex runs via bunx, no global install needed). The detached worktree path also requires 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 waits for the local Convex deployment, runs the dev fixture seed, and refreshes
global stats. The fixtures are owned by @local and are safe to rerun after fixture or schema
changes. For reset/manual commands and full setup instructions (env vars, GitHub OAuth, JWT keys,
database seeding), see CONTRIBUTING.md.
Environment
VITE_CONVEX_URL: Convex deployment URL (https://<deployment>.convex.cloud).VITE_CONVEX_SITE_URL: Convex site URL (https://<deployment>.convex.site).CONVEX_SITE_URL: same asVITE_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)
ClawHub 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 and metadata.openclaw are accepted as aliases.
Skill metadata
Skills 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; medium review findings stay visible, and the suspicious filter is reserved for high-impact or malicious concerns.
Full reference: docs/skill-format.md
Quick example:
---
name: my-skill
description: Does a thing with an API.
metadata:
openclaw:
requires:
env:
- MY_API_KEY
bins:
- curl
primaryEnv: MY_API_KEY
---
Scripts
bun run dev
bun run build
bun run test
bun run coverage
bun run lint

