--- summary: "CLI reference for `openclaw skills` (search/install/update/verify/list/info/check/workshop)" read_when: - You want to see which skills are available and ready to run - You want to search ClawHub or install skills from ClawHub, Git, or local directories - You want to verify a ClawHub skill with ClawHub - You want to debug missing binaries/env/config for skills title: "Skills" --- # `openclaw skills` Inspect local skills, search ClawHub, install skills from ClawHub/Git/local directories, verify ClawHub skills, and update ClawHub-tracked installs. Related: - Skills system: [Skills](/tools/skills) - Skills config: [Skills config](/tools/skills-config) - ClawHub installs: [ClawHub](/clawhub/cli) ## Commands ```bash openclaw skills search "calendar" openclaw skills search --limit 20 --json openclaw skills install openclaw skills install --version openclaw skills install git:owner/repo openclaw skills install git:owner/repo@main openclaw skills install ./path/to/skill --as custom-name openclaw skills install --force openclaw skills install --agent openclaw skills install --global openclaw skills update openclaw skills update --global openclaw skills update --all openclaw skills update --all --agent openclaw skills update --all --global openclaw skills verify openclaw skills verify --version openclaw skills verify --tag openclaw skills verify --card openclaw skills verify --global openclaw skills list openclaw skills list --eligible openclaw skills list --json openclaw skills list --verbose openclaw skills list --agent openclaw skills info openclaw skills info --json openclaw skills info --agent openclaw skills check openclaw skills check --agent openclaw skills check --json openclaw skills workshop propose-create --name "qa-check" --description "QA checklist" --proposal ./PROPOSAL.md openclaw skills workshop propose-update qa-check --proposal ./PROPOSAL.md openclaw skills workshop list openclaw skills workshop inspect openclaw skills workshop revise --proposal ./PROPOSAL.md openclaw skills workshop apply openclaw skills workshop reject --reason "Not reusable" openclaw skills workshop quarantine --reason "Needs security review" ``` `search`, `update`, and `verify` use ClawHub directly. `install ` installs a ClawHub skill, `install git:owner/repo[@ref]` clones a Git skill, and `install ./path` copies a local skill directory. By default, `install`, `update`, and `verify` target the active workspace `skills/` directory; with `--global`, they target the shared managed skills directory. `list`/`info`/`check` still inspect the local skills visible to the current workspace and config. Workspace-backed commands resolve the target workspace from `--agent `, then the current working directory when it is inside a configured agent workspace, then the default agent. Git and local directory installs expect `SKILL.md` at the source root. The install slug comes from `SKILL.md` frontmatter `name` when it is valid, then the source directory or repository name; use `--as ` to override it. `--version` is ClawHub-only. Skill installs do not support npm package specs or zip/archive paths, and `openclaw skills update` updates ClawHub-tracked installs only. Gateway-backed skill dependency installs triggered from onboarding or Skills settings use the separate `skills.install` request path instead. Notes: - `search [query...]` accepts an optional query; omit it to browse the default ClawHub search feed. - `search --limit ` caps returned results. - `install git:owner/repo[@ref]` installs a Git skill. Branch refs may contain slashes, such as `git:owner/repo@feature/foo`. - `install ./path/to/skill` installs a local directory whose root contains `SKILL.md`. - `install --as ` overrides the inferred slug for Git and local directory installs. - `install --version ` applies only to ClawHub skill slugs. - `install --force` overwrites an existing workspace skill folder for the same slug. - `--global` targets the shared managed skills directory and cannot be combined with `--agent `. - `--agent ` targets one configured agent workspace and overrides current working directory inference. - `update ` updates a single tracked skill. Add `--global` to target the shared managed skills directory instead of the workspace. - `update --all` updates tracked ClawHub installs in the selected workspace, or in the shared managed skills directory when combined with `--global`. - `verify ` prints ClawHub's `clawhub.skill.verify.v1` JSON envelope by default. There is no `--json` flag because JSON is already the default. - `verify` uses `.clawhub/origin.json` for installed ClawHub skills, so it verifies the installed version against the registry it came from. `--version` and `--tag` override the version selector but keep that installed registry when origin metadata exists. - `verify --card` prints the generated Skill Card Markdown instead of JSON. The command exits non-zero when ClawHub returns `ok: false` or `decision: "fail"`; unsigned signatures are informational unless ClawHub policy changes. - Installed ClawHub bundles can include a generated `skill-card.md`. OpenClaw treats verification as a ClawHub server decision and does not reject an installed skill just because that generated card changes the bundle fingerprint. - `check --agent ` checks the selected agent's workspace and reports which ready skills are actually visible to that agent's prompt or command surface. - `list` is the default action when no subcommand is provided. - `list`, `info`, and `check` write their rendered output to stdout. With `--json`, that means the machine-readable payload stays on stdout for pipes and scripts. ## Skill Workshop proposals `openclaw skills workshop` manages pending skill proposals in the selected workspace. Proposals are durable OpenClaw state under `/skill-workshop/proposals/`; they are not active skills until applied. The default state directory is `~/.openclaw`. Proposal bodies honor `skills.workshop.maxSkillBytes`, and proposal descriptions are capped at 160 bytes because they can appear in discovery and listing output. Create a proposal from a draft markdown file: ```bash openclaw skills workshop propose-create \ --name "qa-check" \ --description "Repeatable QA checklist" \ --proposal ./PROPOSAL.md ``` Or create a proposal from a full draft skill directory: ```bash openclaw skills workshop propose-create \ --name "qa-check" \ --description "Repeatable QA checklist" \ --proposal-dir ./qa-check-proposal ``` Update an existing workspace skill through the same pending path: ```bash openclaw skills workshop propose-update qa-check --proposal ./PROPOSAL.md ``` Revise a pending proposal before approval: ```bash openclaw skills workshop revise --proposal ./PROPOSAL.md ``` The supplied draft is stored as `PROPOSAL.md` with proposal-only frontmatter: ```markdown --- name: qa-check description: Repeatable QA checklist status: proposal version: v1 date: "2026-05-30T00:00:00.000Z" --- ``` Applying a proposal writes the active `SKILL.md` into the workspace `skills/` root, strips `status`, proposal `version`, and proposal `date` from the frontmatter, scans the draft, writes rollback metadata, and refuses stale updates when the target skill changed after the proposal was created. When `--proposal-dir` is used, the directory must contain `PROPOSAL.md`. Support files can be included under `assets/`, `examples/`, `references/`, `scripts/`, or `templates/`. OpenClaw stores support files with the proposal, scans them, verifies their hashes before apply, and writes them beside the active `SKILL.md` only after the proposal is applied. Agents can create, revise, list, and inspect pending proposals through the `skill_workshop` tool when the user asks for reusable work to be captured. Autonomous proposal capture from durable conversation signals is off by default and is enabled with `skills.workshop.autonomous.enabled`. If the user explicitly asks to approve/use/apply, reject, or quarantine a specific proposal, `skill_workshop` can also perform that proposal lifecycle action through the same Skill Workshop safeguards. ## Related - [CLI reference](/cli) - [Skills](/tools/skills)