OpenClaw Skills is a registry of installable
techniques — modules — that an AI coding agent can load
at runtime to acquire a capability it did not have on its own.
Each module is a small, versioned document (a SKILL.md
file and any supporting assets) maintained at
github.com/openclaw/skills and distributed through the
clawhub client.
A module is not a library and not a prompt. It is an edition: a particular way of performing a task, attested by a correspondent who found it useful, and typeset into the Registry so that other operators may install it by name. The document is the payload; the typography is ceremonial.
Five runtimes — openclaw, claude-code,
codex, gemini-cli, and cursor —
currently read the Registry, each through its own adapter. A module
that typechecks in one runtime typechecks in all; the adapters only
differ in where they expect the file to land on disk.
See § 04.
The document is the payload; the typography is ceremonial. Handbook, § 01
Modules are installed with the clawhub client. The
canonical form is clawhub install <author>/<slug> —
author is the organisation or handle that published the module,
slug is the module's short name. The client resolves the pair
against the Registry, fetches the pinned commit of
SKILL.md, writes it to the active runtime's skills
directory, and appends an entry to the local manifest.
$ clawhub install openclaw/frontend-design → resolving openclaw/frontend-design … ok→ runtime: claude-code (~/.claude/skills)→ fetching SKILL.md @ 4b2f91c … 14.2 kB→ writing ~/.claude/skills/frontend-design/SKILL.md→ updating manifest … okinstalled openclaw/frontend-design v1.3.0attested yes (sha256:5a3e…)issued 14.iv.2026 · 1 module
claude-code runtime.Where modules land § 2.1 · install paths
The install path is determined by the active runtime, not the
client. clawhub refuses to write outside the runtime's
declared skills directory; a module installed for one runtime is
not visible to another without a second install. See § 04 for the
full table.
Uninstalling § 2.2
clawhub uninstall <author>/<slug> removes
the SKILL.md and its entry in the manifest; the
attestation is retained on the Registry side, since it refers to
the module's history, not your copy of it.
A SKILL.md is a Markdown document with a YAML
frontmatter block. The frontmatter declares the module's identity
and metadata; the body is the instructional text the agent loads.
Four frontmatter fields are canonical — name,
description, homepage, and the optional
metadata map. Additional keys are permitted but
ignored by the current readers.
openclaw.dev/m/<slug> is accepted.class, runtimes, depends. Unreserved keys are preserved but not typechecked.---name: frontend-design description: Commit to a bold aesthetic direction when designing interfaces outside an existing brand system. homepage: https://openclaw.dev/m/frontend-design metadata: class: technique runtimes: [openclaw, claude-code, codex] depends: [] ---# Frontend design Use this module when you are designing an interface without a brand to inherit from — a prototype, a personal site, a greenfield tool. Commit to a single, legible aesthetic direction rather than averaging three at once.
SKILL.md, abbreviated.
Five coding agents currently read the Registry. Each has its own
adapter — a short shim that tells clawhub where to
place a module and how the agent will discover it on load. Adapters
are versioned independently of modules; a module that worked
against the v1 adapter will continue to work under v2.
| Runtime | Adapter | Install path | Status |
|---|---|---|---|
| openclaw | v2.3 | ~/.openclaw/skills/<slug>/SKILL.md | ● Supported |
| claude-code | v2.1 | ~/.claude/skills/<slug>/SKILL.md | ● Supported |
| codex | v1.4 | ~/.codex/skills/<slug>/SKILL.md | ● Supported |
| gemini-cli | v1.2 | ~/.gemini/extensions/<slug>/SKILL.md | ◐ Partial · metadata ignored |
| cursor | v0.9 | .cursor/rules/<slug>.md | ◯ Release candidate |
A module declares which runtimes it has been attested against in
metadata.runtimes. The declaration is informational:
clawhub will install under any listed runtime and will
warn, not refuse, when installing under an unlisted one.
New modules are contributed by pull request against
openclaw/skills. The Academy reviews contributions
for correspondence, not novelty — a module may cover the same
ground as an existing one so long as the technique is its own.
The full workflow, in five steps:
Draft in isolation
Write the
SKILL.mdin a scratch directory on your own workstation. Include the four frontmatter fields; omitmetadata.runtimesuntil step three.Attest the draft
Run
clawhub attest ./SKILL.md. The client typechecks the frontmatter, computes the sha256 of the body, and prints a draft attestation id. No network call yet.Field-test against a runtime
Install the draft locally with
clawhub install --local ./and exercise it against at least one runtime. Note which runtimes you tested and add them tometadata.runtimes.Open a pull request
Fork
openclaw/skills, commit your module undermodules/<your-handle>/<slug>/, and open a PR. A short rationale in the PR body — what you tried, what you kept — is useful to the reviewer.Typesetting & issuance
Once merged, the module is typeset into the next dispatch. The attestation is recorded; your handle is added to the colophon if you consent. From this point the module is installable by name.
Every installed module is accompanied by a _meta.json
file in its directory. The manifest records the version installed,
the commit it was drawn from, the date of publication, and the
short history of prior revisions. Versioning is semantic — major,
minor, patch — and is set by the author, not the client.
{
"name": "openclaw/frontend-design",
"version": "1.3.0",
"commit": "4b2f91c",
"published": "2026-04-14T09:22:00Z",
"sha256": "5a3e…c17",
"runtimes": ["openclaw", "claude-code", "codex"],
"history": [
{ "version": "1.2.1", "commit": "c9d11a0", "published": "2026-02-28" },
{ "version": "1.2.0", "commit": "7a41e03", "published": "2026-01-19" },
{ "version": "1.1.0", "commit": "22c8f9b", "published": "2025-11-03" }
]
}_meta.json for openclaw/frontend-design v1.3.0.clawhub update <slug> compares the local commit
against the Registry's pinned commit and fetches the newer
SKILL.md if one exists. The older entry is not
removed from the manifest's history — the module
remembers what it was.
Corrections to a published module are recorded as errata against the version they fix, not as a new version, until enough have accumulated to warrant a patch release. Each errata entry carries a short reason, the attributable handle (where permission is given), and the date it was lodged.
To submit: open a pull request against the module titled
errata: <one-line reason>. The reviewer prints
accepted errata in the margin of the next dispatch and credits the
submitter in the colophon. Rejected errata are replied to in
correspondence and retained in the PR history; they are not
printed.
The Registry exposes several machine-readable surfaces so that other clients and agents may read it without parsing these pages. All three live under the canonical domain and are rebuilt on each typeset.
SKILL.md, served at a stable URL. Identical byte-for-byte to the attested copy.
These surfaces are informational and will be wired to real files
in a later pass. A client reading /manifest.json
today will receive a snapshot from the last typeset; read it
as of its date, not as of the request.
— end of Book 02 —