Skip to main content

Install Skills & Discover the Ecosystem

James had customized his agent's brain in Lesson 4. SOUL.md, IDENTITY.md, workspace files. The agent had a personality. But it only knew what was baked into the model and the workspace files.

"How do I teach it something new?" he asked. "Not a personality change. A new capability. Like booking flights or managing a calendar."

Emma opened the OpenClaw docs on her laptop. "Three ways. Each one does something different." She turned the screen toward him. "Skills, MCP servers, plugins. When I get back, tell me: which one would you use for what?"

She picked up her coffee and walked out.


You are doing exactly what James is doing. Your agent has a personality and workspace files, but it needs new capabilities. Now you discover the three extension types and when to use each one.

ClawHub: The Skill Marketplace

ClawHub calls itself "the skill dock for sharp agents." It is the public registry where anyone can upload Agent Skills bundles, version them like npm packages, and make them searchable with vectors (not just keyword matching). Think of it as npm for agent capabilities. Search it:

openclaw skills search booking

You will see real results: service booking, hotel booking, flight booking, and more. Install one:

openclaw skills install service-booking

The skill downloads into your workspace's skills/ directory (created automatically on first install). Before the agent can use it, you need a gateway restart (see the caution below). You can also update installed skills:

openclaw skills update --all
Dangerous Code Detection

If a skill contains code patterns flagged as dangerous, installation fails with a security warning. As of v2026.3.31, critical findings fail closed by default: the install is blocked, not just warned. This is intentional: OpenClaw defaults to rejecting potentially unsafe code. If you trust the skill author and have reviewed the code, override with openclaw skills install <skill-name> --dangerously-force-unsafe-install. Do not use this flag without reviewing the skill's source.

Use the Skill You Just Installed

Restart Required

Skills are snapshotted when a session starts. After installing a skill, restart the gateway so the next session picks it up:

openclaw gateway restart

After restarting, check that the skill is loaded:

openclaw skills list

You should see service-booking in the output. If it does not appear, the install may have failed silently or the gateway did not pick it up. Re-run the install command and restart again.

Now tell your agent to use the skill:

Use the service-booking skill to help me find a plumber near me.
The skill is installed in my workspace skills directory at
~/.openclaw/workspace/skills/service-booking/.

Check the dashboard. The agent loads the skill's instructions and follows its workflow: asking what service you need, your location, and your preferred time. If the skill connects to an MCP server (like service-booking connects to Lokuli), the agent calls real tools to search for available providers.

One openclaw skills install command plus a gateway restart, and the agent gains a new workflow. No code, no config change.

Teach Your Agent Where to Look

