OpenClaw Custom Skills Development: Build Your Own Extensions

OpenClaw Custom Skills Development: Build Your Own Extensions

OpenClaw Custom Skills Development: Build Your Own Extensions

By Sarah Chen | February 7, 2026


OpenClaw Custom Skills Development: Build Your Own Extensions

Skills are what make OpenClaw powerful. While OpenClaw comes with built-in tools, custom skills let you teach your agent entirely new capabilities.

---

What Are Skills?

Skills are reusable instruction packages that define:

  • When to use a capability
  • How to execute a task
  • What tools are available
  • Think of skills as recipes — they tell OpenClaw how to combine tools to accomplish specific goals.

    ---

    Skill Structure

    A skill is a folder with specific files:

    my-custom-skill/ ├── SKILL.md          # Required: Skill definition ├── prompt.md         # Optional: Agent instructions ├── skill.py          # Optional: Python logic ├── config.json       # Optional: Configuration schema └── README.md         # Optional: Documentation 

    SKILL.md (Required)

    --- name: weather description: Get current weather and forecasts keywords: [weather, forecast, temperature, conditions] platforms: [macOS, Linux, Windows] authors: [OpenClaw Team] ---

    Weather Skill

    Provides current weather conditions and forecasts for any location.

    Usage

    When the user asks about weather:

    1. Ask for their location if not provided 2. Use the web_fetch tool to get weather data 3. Parse the temperature and conditions 4. Format a friendly response

    Examples

  • "What's the weather in New York?"
  • "Will it rain tomorrow?"
  • "How's the weather out there?"
  • prompt.md (Optional)

    # Weather Prompt

    You are a weather assistant. When asked about weather:

    1. Get the location from context or ask the user 2. Use web_fetch to call: https://wttr.in/{location}?format=%C+%T+%h 3. Parse the response for temperature and conditions 4. Reply with: "Currently [conditions] at [temperature]"

    Keep responses brief and friendly.

    skill.py (Optional)

    #!/usr/bin/env python3 """Weather skill Python implementation"""

    import requests import json

    def run(location: str) -> dict: """Get weather for a location""" try: response = requests.get( f"https://wttr.in/{location}", params={"format": "json"} ) return { "success": True, "weather": response.json() } except Exception as e: return { "success": False, "error": str(e) }

    ---

    Creating Your First Skill

    Step 1: Create the Skill Folder

    mkdir -p ~/.openclaw/skills/my-first-skill cd ~/.openclaw/skills/my-first-skill 

    Step 2: Write SKILL.md

    Create the skill definition:

    --- name: my-first-skill description: A simple skill for learning keywords: [tutorial, example, first-skill] platforms: [macOS, Linux, Windows] authors: [Your Name] ---

    My First Skill

    This skill demonstrates the basic skill structure.

    Usage

    When the user says "test my skill", respond with: "This is my first OpenClaw skill working!"

    Triggers

  • "test my skill"
  • "check my skill"
  • Step 3: Enable the Skill

    # Enable the skill openclaw skills enable my-first-skill

    Verify it's loaded

    openclaw skills list

    Step 4: Test the Skill

    # Send a test message openclaw message send --message "test my skill" 

    ---

    Advanced Skill Development

    Using Tools in Skills

    Skills can define which tools are available:

    ## Available Tools

  • read - Read files from disk
  • write - Create or modify files
  • exec - Run shell commands
  • Restrictions

  • Maximum 5 file reads per session
  • Only execute commands in /Users/you/projects
  • Configuration in Skills

    ## Configuration

    This skill requires configuration:

    ParameterTypeRequiredDescription
    apiKeystringYesAPI key for service
    modestringNoOperation mode (default: normal)

    User Configuration

    # Configure the skill openclaw config set skills.entries.my-first-skill.apiKey "YOUR_KEY" openclaw config set skills.entries.my-first-skill.mode "advanced" 

    ---

    Publishing to ClawHub

    Share your skills with the community:

    Step 1: Prepare Your Skill

    Ensure you have:

  • Complete SKILL.md with all sections
  • Working implementation
  • README with examples
  • License file (MIT recommended)
  • Step 2: Package the Skill

    # Create a package tar -czvf my-first-skill-1.0.0.tar.gz my-first-skill/ 

    Step 3: Publish via CLI

    # Login to ClawHub openclaw clawhub login

    Publish the skill

    openclaw clawhub publish ./my-first-skill

    Step 4: Add Metadata

    Edit SKILL.md with community info:

    --- name: my-first-skill description: A simple skill for learning keywords: [tutorial, example, first-skill] platforms: [macOS, Linux, Windows] authors: [Your Name] homepage: https://github.com/yourusername/openclaw-skills repository: https://github.com/yourusername/openclaw-skills license: MIT version: 1.0.0 

    ---

    Skill Development Workflow

    1. Plan the Skill

  • What problem does it solve?
  • What tools does it need?
  • How should it be triggered?
  • 2. Create the Skeleton

    openclaw skills create my-skill --template basic 

    3. Implement and Test

    # Develop locally openclaw skills dev my-skill

    Test in isolation

    openclaw skills test my-skill --verbose

    Check for errors

    openclaw skills lint my-skill

    4. Iterate

    # Make changes nano ~/.openclaw/skills/my-skill/SKILL.md

    Reload skill

    openclaw skills reload my-skill

    5. Share

    openclaw clawhub publish my-skill --public 

    ---

    Useful Skill Templates

    API Integration Skill

    --- name: api-integration description: Call external APIs with authentication keywords: [api, http, rest, integration] ---

    API Integration Skill

    Calls external REST APIs with proper authentication.

    Configuration

    ParameterTypeRequired
    baseUrlstringYes
    apiKeystringYes
    headersobjectNo

    Usage

    json { "action": "api-call", "url": "/endpoint", "method": "GET" }
    `

    File Processing Skill

    markdown
    name: file-processor description: Process and transform files keywords: [files, processing, transform, csv, json] ---

    File Processor Skill

    Processes files in various formats.

    Supported Formats

  • CSV
  • JSON
  • XML
  • Markdown
  • Usage

    When user asks to process a file:

    1. Read the file using read tool 2. Parse the format 3. Apply transformations 4. Write output using write tool

     ---

    Troubleshooting Skill Issues

    Skill Not Loading

    bash

    Check skill status

    openclaw skills list --verbose

    Check for syntax errors

    openclaw skills validate my-skill

    View error logs

    openclaw gateway logs | grep skill
     

    Tools Not Working

    bash

    Check tool availability

    openclaw tools list

    Verify permissions

    openclaw config get tools.entries
     

    Configuration Errors

    bash

    Validate configuration

    openclaw config validate

    Check skill config

    openclaw config get skills.entries.my-skill `

    ---

    Further Reading

  • OpenClaw Skills Documentation
  • Zen van Riel: Custom Skill Creation Guide
  • ClawHub Skills Directory
  • ---

    Related Articles:

  • OpenClaw Tools vs Skills: Understanding the Mental Model
  • OpenClaw ClawHub Marketplace: Browse and Install Community Skills
  • OpenClaw Custom Skills Development: Build Your Own Extensions

  • Tags: OpenClaw, AI, Tutorial

    Comments

    Popular posts from this blog

    OpenClaw Tools vs Skills: Understanding the Mental Model

    OpenClaw Sub-Agents: How to Run Parallel Tasks Efficiently

    OpenClaw Slack Integration: Channel Setup and Multi-Agent Configuration