OpenClaw Tools, Skills, and Plugins Overview
Learn the differences between OpenClaw tools, skills, and plugins, and how to extend agent capabilities. This overview helps you choose the right extension surface for your needs.
Read this when
- You want to understand what tools OpenClaw provides
- You are deciding between built-in tools, skills, and plugins
- You need the right docs entry point for tool policy, automation, or agent coordination
Use this page to decide which Capabilities surface fits your needs. Tools are actions the agent can invoke, skills show agents how to perform work, and plugins extend runtime behavior with things like tools, providers, channels, hooks, and bundled skills.
This page routes you to the right documentation. For complete details on tool policy, defaults, group membership, provider restrictions, and configuration fields, see Tools and custom providers.
Start here
For most agents, begin with the default tool categories, then modify policy only when the agent should see fewer tools or requires explicit host access.
| If you need to... | Use this first | Then read |
|---|---|---|
| Let an agent act with existing capabilities | Built-in tools | Tool categories |
| Control what an agent can call | Tool policy | Tools and custom providers |
| Teach an agent a workflow | Skills | Skills, Creating skills, Skill Workshop, and Self-learning |
| Add a new integration or runtime surface | Plugins | Plugins and Build plugins |
| Run work later or in the background | Automation | Automation overview |
| Coordinate multiple agents or harnesses | Sub-agents | ACP agents and Agent send |
| Orchestrate concurrent agents from code | Swarm | Code Mode and Sub-agents |
| Search a large OpenClaw tool catalog | Tool Search | Tool Search |
| Combine several tools in one compact program | Code Mode | Code Mode |
Choose tools, skills, or plugins
Use a tool when the agent needs to act
A tool is a typed function the agent can call, such as exec, browser,
web_search, message, or image_generate. Use tools when the agent
needs to read data, change files, send messages, call a provider, or
operate another system. Visible tools are sent to the model as structured
function definitions.
The model only sees tools that survive the active profile, allow/deny policy, provider restrictions, sandbox state, channel permissions, and plugin availability.
Use a skill when the agent needs instructions
A skill is a SKILL.md instruction pack loaded into the agent prompt. Use
a skill when the agent already has the tools it needs, but needs a
repeatable workflow, review rubric, command sequence, or operating
constraint.
Skills can live in a workspace, shared skill directory, managed OpenClaw skill root, or plugin package.
Skills | Skill Workshop | Self-learning | Creating skills | Skills config
Use a plugin when OpenClaw needs a new capability
A plugin can add tools, skills, channels, model providers, speech, realtime voice, media generation, web search, web fetch, hooks, and other runtime capabilities. Use a plugin when the capability has code, credentials, lifecycle hooks, manifest metadata, or installable packaging. Existing plugins can be installed from ClawHub, npm, git, local directories, or archives.
Install and configure plugins | Build plugins | Plugin SDK
Built-in tool categories
The table lists representative tools so you can recognize the surface. It is not the full policy reference. For exact groups, defaults, and allow/deny semantics, use Tools and custom providers.
| Category | When to use it: the agent needs to... | Typical tools | Where to go next |
|---|---|---|---|
| Runtime | Execute shell commands, handle running processes, share operator terminals, or rely on Python supplied by the provider | exec, process, terminal, code_execution | Exec, Control UI terminal, Code execution |
| Files | View or modify files inside the workspace | read, write, edit, apply_patch | Apply patch |
| Human input | Hold for a user-controlled structured choice, or collect a credential while keeping it hidden | ask_user, secrets | Ask user, Secrets |
| Web | Look up information online, scan X posts, or pull readable text from a page | web_search, x_search, web_fetch | Web tools, Web fetch |
| Browser | Drive a browser session | browser | Browser |
| Operator UI | Organize connected Control UI panes, panels, and navigation | screen | Screen |
| Messaging and channels | Post messages or trigger channel actions | message | Agent send |
| Sessions and agents | Examine sessions, hand off tasks, coordinate collectors, guide another run, or announce status | sessions_*, agents_wait, subagents, agents_list, session_status, get_goal, create_goal, update_goal | Goal, Swarm, Sub-agents, Session tool |
| Automation | Set up scheduled jobs or react to background triggers | cron, heartbeat_respond | Automation |
| Gateway and nodes | Check Gateway status or connected target devices | gateway, nodes | Gateway configuration, Nodes |
| Media | Examine, produce, or vocalize media | view_image, image_generate, music_generate, video_generate, tts | Media overview |
| Large OpenClaw catalogs | Look up, invoke, and merge many suitable tools without forwarding every schema to the model | exec, wait, tool_search_code, tool_search, tool_describe | Code Mode, Tool Search |
Note
Code Mode and Tool Search are experimental OpenClaw agent surfaces. Codex harness runs use Codex-native code mode, native tool search, deferred dynamic tools, and nested tool calls instead of
tools.codeModeortools.toolSearch.
Plugin-provided tools
Additional tools can be registered by plugins. Plugin authors connect tools through
api.registerTool(...) and the manifest's contracts.tools; for contract details, refer to
Plugin SDK and Plugin manifest.
Tools commonly supplied by plugins include:
- Diffs for rendering file and markdown diffs
- Show widget for self-contained inline SVG and HTML in supported chat clients
- Screen for arranging a connected Control UI
- LLM Task for JSON-only workflow steps
- Lobster for typed workflows with resumable approvals
- Tokenjuice for compacting noisy
execandbashtool output - Tool Search for discovering and calling large tool catalogs without putting every schema in the prompt
- Canvas for the macOS widget-panel presenter and A2UI dashboard content
Configure access and approvals
Before the model call, tool policy is enforced. If policy removes a tool, the model does not receive that tool's schema for the turn. A run can lose tools because of global config, per-agent config, channel policy, provider restrictions, sandbox rules, channel/runtime policy, or plugin availability.
OpenClaw exposes one semantic image inspection capability named view_image.
When the active harness supplies its own loader, OpenClaw suppresses its
duplicate. Otherwise, the OpenClaw-provided implementation accepts path for
one local image path or permitted URL, or paths for several; maxImages
limits the combined list and defaults to 20. Codex's native implementation
accepts one local filesystem path. Callers must follow the active tool schema.
Existing policy entries named image must be migrated to view_image; run
openclaw doctor --fix to update supported config policy surfaces and persisted
automation toolsAllow lists.
- Tools and custom providers documents tool profiles, allow/deny lists, provider-specific restrictions, loop detection, and provider-backed tool settings.
- Exec approvals documents host command approval policy.
- Elevated exec documents controlled execution outside the sandbox.
- Sandbox vs tool policy vs elevated explains which layer controls file and process access.
- Per-agent sandbox and tool restrictions documents agent-specific restrictions for delegated runs.
Extend capabilities
Pick the extension path based on the task you need OpenClaw to handle:
- Install or manage an existing plugin with Plugins.
- Build a new integration, provider, channel, tool, or hook with Build plugins.
- Add or tune reusable agent instructions with Skills and Creating skills.
- Use Plugin SDK and Plugin manifest when you need implementation contracts.
Troubleshoot missing tools
When the model cannot see or call a tool, begin with the effective policy for the current turn:
- Check the active profile,
tools.allow, andtools.denyin Tools and custom providers. - Check provider-specific restrictions in Tools and custom providers and confirm the selected model provider supports the tool shape.
- Check channel permissions, sandbox state, and elevated access with Sandbox vs tool policy vs elevated and Elevated exec.
- Check whether the owning plugin is installed and enabled in Plugins.
- For delegated runs, check per-agent restrictions in Per-agent sandbox and tool restrictions.
- For large OpenClaw catalogs, confirm whether the run uses direct tool exposure, Code Mode, or Tool Search.
Related
- Automation covers cron, tasks, heartbeat, hooks, standing orders, and Task Flow
- Agents details the agent model, sessions, memory, and multi-agent coordination
- Tools and custom providers serves as the canonical reference for tool policies
- Plugins explains how to install and manage plugins
- Plugin SDK provides the authoring guide for plugins
- Skills describes skill load order, gating, and configuration
- Skill Workshop handles both generated and reviewed skill creation
- Tool Search enables quick discovery within the OpenClaw tool catalog
- Code Mode supports compact JavaScript or TypeScript workflows over a hidden OpenClaw tool catalog
- Swarm manages structured fan-out and collection from Code Mode