OpenClawSkills
GitHub
Tools & Skills β€’ TutorialHeader.readTime

Skills

Skills: managed vs workspace, gating rules, and config/env wiring

OpenClaw uses ''''AgentSkills''-compatible'' skill folders to teach the agent how to use tools. Each skill is a directory containing a ''SKILL.md'' with YAML frontmatter and instructions. OpenClaw loads ''bundled skills'' plus optional local overrides, and filters them at load time based on environment, config, and binary presence.

Tutorial.step

Locations and precedence

Skills are loaded from <strong>three</strong> places:

1. <strong>Bundled skills</strong>: shipped with the install (npm package or OpenClaw.app)

2. '<strong>'Managed/local skills'</strong>': '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'~/.openclaw/skills'</code>'

3. '<strong>'Workspace skills'</strong>': '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'&lt;workspace&gt;/skills'</code>'

If a skill name conflicts, precedence is:

''<workspace>/skills'' (highest) β†’ ''~/.openclaw/skills'' β†’ bundled skills (lowest)

Additionally, you can configure extra skill folders (lowest precedence) via

''skills.load.extraDirs'' in ''~/.openclaw/openclaw.json''.

Tutorial.step

Per-agent vs shared skills

In <strong>multi-agent</strong> setups, each agent has its own workspace. That means:

- ''Per-agent skills'' live in ''<workspace>/skills'' for that agent only.

- ''Shared skills'' live in ''~/.openclaw/skills'' (managed/local) and are visible

to <strong>all agents</strong> on the same machine.

- ''Shared folders'' can also be added via ''skills.load.extraDirs'' (lowest

precedence) if you want a common skills pack used by multiple agents.

If the same skill name exists in more than one place, the usual precedence

applies: workspace wins, then managed/local, then bundled.

Tutorial.step

Plugins + skills

Plugins can ship their own skills by listing ''skills'' directories in

''openclaw.plugin.json'' (paths relative to the plugin root). Plugin skills load

when the plugin is enabled and participate in the normal skill precedence rules.

You can gate them via ''metadata.openclaw.requires.config'' on the plugin's config

entry. See ''Plugins'' for discovery/config and ''Tools'' for the

tool surface those skills teach.

Tutorial.step

ClawHub (install + sync)

ClawHub is the public skills registry for OpenClaw. Browse at

https://clawhub.com. Use it to discover, install, update, and back up skills.

Full guide: ''ClawHub''.

Common flows:

- Install a skill into your workspace:

- ''clawhub install <skill-slug>''

- Update all installed skills:

- ''clawhub update --all''

- Sync (scan + publish updates):

- ''clawhub sync --all''

By default, ''clawhub'' installs into ''./skills'' under your current working

directory (or falls back to the configured OpenClaw workspace). OpenClaw picks

that up as ''<workspace>/skills'' on the next session.

Tutorial.step

Security notes

- Treat third-party skills as untrusted code. Read them before enabling.

- Prefer sandboxed runs for untrusted inputs and risky tools. See ''Sandboxing''.

- ''skills.entries.*.env'' and ''skills.entries.*.apiKey'' inject secrets into the ''host'' process

for that agent turn (not the sandbox). Keep secrets out of prompts and logs.

- For a broader threat model and checklists, see ''Security''.

Tutorial.step

Format (AgentSkills + Pi-compatible)

''SKILL.md'' must include at least:

Notes:

- We follow the AgentSkills spec for layout/intent.

- The parser used by the embedded agent supports <strong>single-line</strong> frontmatter keys only.

- ''metadata'' should be a ''single-line JSON object''.

- Use ''{baseDir}'' in instructions to reference the skill folder path.

- Optional frontmatter keys:

- ''homepage'' β€” URL surfaced as "Website" in the macOS Skills UI.

- ''user-invocable'' β€” ''true|false'' (default: ''true'').

- ''disable-model-invocation'' β€” ''true|false'' (default: ''false'').

Tutorial.step

Gating (load-time filters)

OpenClaw ''filters skills at load time'' using ''metadata'' (single-line JSON):

Fields under ''metadata.openclaw'':

- ''always: true'' β€” always include the skill (skip other gates).

- ''emoji'' β€” optional emoji used by the macOS Skills UI.

- ''homepage'' β€” optional URL shown as "Website" in the macOS Skills UI.

- ''os'' β€” optional list of platforms (''darwin'', ''linux'', ''win32'').

- ''requires.bins'' β€” list; each must exist on ''PATH''.

- ''requires.anyBins'' β€” list; at least one must exist on ''PATH''.

- ''requires.env'' β€” list; env var must exist ''or'' be provided in config.

- ''requires.config'' β€” list of ''openclaw.json'' paths that must be truthy.

- ''primaryEnv'' β€” env var name associated with ''skills.entries.<name>.apiKey''.

- ''install'' β€” optional array of installer specs used by the macOS Skills UI.

Tutorial.step

Config overrides

Bundled/managed skills can be toggled and supplied with env values:

Note: if the skill name contains hyphens, quote the key (JSON5 allows quoted keys).

Config keys match the <strong>skill name</strong> by default. If a skill defines

''metadata.openclaw.skillKey'', use that key under ''skills.entries''.

Rules:

- ''enabled'' (default: ''true'') β€” set to ''false'' to disable.

- ''apiKey'' β€” injected as ''primaryEnv'' (if set) or ''<SKILLNAME>_API_KEY''.

- ''env'' β€” map of additional env vars to inject.

- ''config'' β€” map of config values exposed to the skill.