Your agent searches for files the same way any assistant does: it may check system directories first and miss your workspace. Including the path in your prompt works, but a better long-term fix is adding it to your AGENTS.md (the agent's persistent instructions). Open ~/.openclaw/workspace/AGENTS.md and add a line like: Skills are installed in ~/.openclaw/workspace/skills/. Now every session knows where to look without you repeating it.

Model Quality Matters

Skill invocation depends on your model's capability. The free-tier model (gemini-3.1-flash-lite-preview) may not reliably follow skill instructions or invoke the skill's tools. If your agent ignores an installed skill, check the dashboard → Skills tab to verify it shows as "Ready." If it does, the issue is model quality, not configuration. A more capable model (Gemini 2.5 Flash or higher) will use the skill correctly.

What Is a Skill?

A skill is a folder containing a SKILL.md file that teaches your agent how to handle a specific task. The format follows the Agent Skills specification, a cross-platform standard that works across OpenClaw, Claude Code, and other agent platforms.

skill-name/
├── SKILL.md # Required: metadata + instructions
├── scripts/ # Optional: executable code
└── references/ # Optional: documentation

The SKILL.md has YAML frontmatter (name, description) followed by markdown instructions. When the agent encounters a task matching the description, it loads the skill's instructions into context. A skill teaches the agent how to do something: conversational patterns, domain workflows, decision frameworks, and how to use tools effectively. Some skills (like service-booking) teach the agent to call MCP tools for real-world actions.

Skills are not just markdown. The scripts/ folder can contain executable code (Python, Bash, JavaScript) that the agent runs as part of the skill's workflow. The references/ folder holds additional documentation the agent reads on demand. A skill packages instructions, code, and reference material together in one directory.

The specification uses progressive disclosure: only the name and description load at startup (light on tokens). The full instructions load only when the skill activates.


James looked up from his terminal. "So skills are folders. A SKILL.md file with instructions, optional scripts for code, optional references for docs. Cross-platform. Install from ClawHub, restart, done. That covers knowledge. What about the rest of the agent's capabilities?"

Emma sat back down. "Skills give knowledge. But your agent came with capabilities you have not even looked at yet."


The Plugin Ecosystem

A plugin is a package that can register any combination of capabilities: channels, model providers, tools, skills, speech, image generation, and more. Where a skill teaches the agent how to do something, a plugin gives it the ability to do it. Plugins can even include skills inside them, packaging knowledge and capability together.

The surprise: your agent already has a full plugin ecosystem installed. Run this:

openclaw plugins list --verbose

The output shows each plugin with its status. Here is what the fields mean:

FieldWhat It Tells You
loaded / disabledWhether the plugin is active right now
formatopenclaw for native plugins, bundle for file-based plugins
originbundled means it shipped with your install
providersFor model plugins, which provider names it registers (e.g., google, google-gemini-cli)
errorWhy it is disabled (usually "bundled, disabled by default")

Scroll through and you will see three categories:

CategoryLoaded ExamplesDisabled Examples
Model providersGoogle, Anthropic, OpenAI, DeepSeek, Mistral, Ollama, NVIDIAGroq
ChannelsWhatsAppDiscord, Telegram, Slack, Signal, Matrix, IRC, Line, MS Teams
UtilitiesBrowser, DuckDuckGo, Memory Core, Talk VoiceElevenLabs, Brave, Firecrawl, OpenShell Sandbox

Most model providers are loaded automatically (the gateway probes which ones have valid API keys). Most channels are disabled because each needs its own credentials and setup.

Enabling a Disabled Plugin

A disabled plugin is installed but not active. The plugin ID is the short name in parentheses from the list output (e.g., brave, discord, elevenlabs). Try enabling the Brave search plugin, which adds web search via Brave's API:

openclaw config set plugins.entries.brave.enabled true
openclaw gateway restart

Verify:

openclaw plugins list --verbose | grep brave

If it shows as loaded, ask your agent: "Search the web using Brave for the latest OpenClaw release notes." If it shows an error (like missing API key), that is expected: some plugins need credentials before they work. The point is the pattern: find the plugin ID in the list, enable it, restart, verify.

The Activation Dance from Lesson 2 applies to every plugin: bundled → disabled → enable → configure → restart.

Two Plugin Formats

Look at the format column in your plugins list --verbose output. Every bundled plugin shows openclaw. These are native plugins: TypeScript code running inside the gateway process. But OpenClaw supports a second format: bundle plugins.

Native (openclaw)Bundle (.claude-plugin/)
Containsopenclaw.plugin.json + TypeScriptMarkdown skills + JSON commands + MCP connectors
Code required?YesNo
Runs whereInside the gateway processLoaded as file-based extensions
Used forChannels, model providers, voice, gateway hooksDomain workflows, knowledge packages
ExampleWhatsApp adapter, Brave searchProductivity plugin, finance plugin

The .claude-plugin/ directory format is the same one Claude Code and Cowork use. Any Claude plugin works in OpenClaw as a bundle. This opens a large ecosystem beyond what ships bundled.

Install a Bundle Plugin

Two open-source plugin collections work with OpenClaw out of the box:

Clone or download either repo and install a plugin from it. To clone:

git clone https://github.com/anthropics/knowledge-work-plugins
openclaw plugins install ./knowledge-work-plugins/marketing

If you do not have git installed, open the repo link in your browser, click Code → Download ZIP, extract it, and point the install command at the extracted folder.

After installing, restart the gateway and verify:

openclaw gateway restart
openclaw plugins list

Look for marketing in the output with Format: bundle. Bundle plugins may start disabled. If so, enable it:

openclaw plugins enable marketing

First, ask your agent what the plugin gave it. Point it at the install location:

List all skills from the marketing extension at
~/.openclaw/extensions/marketing/skills/.

You should see eight skills: campaign-plan, content-creation, brand-review, competitive-brief, draft-content, email-sequence, performance-report, and seo-audit. You can also verify in the OpenClaw dashboard under your agent's Skills tab, where they appear as "Extra Skills."

Now use one. The campaign-plan skill follows the OAMCM framework (Objective, Audience, Message, Channel, Measure) and produces a 10-section brief:

Generate a full campaign brief with objectives, audience, messaging,
channel strategy, content calendar, and success metrics for
https://agentfactory.panaversity.org/
The goal is brand awareness in the US.

If the plugin is working, the agent's output follows the OAMCM structure: campaign overview, target audience, key messages, channel strategy, a week-by-week content calendar, success metrics, and more. If the output is generic (no structured sections, no OAMCM), the plugin may not have loaded correctly. Check openclaw plugins list again.

One clone, one install, one enable, and your AI employee handles marketing campaigns on WhatsApp.

Plugins published on ClawHub or npm are even simpler. The openclaw plugins install command checks ClawHub first and falls back to npm automatically:

openclaw plugins install @openclaw/voice-call

No clone needed for published packages. The GitHub repos install from a local clone because they are not published on npm or ClawHub yet.

The mental model shift: OpenClaw ships with native plugins for infrastructure (channels, models, voice). Bundle plugins add domain expertise without code. Check what is bundled first, then search ClawHub, then check compatible Claude plugin marketplaces.

The Decision Tree

Three extension types. When your agent needs something new, the question is: which one?

Your agent needs to...Extension typeWhat it isCode required?
Know something newSkillSKILL.md (Agent Skills spec)No
Access an external service or APIMCP serverTool connection via MCP protocolJSON config
Gain a new capabilityPluginBundle (file-based) or native (TypeScript)Depends on format

The Escalation Path

If you are unsure, start with a skill. Skills are the simplest, fastest, and cheapest extension. If a skill is not enough (the agent needs real tool access, not just instructions), escalate to an MCP server. If an MCP server is not enough (you need to modify gateway behavior), escalate to a plugin.

Start here → Skill (SKILL.md, no code)
↓ not enough?
→ MCP server (JSON config, Lesson 7)
↓ not enough?
→ Plugin: bundle first (no code), native if needed (Lesson 13)

Most agent needs are skills. If you do need a plugin, try a bundle plugin first. Native plugins are for platform developers extending the gateway itself.

Try With AI

Exercise 1: Search and Install

Search ClawHub for a skill related to your work or interests:

openclaw skills search <your-domain>

Install one that looks useful. Remember to restart the gateway. Then ask your agent to use it:

I just installed the [skill-name] skill in my workspace skills
directory at ~/.openclaw/workspace/skills/. What can you help me
with now that you couldn't before?

What you are learning: The marketplace workflow: search, install, restart, verify through the agent. Including the install path in your prompt prevents the agent from searching only system directories and missing your workspace.

Exercise 2: Read a Skill You Installed

If you installed a skill in Exercise 1, ask your agent to read it:

Read the SKILL.md file in ~/.openclaw/workspace/skills/ for the skill
I just installed. Explain what the name and description fields do,
and what the instructions tell you to do differently.

If you did not install a skill, ask any AI assistant to read the Agent Skills specification and explain the format.

What you are learning: Skills follow a cross-platform specification. The agent can read and explain its own skills, just like it read its own workspace files in Lesson 4.

Exercise 3: Classify Your Needs

Think of five things you want your agent to do that it cannot do right now. For each one, classify it:

  • Does the agent need to know something? → Skill
  • Does the agent need to access an external service? → MCP server
  • Does the agent need a new gateway capability? → Plugin

What you are learning: The extension hierarchy as a decision framework. The correct classification saves you from building a TypeScript plugin when a SKILL.md file would have worked.


When Emma came back, James had three columns written on his notepad, with a note scrawled next to the third.

"Skills: knowledge. Markdown files, cross-platform, installed from ClawHub." He pointed at the second column. "MCP servers: external access. Connect the agent to APIs and databases. Lesson 7." Third column. "Plugins: capabilities. But two kinds." He tapped the note. "The bundled ones are all native TypeScript, running inside the gateway. The bundle format is different: file-based, no code. Like a packaged set of skills with commands and MCP connectors."

"And if you are not sure which one you need?"

"Start with a skill. If it is not enough, escalate to MCP. If MCP is not enough, try a bundle plugin before writing TypeScript." He paused. "At my old company, we had two kinds of vendors. The ones embedded in our warehouse system, running our conveyor belts. And the ones that shipped us a manual and a phone number. Native plugins are the embedded vendors. Bundle plugins are the manual and phone number."

Emma was quiet for a moment. "That vendor analogy actually clarifies something I have been explaining badly for a while." She glanced at his notepad. "You have skills installed and plugins understood. But knowing and accessing are different. What if it needs live data from an external service? Not instructions, not a packaged workflow, but an actual connection to something outside itself."

"That is the MCP column," James said.

"Lesson 7. You connect one."

Flashcards Study Aid