Building Custom Skills for OpenClaw: A Quick Introduction
An introduction to building custom OpenClaw skills: what SKILL.md files are, how they extend your agent's capabilities, and how to create your first skill.
#Why Build Custom Skills?
OpenClaw's community marketplace, ClawHub, has thousands of skills covering everything from weather reports to smart home control. But the most powerful agents are the ones with custom skills, skills you build yourself, tailored to your specific workflows, tools, and preferences.
Custom skills are how you transform a general-purpose AI agent into one that understands your job, your tools, and your way of doing things. And the best part is that building one is surprisingly straightforward. If you can write a clear set of instructions in Markdown, you can build a custom skill.
#What Is a Skill?
A skill in OpenClaw is a SKILL.md file, a Markdown document with YAML frontmatter that teaches your agent how to perform a specific task. Skills are not traditional code plugins. They are structured instructions that extend the agent's capabilities by telling it what tools to use, how to approach a task, and what format to deliver results in.
Think of it this way: skills are job training documents for your AI agent. When you install a "code reviewer" skill, you are not installing code review software. You are giving your agent a set of instructions on how to review code using the tools it already has access to.
Skills are the defining feature that separates OpenClaw from a generic chatbot. While SOUL.md defines who your agent is, skills define what it can do. A well-skilled agent can handle complex, multi-step workflows autonomously.
Want step-by-step guides for this and more?
ClawDocx Pro includes 500+ curated prompts, setup guides, SKILL.md files, and templates — everything to make your AI agent unstoppable.
See plans & pricing#The Anatomy of a SKILL.md File
Every skill follows the same basic structure: YAML frontmatter for metadata, followed by Markdown content for instructions. Let us break down each part.
#Frontmatter
The frontmatter tells OpenClaw how to manage and activate the skill:
---name: "Daily Standup Generator"description: "Generates a daily standup summary from calendar, tasks, and recent activity"trigger: "when asked for a standup update or daily summary"tools: ["calendar", "task-manager", "email"]author: "Your Name"version: "1.0.0"---Here is what each field does:
- name: A human-readable name for the skill
- description: A brief explanation of what the skill does (also used for ClawHub listings if you publish)
- trigger: Describes when this skill should activate. The agent uses this to decide whether to load the skill for a given task
- tools: Which of the agent's built-in tools this skill uses
- author and version: Metadata for tracking and publishing
#Instructions Body
After the frontmatter, the Markdown body contains the actual instructions. This is where you tell the agent how to execute the skill:
## InstructionsWhen asked to generate a standup update:1. Check the calendar for today's meetings and yesterday's completed meetings2. Review the task manager for: - Tasks completed yesterday - Tasks in progress today - Any blocked items3. Scan recent emails for anything requiring follow-up## Output FormatPresent the standup in this format:### Yesterday- [Completed task or meeting summary]- [Completed task or meeting summary]### Today- [Planned task or meeting]- [Planned task or meeting]### Blockers- [Any blocked items, or "None" if clear]Keep each bullet to one concise sentence. Do not include routine meetings unless something notable happened.#Building Your First Custom Skill
Let us walk through creating a custom skill from scratch. We will build a "Link Saver" skill that processes URLs you share with your agent, summarizes the content, and saves it to a categorized collection.
#Step 1: Create the Skill Directory
Custom skills live in ~/.openclaw/skills/custom/. Each skill gets its own folder:
mkdir -p ~/.openclaw/skills/custom/link-saver#Step 2: Write the SKILL.md File
Create the skill file:
touch ~/.openclaw/skills/custom/link-saver/SKILL.mdNow write the content. Here is a complete, working skill:
---name: "Link Saver"description: "Saves, summarizes, and categorizes shared links into a personal collection"trigger: "when the user shares a URL and asks to save it, or says 'save this link'"tools: ["web-search", "file-system"]author: "Your Name"version: "1.0.0"---## InstructionsWhen the user shares a URL to save:1. Fetch the content at the URL using web search2. Generate a concise summary (2-3 sentences)3. Determine the most appropriate category from: - Technology - Business - Science - Design - Personal - Other4. If the user specified a category or tags, use those instead5. Append the entry to ~/.openclaw/data/saved-links.md## Entry FormatEach saved link should be appended as:### [Article Title]- **URL:** [url]- **Category:** [category]- **Tags:** [comma-separated tags]- **Saved:** [current date]- **Summary:** [2-3 sentence summary]---## Edge Cases- If the URL is unreachable, inform the user and do not save- If the content is behind a paywall, save what is available and note the limitation- If the user does not specify tags, generate 2-3 relevant ones automatically## ConfirmationAfter saving, confirm with a brief message:"Saved: [Title] under [Category]. [One-line summary]."#Step 3: Restart the Gateway
For the new skill to take effect, restart the Gateway:
openclaw gateway restart#Step 4: Test It
Send your agent a message to test the new skill:
Save this link: https://example.com/interesting-articleYour agent should fetch the content, generate a summary, categorize it, and save it to the specified file.
When testing a new skill, start with simple cases before trying edge cases. If the basic flow works, gradually test with unusual inputs: broken URLs, very long articles, content in other languages. Refine the skill instructions based on what you observe.
#Skill Design Best Practices
After building your first skill, here are patterns that will make your future skills more effective.
#Be Explicit About Output Format
Agents produce better results when you show them exactly what the output should look like. Instead of saying "format it nicely," provide a template with placeholders.
#Define Edge Cases
What should the agent do when something goes wrong? When input is ambiguous? When a required tool is unavailable? Skills that handle edge cases gracefully feel much more polished.
#Keep Skills Focused
A skill should do one thing well. If you find yourself writing a skill that handles five different scenarios with complex branching logic, consider splitting it into multiple focused skills. The agent will compose them as needed.
#Use the Trigger Field Wisely
The trigger field determines when the agent activates your skill. Be specific enough that it activates when you want it to, but not so narrow that you have to use exact phrasing every time:
# Too broad — will activate for unrelated requeststrigger: "when the user asks about links"# Too narrow — requires exact phrasingtrigger: "when the user says 'please save this link to my collection'"# Just right — covers natural variationstrigger: "when the user shares a URL and wants to save, bookmark, or remember it"#Version Your Skills
As you refine your skills over time, increment the version number. This is especially useful if you publish to ClawHub or share skills with others.
#Custom Skills vs Community Skills
You might wonder when to build a custom skill versus installing one from ClawHub. Here is a simple framework:
| Scenario | Recommendation |
|---|---|
| Generic task (weather, news, reminders) | Install from ClawHub |
| Task specific to your tools or workflow | Build custom |
| Starting point you will heavily modify | Install from ClawHub, then customize |
| Sensitive workflow (involves private data) | Build custom |
You can install a community skill from ClawHub and then copy it to your custom skills directory to modify it. This gives you a head start while still allowing full customization. Custom skills take priority over community skills, so your modified version will be used instead of the original.
#Managing Your Skills
A few useful commands for working with skills:
# List all installed skillsopenclaw skills list# View details for a specific skillopenclaw skills info link-saver# Check that installed skills have their prerequisitesopenclaw skills check# Remove a community skill (ClawHub's own CLI, not openclaw)clawhub uninstall @owner/weather-reporter#What's Next?
You now know enough to build custom skills that extend your OpenClaw agent into genuinely useful territory. The link saver example is simple by design, but the same structure scales to complex, multi-step workflows: code deployment pipelines, customer onboarding sequences, research workflows, and more.
If you want to go deeper into skill development, ClawDocx has comprehensive guides on advanced skill patterns, including multi-tool orchestration, conditional logic, skill chaining, and publishing to ClawHub. We also maintain a collection of battle-tested skill templates that you can use as starting points for your own creations.
The best OpenClaw agents are not the ones with the most skills. They are the ones with the right skills, built specifically for the person using them. Start building yours.