Skip to main content

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:
1

Tools are what the agent calls

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.
2

Skills teach the agent when and how

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 | Creating skills
3

Plugins package everything together

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 | Build your own

Built-in tools

These tools ship with OpenClaw and are available without installing any plugins:
ToolWhat it doesPage
exec / processRun shell commands, manage background processesExec
browserControl a Chromium browser (navigate, click, screenshot)Browser
web_search / web_fetchSearch the web, fetch page contentWeb
read / write / editFile I/O in the workspace
apply_patchMulti-hunk file patchesApply Patch
messageSend messages across all channelsAgent Send
canvasDrive node Canvas (present, eval, snapshot)
nodesDiscover and target paired devices
cron / gatewayManage scheduled jobs, restart gateway
image / image_generateAnalyze or generate images
sessions_* / agents_listSession management, sub-agentsSub-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.
ProfileWhat it includes
fullAll tools (default)
codingFile I/O, runtime, sessions, memory, image
messagingMessaging, session list/history/send/status
minimalsession_status only

Tool groups

Use group:* shorthands in allow/deny lists:
GroupTools
group:runtimeexec, bash, process
group:fsread, write, edit, apply_patch
group:sessionssessions_list, sessions_history, sessions_send, sessions_spawn, session_status
group:memorymemory_search, memory_get
group:webweb_search, web_fetch
group:uibrowser, canvas
group:automationcron, gateway
group:messagingmessage
group:nodesnodes
group:openclawAll 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" },  },  }, }