Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Design and build OpenClaw skills. Use when asked to "make/build/craft a skill", extract ad-hoc functionality into a skill, or package scripts/instructions for reuse. Covers OpenClaw-specific integration (tool calling, memory, message routing, cron, canvas, nodes) and ClawHub publishing.
Design and build OpenClaw skills. Use when asked to "make/build/craft a skill", extract ad-hoc functionality into a skill, or package scripts/instructions for reuse. Covers OpenClaw-specific integration (tool calling, memory, message routing, cron, canvas, nodes) and ClawHub publishing.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
An opinionated guide for creating OpenClaw skills. Focuses on OpenClaw-specific integration โ message routing, cron scheduling, memory persistence, channel formatting, frontmatter gating โ not generic programming advice. Docs: https://docs.openclaw.ai/tools/skills ยท https://docs.openclaw.ai/tools/creating-skills
This skill is written for frontier-class models (Opus, Sonnet). If you're running a cheaper model and find a stage underspecified, expand it yourself โ the design sequence is a scaffold, not a script. Cheaper models should: Read the pattern files in {baseDir}/patterns/ more carefully before architecting Spend more time on Stage 2 (capability discovery) โ enumerate OpenClaw features explicitly Be more methodical in Stage 4 (spec) โ write out the full structure before implementing Consult https://docs.openclaw.ai when unsure about any OpenClaw feature
Skip if building from scratch. Use when packaging existing functionality (scripts, TOOLS.md sections, conversation patterns, repeated instructions) into a skill. Gather what exists, where it lives, what works, what's fragile. Then proceed to Stage 1.
Work through with the user: What does this skill do? (one sentence) When should it load? Example phrases, mid-task triggers, scheduled triggers What does success look like? Concrete outcomes per example
Generalisability Ask early: Is this for your setup, or should it work on any OpenClaw instance? ChoiceImplicationsUniversalGeneric paths, no local assumptions, ClawHub-readyParticularCan reference local skills, tools, workspace config Skill Synergy (Particular Only) Scan <available_skills> from the system prompt for complementary capabilities. Read promising skills to understand composition opportunities. OpenClaw Features Review the docs with the skill's needs in mind. Think compositionally โ OpenClaw's primitives combine in powerful ways. Key docs to check: NeedDocMessages/concepts/messagesCron/scheduling/automation/cron-jobsSubagents/tools/subagentsBrowser/tools/browserCanvas UI/tools/ (canvas)Node devices/nodes/Slash commands/tools/slash-commands See {baseDir}/patterns/composable-examples.md for inspiration on combining these.
Based on Stages 1โ2, identify which patterns apply: If the skill...PatternWraps a CLI tool{baseDir}/patterns/cli-wrapper.mdWraps a web API{baseDir}/patterns/api-wrapper.mdMonitors and notifies{baseDir}/patterns/monitor.md Load all that apply and synthesise. Most skills combine patterns. Script vs. instructions split: Scripts handle deterministic mechanics (API calls, data gathering, file processing). SKILL.md instructions handle judgment (interpreting results, choosing approaches, composing output). The boundary is: could a less intelligent system do this reliably? If yes โ script.
Present proposed architecture for user review: Skill structure โ files and directories SKILL.md outline โ sections and key content Components โ scripts, modules, wrappers State โ stateless, session-stateful, or persistent (and where it lives) OpenClaw integration โ which features, how they interact Secrets โ env vars, keychain, config file (document in setup section, never hardcode) State locations: <workspace>/memory/ โ user-facing context {baseDir}/state.json โ skill-internal state (travels with skill) <workspace>/state/<skill>.json โ skill state in common workspace area If extracting: include migration notes (what moves, what workspace files need updating). Validate: Does it handle all Stage 1 examples? Any contradictions? Edge cases? Iterate until the user is satisfied. This is where design problems surface cheaply.
Default: same-session. Work through the spec with user review at each step. Reserve subagent handoff for complex script subcomponents only โ SKILL.md and integration logic stay in the main session. Create skill directory + SKILL.md skeleton (frontmatter + sections) Scripts (if any) โ get them working and tested SKILL.md body โ complete instructions Test against Stage 1 examples If extracting: update workspace files, clean up old locations, verify standalone operation.
The frontmatter determines discoverability and gating. Format follows the AgentSkills spec with OpenClaw extensions. --- name: my-skill description: [description optimised for discovery โ see below] homepage: https://github.com/user/repo # optional metadata: {"openclaw":{"emoji":"๐ง","requires":{"bins":["tool"],"env":["API_KEY"]},"primaryEnv":"API_KEY","install":[...]}} --- Critical: metadata must be a single-line JSON object (parser limitation).
The description determines whether the skill gets loaded. Include: Core capability โ what it does Trigger keywords โ terms users would say Contexts โ situations where it applies Test: would the agent select this skill for each of your Stage 1 example phrases?
KeyPurposenameSkill identifier (required)descriptionDiscovery text (required)homepageURL for docs/repouser-invocabletrue/false โ expose as slash command (default: true)disable-model-invocationtrue/false โ exclude from model prompt (default: false)command-dispatchtool โ bypass model, dispatch directly to a toolcommand-toolTool name for direct dispatchcommand-arg-moderaw โ forward raw args to tool
OpenClaw filters skills at load time using metadata.openclaw: FieldEffectalways: trueSkip all gates, always loademojiDisplay in macOS Skills UIosPlatform filter (darwin, linux, win32)requires.binsAll must exist on PATHrequires.anyBinsAt least one must existrequires.envEnv var must exist or be in configrequires.configConfig paths must be truthyprimaryEnvMaps to skills.entries.<name>.apiKeyinstallInstaller specs for auto-setup (brew/node/go/uv/download) Sandbox note: requires.bins checks the host at load time. If sandboxed, the binary must also exist inside the container.
Each eligible skill adds ~97 chars + name + description + location path to the system prompt. Keep descriptions informative but not bloated โ every character costs tokens on every turn.
"install": [ {"id": "brew", "kind": "brew", "formula": "tap/tool", "bins": ["tool"], "label": "Install via brew"}, {"id": "npm", "kind": "node", "package": "tool", "bins": ["tool"]}, {"id": "uv", "kind": "uv", "package": "tool", "bins": ["tool"]}, {"id": "go", "kind": "go", "package": "github.com/user/tool@latest", "bins": ["tool"]}, {"id": "dl", "kind": "download", "url": "https://...", "archive": "tar.gz"} ]
TokenMeaning{baseDir}This skill's directory (OpenClaw resolves at runtime)<workspace>/Agent's workspace root Use {baseDir} for skill-internal references (scripts, state, patterns) Use <workspace>/ for workspace files (TOOLS.md, memory/, etc.) Never hardcode absolute paths โ workspaces are portable For subagent scenarios, include path context in the task description (sandbox mounts differ)
Pattern files: {baseDir}/patterns/ (cli-wrapper, api-wrapper, monitor, composable-examples) OpenClaw docs: https://docs.openclaw.ai/tools/skills ClawHub: https://clawhub.com
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.