ClawKit LogoClawKit

Skill System Design

OpenClaw's power comes from its modular Skill System. Every capability — from clicking buttons to reading files — is a self-contained Skill backed by the Model Context Protocol (MCP).

What is a Skill?

A Skill is a unit of capability that an agent can invoke. Think of it as a "tool" the LLM can call during its reasoning loop. Each Skill declares:

  • Name: A unique identifier (e.g., browser_click, file_read)
  • Description: A natural language explanation for the LLM to understand when to use it
  • Input Schema: A JSON Schema defining what parameters the Skill accepts
  • Handler: The actual implementation that executes the action
MCP-Based

Skills are exposed as MCP Tools. This means any MCP-compatible client (Claude Desktop, Cursor, etc.) can use OpenClaw Skills natively.

Sandboxed

Each Skill runs in its own execution context. A misbehaving Skill cannot crash the agent core or leak data to other Skills.

Skill Lifecycle

When the agent decides to use a Skill, the following pipeline executes:

  1. Selection: The LLM examines available Skills and picks the best match for its current sub-goal.
  2. Validation: The input parameters are validated against the Skill's JSON Schema. Malformed calls are rejected before execution.
  3. Execution: The Skill handler runs with the validated parameters. It may interact with the browser, file system, or external APIs.
  4. Response: The result is returned to the agent as structured data, which feeds into the next reasoning step.

Built-in Skill Categories

Browser Actions
  • click
  • type
  • scroll
  • screenshot
  • navigate
File Operations
  • read_file
  • write_file
  • list_dir
  • search_files
System Tools
  • run_command
  • http_request
  • extract_text
  • wait

Creating Custom Skills

You can extend OpenClaw by writing your own Skills. A custom Skill is just an MCP tool definition:

{
  "name": "my_custom_skill",
  "description": "Fetches the current weather for a given city",
  "inputSchema": {
    "type": "object",
    "properties": {
      "city": {
        "type": "string",
        "description": "The city name"
      }
    },
    "required": ["city"]
  }
}

Once registered in your config, the agent will automatically discover and use your custom Skill when relevant. Visit the Skill Registry to browse community-verified Skills.

Skill Composition

Advanced agents compose multiple Skills into sequences. For example, a "fill out a form" task might chain:

navigatewaitclick (input)type (value)click (submit)screenshot (verify)

The LLM decides each step dynamically — it doesn't follow a pre-programmed sequence. This makes agents resilient to unexpected UI changes.

Need Help?

Try our automated tools to solve common issues instantly.