Caricamento in corso...
Caricamento in corso...
Last synced: Today, 22:00
Technical reference for the OpenClaw framework. Real-time synchronization with the official documentation engine.
Use this file to discover all available pages before exploring further.
OpenClaw uses AgentSkills-compatible skill folders to teach the agent how to use tools. Each skill is a directory containing a
SKILL.mdOpenClaw loads skills from these sources, highest precedence first:
| # | Source | Path |
|---|---|---|
| 1 | Workspace skills | text <workspace>/skills |
| 2 | Project agent skills | text <workspace>/.agents/skills |
| 3 | Personal agent skills | text ~/.agents/skills |
| 4 | Managed/local skills | text ~/.openclaw/skills |
| 5 | Bundled skills | shipped with the install |
| 6 | Extra skill folders | text skills.load.extraDirs |
If a skill name conflicts, the highest source wins.
Codex CLI's native
$CODEX_HOME/skillsopenclaw migrate codex --dry-runopenclaw migrate codex--skill <name>In multi-agent setups each agent has its own workspace:
| Scope | Path | Visible to |
|---|---|---|
| Per-agent | text <workspace>/skills | Only that agent |
| Project-agent | text <workspace>/.agents/skills | Only that workspace's agent |
| Personal-agent | text ~/.agents/skills | All agents on that machine |
| Shared managed/local | text ~/.openclaw/skills | All agents on that machine |
| Shared extra dirs | text skills.load.extraDirs | All agents on that machine |
Same name in multiple places → highest source wins. Workspace beats project-agent, beats personal-agent, beats managed/local, beats bundled, beats extra dirs.
Skill location and skill visibility are separate controls. Location/precedence decides which copy of a same-named skill wins; agent allowlists decide which skills an agent can actually use.
json5{ agents: { defaults: { skills: ["github", "weather"], }, list: [ { id: "writer" }, // inherits github, weather { id: "docs", skills: ["docs-search"] }, // replaces defaults { id: "locked-down", skills: [] }, // no skills ], }, }
Plugins can ship their own skills by listing
skillsopenclaw.plugin.jsonbrowser-automationPlugin skill directories are merged into the same low-precedence path as
skills.load.extraDirsmetadata.openclaw.requires.configSee Plugins for discovery/config and Tools for the tool surface those skills teach.
The optional, experimental Skill Workshop plugin can create or update workspace skills from reusable procedures observed during agent work. It is disabled by default and must be explicitly enabled via
plugins.entries.skill-workshopSkill Workshop writes only to
<workspace>/skillsUse it for corrections such as "next time, verify GIF attribution" or hard-won workflows such as media QA checklists. Start with pending approval; use automatic writes only in trusted workspaces after reviewing its proposals. Full guide: Skill Workshop plugin.
ClawHub is the public skills registry for OpenClaw. Use native
openclaw skillsclawhub| Action | Command |
|---|---|
| Install a skill into the workspace | text openclaw skills install <skill-slug> |
| Update all installed skills | text openclaw skills update --all |
| Sync (scan + publish updates) | text clawhub sync --all |
Native
openclaw skills installskills/clawhub./skills<workspace>/skillsskills/<group>/<skill>/SKILL.mdClawHub skill pages expose the latest security scan state before install, with scanner detail pages for VirusTotal, ClawScan, and static analysis.
openclaw skills install <slug>clawhub skill rescan <slug>SKILL.mdskills.installcriticalopenclaw skills install <slug>skills.entries.*.envskills.entries.*.apiKeyFor a broader threat model and checklists, see Security.
SKILL.mdmarkdown--- name: image-lab description: Generate or edit images via a provider-backed image workflow ---
OpenClaw follows the AgentSkills spec for layout/intent. The parser used by the embedded agent supports single-line frontmatter keys only;
metadata{baseDir}OpenClaw filters skills at load time using
metadatamarkdown--- name: image-lab description: Generate or edit images via a provider-backed image workflow metadata: { "openclaw": { "requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] }, "primaryEnv": "GEMINI_API_KEY", }, } ---
Fields under
metadata.openclawIf no
metadata.openclawskills.allowBundledrequires.binsagents.defaults.sandbox.docker.setupCommandsetupCommandsummarizeskills/summarize/SKILL.mdsummarizemarkdown--- name: gemini description: Use Gemini CLI for coding assistance and Google search lookups. metadata: { "openclaw": { "emoji": "♊️", "requires": { "bins": ["gemini"] }, "install": [ { "id": "brew", "kind": "brew", "formula": "gemini-cli", "bins": ["gemini"], "label": "Install Gemini CLI (brew)", }, ], }, } ---
Bundled and managed skills can be toggled and supplied with env values under
skills.entries~/.openclaw/openclaw.jsonjson5{ skills: { entries: { "image-lab": { enabled: true, apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // or plaintext string env: { GEMINI_API_KEY: "GEMINI_KEY_HERE", }, config: { endpoint: "https://example.invalid", model: "nano-pro", }, }, peekaboo: { enabled: true }, sag: { enabled: false }, }, }, }
If the skill name contains hyphens, quote the key (JSON5 allows quoted keys). Config keys match the skill name by default — if a skill defines
metadata.openclaw.skillKeyskills.entriesWhen an agent run starts, OpenClaw:
skills.entries.<key>.envskills.entries.<key>.apiKeyprocess.envEnvironment injection is scoped to the agent run, not a global shell environment.
For the bundled
claude-cli--plugin-dirskills.entries.*OpenClaw snapshots the eligible skills when a session starts and reuses that list for subsequent turns in the same session. Changes to skills or config take effect on the next new session.
Skills can refresh mid-session in two cases:
Think of this as a hot reload: the refreshed list is picked up on the next agent turn. If the effective agent skill allowlist changes for that session, OpenClaw refreshes the snapshot so visible skills stay aligned with the current agent.
By default, OpenClaw watches skill folders and bumps the skills snapshot when
SKILL.mdskills.loadjson5{ skills: { load: { watch: true, watchDebounceMs: 250, }, }, }
If the Gateway runs on Linux but a macOS node is connected with
system.rundenyexechost=nodeThis relies on the node reporting its command support and on a bin probe via
system.whichsystem.runWhen skills are eligible, OpenClaw injects a compact XML list of available skills into the system prompt (via
formatSkillsForPromptpi-coding-agent<name><description><location>Formula (characters):
texttotal = 195 + Σ (97 + len(name_escaped) + len(description_escaped) + len(location_escaped))
XML escaping expands
& < > " '&<OpenClaw ships a baseline set of skills as bundled skills with the install (npm package or OpenClaw.app).
~/.openclaw/skillsBrowse https://clawhub.ai. Full configuration schema: Skills config.
© 2024 TaskFlow Mirror
Powered by TaskFlow Sync Engine