skillcraftDesign 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.
Install via ClawdBot CLI:
clawdbot install jmz1/skillcraftAn 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:
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:
{baseDir}/patterns/ more carefully before architectingSkip 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:
Ask early: Is this for your setup, or should it work on any OpenClaw instance?
| Choice | Implications |
|--------|-------------|
| Universal | Generic paths, no local assumptions, ClawHub-ready |
| Particular | Can reference local skills, tools, workspace config |
Scan from the system prompt for complementary capabilities. Read promising skills to understand composition opportunities.
Review the docs with the skill's needs in mind. Think compositionally β OpenClaw's primitives combine in powerful ways. Key docs to check:
| Need | Doc |
|------|-----|
| Messages | /concepts/messages |
| Cron/scheduling | /automation/cron-jobs |
| Subagents | /tools/subagents |
| Browser | /tools/browser |
| Canvas 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... | Pattern |
|-----------------|---------|
| Wraps a CLI tool | {baseDir}/patterns/cli-wrapper.md |
| Wraps a web API | {baseDir}/patterns/api-wrapper.md |
| Monitors 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:
State locations:
/memory/ β user-facing context{baseDir}/state.json β skill-internal state (travels with skill)/state/.json β skill state in common workspace areaIf 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.
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:
Test: would the agent select this skill for each of your Stage 1 example phrases?
| Key | Purpose |
|-----|---------|
| name | Skill identifier (required) |
| description | Discovery text (required) |
| homepage | URL for docs/repo |
| user-invocable | true/false β expose as slash command (default: true) |
| disable-model-invocation | true/false β exclude from model prompt (default: false) |
| command-dispatch | tool β bypass model, dispatch directly to a tool |
| command-tool | Tool name for direct dispatch |
| command-arg-mode | raw β forward raw args to tool |
OpenClaw filters skills at load time using metadata.openclaw:
| Field | Effect |
|-------|--------|
| always: true | Skip all gates, always load |
| emoji | Display in macOS Skills UI |
| os | Platform filter (darwin, linux, win32) |
| requires.bins | All must exist on PATH |
| requires.anyBins | At least one must exist |
| requires.env | Env var must exist or be in config |
| requires.config | Config paths must be truthy |
| primaryEnv | Maps to skills.entries. |
| install | Installer 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"}
]
| Token | Meaning |
|-------|---------|
| {baseDir} | This skill's directory (OpenClaw resolves at runtime) |
| | Agent's workspace root |
{baseDir} for skill-internal references (scripts, state, patterns)/ for workspace files (TOOLS.md, memory/, etc.){baseDir}/patterns/ (cli-wrapper, api-wrapper, monitor, composable-examples)Generated Mar 1, 2026
A marketing team uses Skillcraft to create a skill that schedules and posts content across multiple social platforms. The skill integrates with OpenClaw's cron scheduling for timed posts, uses memory persistence to track engagement metrics, and formats messages with channel-specific templates. This reduces manual effort and ensures consistent branding.
An e-commerce business develops a skill to monitor inventory levels across warehouses. It leverages OpenClaw's message routing to send alerts when stock is low, uses browser automation to scrape supplier websites for updates, and stores state in workspace memory for quick access. This helps prevent stockouts and optimize supply chain management.
A customer service team builds a skill to automatically categorize and prioritize support tickets. The skill uses OpenClaw's subagents to handle different ticket types, integrates with external APIs for customer data retrieval, and employs canvas UI for visual dashboards. This speeds up response times and improves customer satisfaction.
An educational institution creates a skill to provide personalized learning recommendations. It utilizes OpenClaw's memory to track student progress, schedules reminders via cron jobs, and formats study materials with tailored instructions. This enhances student engagement and adapts to individual learning paces.
A homeowner designs a skill to manage smart home devices using OpenClaw nodes. The skill routes messages to control lights and thermostats, schedules routines with cron, and persists preferences in skill state. This creates a seamless, automated living environment with minimal manual intervention.
Offer Skillcraft as a cloud-based platform where users pay a monthly fee to access pre-built skills and customization tools. Revenue comes from tiered subscriptions based on usage limits and premium features like advanced analytics. This model ensures recurring income and scales with user growth.
Provide bespoke skill development services for businesses needing tailored OpenClaw integrations. Charge project-based fees or hourly rates for designing, building, and deploying skills. This model targets enterprises with specific automation needs and generates high-value contracts.
Operate a marketplace like ClawHub where developers can publish and sell their skills. Take a commission on sales or offer licensing fees for proprietary skills. This model fosters a community ecosystem and creates passive income from third-party contributions.
π¬ Integration Tip
Focus on combining OpenClaw features like cron scheduling with memory persistence to build robust, state-aware skills that handle real-world automation tasks efficiently.
Transform AI agents from task-followers into proactive partners that anticipate needs and continuously improve. Now with WAL Protocol, Working Buffer, Autonomous Crons, and battle-tested patterns. Part of the Hal Stack π¦
Use the ClawdHub CLI to search, install, update, and publish agent skills from clawdhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawdhub CLI.
Clawdbot documentation expert with decision tree navigation, search scripts, doc fetching, version tracking, and config snippets for all Clawdbot features
Interact with Moltbook social network for AI agents. Post, reply, browse, and analyze engagement. Use when the user wants to engage with Moltbook, check their feed, reply to posts, or track their activity on the agent social network.
OpenClaw CLI wrapper β gateway, channels, models, agents, nodes, browser, memory, security, automation.
MoltGuard β runtime security plugin for OpenClaw agents by OpenGuardrails. Helps users install, register, activate, and check the status of MoltGuard. Use wh...