March 9, 2026
How to Write Your First SKILL.md for OpenClaw
Learn how to write a SKILL.md file for OpenClaw. No coding required — just plain English instructions in Markdown. Complete tutorial with examples.
Writing a SKILL.md is one of the most powerful things you can do with OpenClaw. It lets you teach your agent a custom workflow — in plain English, with no code required. This guide walks you through the complete process.
What Is a SKILL.md?
A SKILL.md is a Markdown instruction file that tells your OpenClaw agent how to handle a specific task or domain. When you send a message that matches a skill’s triggers, OpenClaw automatically loads and follows the skill’s instructions.
Think of it as writing a Standard Operating Procedure (SOP) for your AI agent.
Basic Structure
A skill is a folder containing at minimum one file:
my-skill/
SKILL.md
Optional additional files:
my-skill/
SKILL.md # Required: main instruction file
helpers.py # Optional: Python helper scripts
template.md # Optional: output templates
data.json # Optional: reference data
SKILL.md Frontmatter
Every SKILL.md starts with YAML frontmatter (between --- delimiters):
---
name: daily-briefing
description: Provides a comprehensive morning briefing with weather, calendar, and news
version: 1.0.0
author: your-username
triggers:
- "morning briefing"
- "daily summary"
- "what's on today"
- "start my day"
dependencies:
- calendar
- weather
- web-search
---
Key fields:
| Field | Required | Description |
|---|---|---|
name | Yes | Unique identifier (lowercase, hyphens) |
description | Yes | What this skill does (shown in ClawHub) |
version | Recommended | Semantic version (1.0.0) |
triggers | Recommended | Phrases that activate this skill |
dependencies | Optional | Other skills this one relies on |
Writing the Instructions
After the frontmatter, write your instructions in plain Markdown. Structure them clearly:
# Daily Briefing Skill
## Overview
This skill generates a morning briefing when the user asks for their daily summary.
## What to Include
1. Current weather for the user's location (from SOUL.md context)
2. Today's calendar events (from Google Calendar integration)
3. Top 3 news headlines relevant to the user's interests
4. Any pending high-priority emails
## Step-by-Step Process
1. Check the calendar skill for today's events
2. Get weather for the user's configured city
3. Search for news on topics in the user's SOUL.md
4. Check Gmail for unread emails flagged as important
5. Compile everything into the output format below
## Output Format
Present the briefing in this structure:
**🌤 Weather:** [condition], [temp]°C / [temp]°F
**📅 Today's Schedule:**
- [time]: [event]
- [time]: [event]
**📰 Headlines:**
1. [headline] — [source]
2. [headline] — [source]
3. [headline] — [source]
**📬 Priority Emails:** [count] unread ([list first 2 subjects])
## Notes
- If weather data is unavailable, skip that section
- Use the user's preferred time format from SOUL.md (12h or 24h)
- Keep the briefing concise — under 200 words total
Complete Example: Price Negotiation Skill
Here’s a real-world skill example — a negotiation assistant for freelancers:
---
name: rate-negotiator
description: Helps negotiate project rates via email drafting
version: 1.0.0
triggers:
- "negotiate rate"
- "help me push back on this offer"
- "counter offer"
---
# Rate Negotiator
## When to Use
Use this skill when the user wants help negotiating a project fee, responding to a low offer, or drafting a counter-proposal.
## Principles
- Always anchor high but reasonable (no more than 30% above market)
- Lead with value, not just hours
- Give the client an easy "yes" path
## Process
1. Ask the user for: the offered rate, their target rate, and the project scope
2. Draft a counter-proposal email that:
- Thanks the client for the offer
- Reframes the conversation around deliverables/value
- States the counter rate clearly
- Offers a small concession (payment terms, extras) to make "yes" easy
3. Present the draft for user review before sending
## Tone
Professional, confident, not apologetic. Never say "I understand if that's too much."
Where to Put Your Skill
Drop the skill folder into:
- Mac/Linux:
~/.openclaw/skills/your-skill-name/ - Windows:
%USERPROFILE%\.openclaw\skills\your-skill-name\
Then restart OpenClaw:
openclaw restart
Your agent will automatically discover and load the new skill.
Testing Your Skill
- Restart OpenClaw after adding the skill
- Send
/skillsto your agent to confirm the skill appears in the list - Use one of your trigger phrases to activate it
- Iterate: if the output isn’t right, refine the instructions in SKILL.md and restart
Publishing to ClawHub (Optional)
Once your skill is working well, you can share it with the community:
clawhub login
clawhub publish ./my-skill
The ClawHub team reviews submissions for safety before publishing. Review typically takes 1–3 business days.
Next: Browse ClawHub Skills · SOUL.md Guide