6.4 KiB
| 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
OpenClaw gives the agent a set of tools it can call during a conversation. Tools are how the agent reads files, runs commands, browses the web, sends messages, and interacts with devices. Everything the agent does beyond generating text happens through tools.
How it all fits together
Core tools shipped with OpenClaw: exec, browser, web search, file I/O, messaging, cron, canvas, and nodes. Markdown instructions that teach the agent how and when to use tools. Skills ship inside plugins or live in your workspace. Packages that add new capabilities: channels, model providers, tools, skills, or any combination. Published on npm and installed with the CLI. Hooks, cron jobs, heartbeats, webhooks, and scheduled tasks that run without manual messages.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" },
},
},
}
Built-in tool reference
For the full tool-by-tool reference (parameters, actions, notes), see the individual tool pages in the sidebar. Key tools:
| 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 |
Plugins add more
Plugins can register additional tools beyond the built-in set. 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
Plugins can also ship skills alongside tools, so the agent gets both the tool definition and the instructions for using it. See Building Plugins to create your own.
How tools reach the agent
Tools are exposed in two parallel channels:
- System prompt text — a human-readable list with guidance (from skills)
- Tool schemas — structured function definitions sent to the model API
If a tool doesn't appear in either, the model cannot call it.