mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-21 15:01:03 +00:00
6.1 KiB
6.1 KiB
summary, read_when, title
| summary | read_when | title | |||
|---|---|---|---|---|---|
| OpenClaw tools and plugins overview: what the agent can do and how to extend it |
|
Tools and Plugins |
Tools and Plugins
Everything the agent does beyond generating text happens through tools. Tools are how the agent reads files, runs commands, browses the web, sends messages, and interacts with devices.
Tools, skills, and plugins
OpenClaw has three layers that work together:
A tool is a typed function the agent can invoke (e.g. `exec`, `browser`, `web_search`, `message`). OpenClaw ships a set of **built-in tools** and plugins can register additional ones.The agent sees tools as structured function definitions sent to the model API.
A skill is a markdown file (`SKILL.md`) injected into the system prompt.
Skills give the agent context, constraints, and step-by-step guidance for
using tools effectively. Skills live in your workspace, in shared folders,
or ship inside plugins.
[Skills reference](/tools/skills) | [Creating skills](/tools/creating-skills)
A plugin is a package that can register any combination of capabilities:
channels, model providers, tools, skills, speech, image generation, and more.
Some plugins are **core** (shipped with OpenClaw), others are **external**
(published on npm by the community).
[Install and configure plugins](/tools/plugin) | [Build your own](/plugins/building-plugins)
Built-in tools
These tools ship with OpenClaw and are available without installing any plugins:
| Tool | What it does | Page |
|---|---|---|
exec / process |
Run shell commands, manage background processes | Exec |
browser |
Control a Chromium browser (navigate, click, screenshot) | Browser |
web_search / web_fetch |
Search the web, fetch page content | Web |
read / write / edit |
File I/O in the workspace | |
apply_patch |
Multi-hunk file patches | Apply Patch |
message |
Send messages across all channels | Agent Send |
canvas |
Drive node Canvas (present, eval, snapshot) | |
nodes |
Discover and target paired devices | |
cron / gateway |
Manage scheduled jobs, restart gateway | |
image / image_generate |
Analyze or generate images | |
sessions_* / agents_list |
Session management, sub-agents | Sub-agents |
Plugin-provided tools
Plugins can register additional tools. Some examples:
- Lobster — typed workflow runtime with resumable approvals
- LLM Task — JSON-only LLM step for structured output
- Diffs — diff viewer and renderer
- OpenProse — markdown-first workflow orchestration
Tool configuration
Allow and deny lists
Control which tools the agent can call via tools.allow / tools.deny in
config. Deny always wins over allow.
{
tools: {
allow: ["group:fs", "browser", "web_search"],
deny: ["exec"],
},
}
Tool profiles
tools.profile sets a base allowlist before allow/deny is applied.
Per-agent override: agents.list[].tools.profile.
| Profile | What it includes |
|---|---|
full |
All tools (default) |
coding |
File I/O, runtime, sessions, memory, image |
messaging |
Messaging, session list/history/send/status |
minimal |
session_status only |
Tool groups
Use group:* shorthands in allow/deny lists:
| Group | Tools |
|---|---|
group:runtime |
exec, bash, process |
group:fs |
read, write, edit, apply_patch |
group:sessions |
sessions_list, sessions_history, sessions_send, sessions_spawn, session_status |
group:memory |
memory_search, memory_get |
group:web |
web_search, web_fetch |
group:ui |
browser, canvas |
group:automation |
cron, gateway |
group:messaging |
message |
group:nodes |
nodes |
group:openclaw |
All built-in OpenClaw tools (excludes plugin tools) |
Provider-specific restrictions
Use tools.byProvider to restrict tools for specific providers without
changing global defaults:
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
},
},
}