Skip to main content
ClawHub is the public registry for OpenClaw skills and plugins.
  • Use native openclaw commands to search, install, and update skills, and to install plugins from ClawHub.
  • Use the separate clawhub CLI for registry auth, publish, delete/undelete, and sync workflows.
Site: clawhub.ai

Quick start

1

Search

openclaw skills search "calendar"
2

Install

openclaw skills install <skill-slug>
3

Use

Start a new OpenClaw session — it picks up the new skill.
4

Publish (optional)

For registry-authenticated workflows (publish, sync, manage), install the separate clawhub CLI:
npm i -g clawhub
# or
pnpm add -g clawhub

Native OpenClaw flows

openclaw skills search "calendar"
openclaw skills install <skill-slug>
openclaw skills update --all
Native openclaw commands install into your active workspace and persist source metadata so later update calls can stay on ClawHub.
openclaw plugins install clawhub:... only accepts installable plugin families. If a ClawHub package is actually a skill, OpenClaw stops and points you at openclaw skills install <slug> instead.Anonymous ClawHub plugin installs also fail closed for private packages. Community or other non-official channels can still install, but OpenClaw warns so operators can review source and verification before enabling them.

What ClawHub is

  • A public registry for OpenClaw skills and plugins.
  • A versioned store of skill bundles and metadata.
  • A discovery surface for search, tags, and usage signals.
A typical skill is a versioned bundle of files that includes:
  • A SKILL.md file with the primary description and usage.
  • Optional configs, scripts, or supporting files used by the skill.
  • Metadata such as tags, summary, and install requirements.
ClawHub uses metadata to power discovery and safely expose skill capabilities. The registry tracks usage signals (stars, downloads) to improve ranking and visibility. Each publish creates a new semver version, and the registry keeps version history so users can audit changes.

Workspace and skill loading

The separate clawhub CLI also installs skills into ./skills under your current working directory. If an OpenClaw workspace is configured, clawhub falls back to that workspace unless you override --workdir (or CLAWHUB_WORKDIR). OpenClaw loads workspace skills from <workspace>/skills and picks them up in the next session. If you already use ~/.openclaw/skills or bundled skills, workspace skills take precedence. For more detail on how skills are loaded, shared, and gated, see Skills.

Service features

FeatureNotes
Public browsingSkills and their SKILL.md content are publicly viewable.
SearchEmbedding-powered (vector search), not just keywords.
VersioningSemver, changelogs, and tags (including latest).
DownloadsZip per version.
Stars and commentsCommunity feedback.
ModerationApprovals and audits.
CLI-friendly APISuitable for automation and scripting.

Security and moderation

ClawHub is open by default — anyone can upload skills, but a GitHub account must be at least one week old to publish. This slows down abuse without blocking legitimate contributors.
  • Any signed-in user can report a skill.
  • Report reasons are required and recorded.
  • Each user can have up to 20 active reports at a time.
  • Skills with more than 3 unique reports are auto-hidden by default.
  • Moderators can view hidden skills, unhide them, delete them, or ban users.
  • Abusing the report feature can result in account bans.
  • Interested in becoming a moderator? Ask in the OpenClaw Discord and contact a moderator or maintainer.

ClawHub CLI

You only need this for registry-authenticated workflows such as publish/sync.

Global options

--workdir <dir>
string
Working directory. Default: current dir; falls back to OpenClaw workspace.
--dir <dir>
string
default:"skills"
Skills directory, relative to workdir.
--site <url>
string
Site base URL (browser login).
--registry <url>
string
Registry API base URL.
--no-input
boolean
Disable prompts (non-interactive).
-V, --cli-version
boolean
Print CLI version.

Commands

clawhub login              # browser flow
clawhub login --token <token>
clawhub logout
clawhub whoami
Login options:
  • --token <token> — paste an API token.
  • --label <label> — label stored for browser login tokens (default: CLI token).
  • --no-browser — do not open a browser (requires --token).
clawhub install <slug>
clawhub update <slug>
clawhub update --all
clawhub list
Options:
  • --version <version> — install or update to a specific version (single slug only on update).
  • --force — overwrite if the folder already exists, or when local files do not match any published version.
  • clawhub list reads .clawhub/lock.json.
clawhub skill publish <path>
Options:
  • --slug <slug> — skill slug.
  • --name <name> — display name.
  • --version <version> — semver version.
  • --changelog <text> — changelog text (can be empty).
  • --tags <tags> — comma-separated tags (default: latest).
clawhub package publish <source>
<source> can be a local folder, owner/repo, owner/repo@ref, or a GitHub URL.Options:
  • --dry-run — build the exact publish plan without uploading anything.
  • --json — emit machine-readable output for CI.
  • --source-repo, --source-commit, --source-ref — optional overrides when auto-detection is not enough.
clawhub delete <slug> --yes
clawhub undelete <slug> --yes
clawhub sync
Options:
  • --root <dir...> — extra scan roots.
  • --all — upload everything without prompts.
  • --dry-run — show what would be uploaded.
  • --bump <type>patch|minor|major for updates (default: patch).
  • --changelog <text> — changelog for non-interactive updates.
  • --tags <tags> — comma-separated tags (default: latest).
  • --concurrency <n> — registry checks (default: 4).

Common workflows

Plugin package metadata

Code plugins must include the required OpenClaw metadata in package.json:
{
  "name": "@myorg/openclaw-my-plugin",
  "version": "1.0.0",
  "type": "module",
  "openclaw": {
    "extensions": ["./src/index.ts"],
    "runtimeExtensions": ["./dist/index.js"],
    "compat": {
      "pluginApi": ">=2026.3.24-beta.2",
      "minGatewayVersion": "2026.3.24-beta.2"
    },
    "build": {
      "openclawVersion": "2026.3.24-beta.2",
      "pluginSdkVersion": "2026.3.24-beta.2"
    }
  }
}
Published packages should ship built JavaScript and point runtimeExtensions at that output. Git checkout installs can still fall back to TypeScript source when no built files exist, but built runtime entries avoid runtime TypeScript compilation in startup, doctor, and plugin loading paths.

Versioning, lockfile, and telemetry

  • Each publish creates a new semver SkillVersion.
  • Tags (like latest) point to a version; moving tags lets you roll back.
  • Changelogs are attached per version and can be empty when syncing or publishing updates.
Updates compare the local skill contents to registry versions using a content hash. If local files do not match any published version, the CLI asks before overwriting (or requires --force in non-interactive runs).
clawhub sync scans your current workdir first. If no skills are found, it falls back to known legacy locations (for example ~/openclaw/skills and ~/.openclaw/skills). This is designed to find older skill installs without extra flags.
  • Installed skills are recorded in .clawhub/lock.json under your workdir.
  • Auth tokens are stored in the ClawHub CLI config file (override via CLAWHUB_CONFIG_PATH).
When you run clawhub sync while logged in, the CLI sends a minimal snapshot to compute install counts. You can disable this entirely:
export CLAWHUB_DISABLE_TELEMETRY=1

Environment variables

VariableEffect
CLAWHUB_SITEOverride the site URL.
CLAWHUB_REGISTRYOverride the registry API URL.
CLAWHUB_CONFIG_PATHOverride where the CLI stores the token/config.
CLAWHUB_WORKDIROverride the default workdir.
CLAWHUB_DISABLE_TELEMETRY=1Disable telemetry on sync.