OpenClaw Skills System Explained: How SKILL.md Works
How does the OpenClaw skills system work? Complete explanation of SKILL.md format, skill installation, permissions, and building custom capabilities.
The OpenClaw skills system is what transforms OpenClaw from a capable chatbot into a true AI agent. Skills are pluggable capability modules that give your agent access to external services, APIs, and system capabilities. The SKILL.md format is the standard way skills declare their capabilities, permissions, and implementation. Here's how it all works.
What Is a Skill?
A skill is a directory containing:
SKILL.md— the skill manifest (human-readable + machine-parseable metadata)main.py(or other entry point) — the actual implementationrequirements.txt— Python dependencies- Optionally:
config.schema.json, tests, documentation
Skills live in ~/.openclaw/skills/ and are automatically discovered by OpenClaw on startup.
The SKILL.md Format
SKILL.md is a special Markdown file with YAML front-matter metadata:
---
name: web-search
version: 1.4.2
author: openclaw-team
description: Search the web using Brave Search API
permissions:
- network_access
- read_env:BRAVE_API_KEY
tools:
- name: search_web
description: Search the internet for current information
parameters:
query:
type: string
description: The search query
required: true
max_results:
type: integer
description: Maximum number of results to return
default: 5
minimum_openclaw_version: "2.3.0"
---
# Web Search Skill
This skill enables your OpenClaw agent to search the internet using
the Brave Search API...
How OpenClaw Reads SKILL.md
When OpenClaw starts, it:
- Scans
~/.openclaw/skills/for skill directories - Parses each
SKILL.mdfront-matter for metadata - Registers the skill's
toolsas callable functions for the LLM - Validates requested
permissionsagainst thetools.allowconfiguration - Loads the skill's Python module
The LLM then knows about all registered tools and can call them based on conversation context.
Permissions System
Skills declare what they need access to. OpenClaw validates these against your security config before activating a skill:
network_access— can make outbound HTTP requestsread_file— can read files from your filesystemwrite_file— can write filesexecute_command— can run shell commands (high risk — review carefully)read_env:VAR_NAME— can read specific environment variables
Skills requesting undeclared permissions are blocked automatically.
Installing Skills
# From ClawHub
python -m openclaw skill install web-search
# From a local directory
python -m openclaw skill install /path/to/skill
# From a GitHub URL
python -m openclaw skill install https://github.com/user/my-skill
Frequently Asked Questions
Can a skill call other skills?
Yes. Skills can invoke other installed skills through the OpenClaw internal API, enabling skill composition. A research skill might call web-search and then call a summarization skill.
How does the LLM know when to use a skill?
The LLM receives all tool definitions from installed skills in its system context. It decides when to call tools based on conversation context and its training to use tools when appropriate. Well-written description fields in SKILL.md are critical for the LLM to use tools correctly.
What's the difference between OpenClaw skills and n8n workflows?
Skills are tightly integrated with your OpenClaw agent's LLM — the agent decides when to use them contextually. n8n workflows are triggered by explicit events and execute linearly. Skills are more adaptive; n8n is more predictable for fixed pipelines.
nacre.sh
Run OpenClaw without the server headaches
Dedicated instance, automatic TLS, nightly backups, and 290+ LLM integrations. Live in under 90 seconds from $12/month.
Deploy your agent →