We'd love your skills! Here's how to contribute.
- Propose your idea — Open a Skill Proposal issue to get feedback
- Create the skill — Use the
create-skillsuperpower or copy the template - Validate locally — Run
./scripts/validate-skills.shto catch issues - Submit a PR — CI validates automatically on any PR that touches
skills/
| Directory | For | Examples |
|---|---|---|
skills/core/ |
General agent methodology — works in any runtime | brainstorming, debugging, TDD |
skills/openclaw-native/ |
Requires persistence, memory, or long sessions | task-handoff, self-recovery |
skills/community/ |
Community contributions — any category | your skill goes here! |
New contributors should use skills/community/. Proven community skills may be promoted to core or openclaw-native over time.
- Directory names use kebab-case:
my-new-skill - Each skill is one directory with one
SKILL.mdfile - Keep skills under 80 lines — if it's longer, consider splitting
- Frontmatter
namemust match the directory name - Include clear "When to Use" triggers so the agent knows when to invoke it
- If your skill persists state between sessions, set
stateful: truein frontmatter and includeSTATE_SCHEMA.yamlin the skill directory - If your skill should run on a schedule, set
cron: "<expression>"in frontmatter —install.shhandles registration automatically
Use stateful: true when your skill needs to remember data between separate invocations (e.g. tracking progress across a multi-session task, recording last-run timestamps to prevent duplicate runs).
STATE_SCHEMA.yamlis committed alongsideSKILL.md— it documents the shape of runtime state and is portable across machines- Runtime state lives at
~/.openclaw/skill-state/<skill-name>/state.yamlon each local machine — never committed, created automatically byinstall.sh - Schema format: start with
version: "1.0"and afields:block. See any existingskills/openclaw-native/*/STATE_SCHEMA.yamlfor examples. - Community skills should default to stateless unless state is genuinely required — don't add
stateful: truefor simple methodology skills
Run the validation script before submitting:
./scripts/validate-skills.shIt checks: frontmatter format, naming conventions, file structure, line count, stateful skill coherence (STATE_SCHEMA.yaml present when stateful: true), and cron expression format.
- One skill per PR
- Include a short description of why this skill is needed
- If it overlaps with an existing skill, explain the difference
- Link to the Skill Proposal issue if one exists