In this chapter, you will discover the three ways to extend your agent and learn when to use each one.
By the end, you should be able to classify any new capability need as a skill (knowledge via SKILL.md), an MCP server (external access via protocol), or a plugin (gateway capability, native or bundle format). You will also browse ClawHub (the public skill registry), install a skill, explore the bundled plugin ecosystem that already ships with your install, and use the escalation path: start with a skill, escalate to MCP, escalate to plugin only if needed.
The Agent Skills specification you encounter here is a cross-platform standard. The same SKILL.md format works in OpenClaw, Claude Code, and other agent platforms.
James had customized his agent's brain in Module 9.1, Chapter 4. SOUL.md, IDENTITY.md, workspace files. The agent had a personality. It remembered his preferences from Module 9.1, Chapter 5. But it only knew what was baked into the model and the workspace files.
"How do I teach it something new?" James asked. "Not a personality change. Not a memory entry. A new capability. Like booking flights or managing a calendar."
Emma opened the OpenClaw docs on her laptop. "That depends on what kind of capability you mean," she said. "There are three ways to extend your agent. Each one does something different." She turned the screen toward him. "Skills, MCP servers, plugins."
James looked at the list. "What is the difference?"
"That is exactly the question," Emma said. "Figure it out." She stood up. "Install a skill from ClawHub. Browse the bundled plugin list. When I get back, tell me: which one would you use for what, and why?"
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 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:
You will see real results: service booking, hotel booking, flight booking, and more. Install one:
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:
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.
Restart Required
Skills are snapshotted when a session starts. After installing a skill, restart the gateway so the next session picks it up:
After restarting, check that the skill is loaded:
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:
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.
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.
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."
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:
The output shows each plugin with its status. Here is what the fields mean:
Scroll through and you will see three categories:
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.
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:
Verify:
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 Module 9.1, Chapter 2 applies to every plugin: bundled → disabled → enable → configure → restart.
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.
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.
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:
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:
Look for marketing in the output with Format: bundle. Bundle plugins may start disabled. If so, enable it:
First, ask your agent what the plugin gave it. Point it at the install location:
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:
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:
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.
Three extension types. When your agent needs something new, the question is: which one?
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.
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.
Search ClawHub for a skill related to your work or interests:
Install one that looks useful. Remember to restart the gateway. Then ask your agent to use it:
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.
If you installed a skill in Exercise 1, ask your agent to read it:
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 Module 9.1, Chapter 4.
Think of five things you want your agent to do that it cannot do right now. For each one, classify it:
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.
Start with a skill. If the agent needs real tool access (not just instructions), escalate to an MCP server. If it needs to modify gateway behavior, escalate to a plugin. Try a bundle plugin before writing TypeScript. Most agent needs are skills.
Your install already includes dozens of plugins (model providers, channels, utilities). Most are disabled by default. Run openclaw plugins list --verbose to see what you have. The Activation Dance applies: find the plugin ID, enable it, configure it, restart.
The public registry at clawhub.ai where anyone can publish Agent Skills bundles. Search with openclaw skills search, install with openclaw skills install, restart the gateway. Skills are snapshotted at session start, so new installs require a restart.
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. Module 9.1, Chapter 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?" Emma asked.
"Start with a skill," James said. 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.
"Chapter 7," Emma said. "Module 9.1, Chapter 7," Emma said. "You connect one."