OpenClaw Skills: How to Install, Use, and Build Your Own
OpenClaw skills extend your agent with new capabilities. Here's how to install from ClawHub, use them in sessions, and build a custom skill from scratch.
Skills are how you extend what your OpenClaw agent can do. Out of the box, your agent can chat, browse the web, and run shell commands. Skills add everything else: weather lookups, coding agent delegation, TMux control, video processing, specialized domain knowledge, and any custom capability you want to build.
The architecture is simple. A skill is a directory with a SKILL.md file. That file tells your agent exactly when to use the skill, what it does, and how to invoke it. The agent reads available skills at boot and uses them when relevant — automatically, without you having to specify which one.
What Skills Actually Are
Every skill follows the same structure:
my-skill/
├── SKILL.md # Required — agent instructions
├── scripts/ # Optional — executable scripts
└── references/ # Optional — supporting docs, examples
The SKILL.md is the core. It contains:
- A description (what this skill does, when to use it)
- Step-by-step instructions the agent follows
- References to scripts or external tools
- Any configuration or prerequisites
When your agent gets a request, it scans available skill descriptions. If one matches, it loads the full SKILL.md and follows the instructions. If no skill matches clearly, it handles the request with built-in tools.
This means well-written skill descriptions are critical. A vague description = skill gets ignored.
Installing Skills via ClawHub
ClawHub is the skill registry for OpenClaw. You install the CLI, then pull skills by name:
npm install -g clawhub
To search available skills:
clawhub search weather
clawhub search coding-agent
clawhub search tmux
To install a skill to your OpenClaw instance:
clawhub install weather
clawhub install coding-agent
clawhub install tmux
Skills install to /usr/lib/node_modules/openclaw/skills/ by default on most systems. Your agent picks them up automatically — no restart required in most cases, though a gateway restart ensures clean loading:
openclaw gateway restart
To update all installed skills to latest versions:
clawhub update --all
To update a specific skill:
clawhub update weather
To see what's installed:
clawhub list
How Skills Work in Practice
Once installed, skills are transparent. Your agent uses them automatically based on context. You don't invoke them explicitly — you just ask for what you need.
Example — weather skill:
You: What's the weather in Miami?
Agent: [reads weather SKILL.md, follows instructions, fetches from wttr.in]
Agent: Miami is 84°F, partly cloudy. High of 87°F today.
Example — coding-agent skill:
You: Build a REST API for user authentication, save it to /projects/auth-api
Agent: [reads coding-agent SKILL.md, spawns Claude Code subagent with proper flags]
Agent: Spawning Claude Code agent... will report back when complete.
Example — tmux skill:
You: Check what's running in my dev tmux session
Agent: [reads tmux SKILL.md, runs tmux capture-pane, returns output]
The agent selects the most specific skill that applies. If multiple could apply, it picks the best match. If you want to see which skills are active, check the bootstrap output or ask your agent directly: "What skills do you have available?"
The 5 Best Skills to Start With
1. weather
Simple, reliable, no API key needed. Uses wttr.in and Open-Meteo. The classic first skill install — proves the system works and gives your agent immediate utility for checking weather before scheduling outdoor tasks or travel.
clawhub install weather
2. coding-agent
This is the one that changes how you work. Lets your agent delegate coding tasks to Codex, Claude Code, or Pi agents running as background subprocesses. Your main agent orchestrates; the coding agent executes.
Handles: building new features, refactoring, PR reviews, iterative development. For PTY-required agents (Codex, Pi), it manages the pseudo-terminal automatically.
clawhub install coding-agent
See OpenClaw GitHub for how to pair this with your repos.
3. tmux
Remote-controls tmux sessions by sending keystrokes and scraping pane output. Essential if you run long-running processes in tmux on a server. Your agent can check process status, send commands, read output — without SSHing manually.
clawhub install tmux
4. healthcheck
Security hardening and risk-tolerance configuration for your deployment. Runs audits against your firewall, SSH config, package updates, and OpenClaw version. Outputs actionable findings. Set it on a cron and get weekly security posture reports.
clawhub install healthcheck
5. video-frames
Extracts frames or short clips from video files using ffmpeg. Useful for any workflow involving video content analysis, thumbnail generation, or clip extraction. Requires ffmpeg installed on the host.
clawhub install video-frames
Building a Custom Skill
Building a skill means writing a SKILL.md that gives your agent precise, actionable instructions. Here's the exact process.
Step 1: Create the Directory
mkdir -p ~/.openclaw/workspace/skills/my-custom-skill
Or install to the system skills directory so all agents can use it:
sudo mkdir -p /usr/lib/node_modules/openclaw/skills/my-custom-skill
Step 2: Write the SKILL.md
This is the whole game. Your SKILL.md needs:
A clear description — this is what the agent reads to decide whether to use the skill. Be specific about triggers.
Step-by-step instructions — written as if you're telling a capable person exactly what to do. Use numbered lists, be explicit about commands, don't assume context.
Error handling — what to do if something fails. The agent will follow these instructions, so cover the failure cases.
Here's a minimal example for a skill that checks a server's status:
# Server Health Check Skill
## Description
Check server health and uptime for production infrastructure. Use when asked to check if a server is up, check server health, or verify deployment status.
## Instructions
1. SSH to the target server using the appropriate credentials from TOOLS.md
2. Run `systemctl status <service-name>` for each relevant service
3. Check disk space: `df -h /`
4. Check memory: `free -h`
5. Check recent logs: `journalctl -u <service> -n 20 --no-pager`
6. Report: service status, disk usage percentage, free RAM, any errors from logs
## Error Handling
- If SSH connection fails, report the error and note which server was unreachable
- If a service is inactive, include the last 50 log lines in the report
- Do NOT attempt to restart services unless explicitly asked
## Prerequisites
- SSH access configured in ~/.ssh/config
- Service names documented in TOOLS.md
Step 3: Add Scripts (Optional)
If your skill needs to run scripts, put them in a scripts/ subdirectory and reference them by relative path in SKILL.md. The agent will resolve paths relative to the skill directory.
my-custom-skill/
├── SKILL.md
└── scripts/
└── check-health.sh
In your SKILL.md:
Run the health check script: `bash {skill_dir}/scripts/check-health.sh`
Step 4: Test It
Ask your agent to do the thing your skill covers. Watch whether it picks up the skill (it'll mention using it) or handles it differently. If it's not picking up the skill, the description probably isn't specific enough about trigger conditions.
Common issues:
- Description too vague → agent ignores it for generic tool use
- Instructions too abstract → agent gets confused mid-execution
- Missing error cases → agent freezes when something unexpected happens
Publishing to ClawHub
If you build something useful and want to share it:
clawhub publish ./my-custom-skill
You'll need a ClawHub account. The publish flow validates your SKILL.md structure, runs basic checks, and lists it on the registry.
Keep your published skills focused. A skill that does one thing well and has clear trigger conditions beats a massive skill that tries to handle everything.
Skill vs. Direct Tool Use
Not everything needs a skill. The agent has built-in tools for common operations: reading/writing files, running shell commands, browsing the web, fetching URLs. Skills are for:
- Wrapping external APIs with specific auth flows
- Domain-specific knowledge the agent needs upfront
- Multi-step workflows that should be codified
- Capabilities that require external binaries or special configuration
If you find yourself writing a skill that's just "run this curl command," you probably don't need a skill — just tell the agent to run the curl command.
Skills are one of the more powerful parts of OpenClaw once you're past the basics. For how your agent uses skills to work with code repos, see OpenClaw GitHub. For the full dashboard view of your installed skills, see OpenClaw Dashboard.
Ready to build your own autonomous agent stack? Start by choosing one workflow and one channel, then expand from there.