OpenClaude Built-in Tools: Complete Reference for 2024

OpenClaude ships with 40+ built-in tools that LLMs can invoke for web search, file operations, task management, code analysis, and more — organized under src/tools/ and registered via the central Tool framework in src/Tool.js.

This guide catalogs every available tool in the Gitlawb/openclaude repository, with source file paths, implementation status, and runnable code examples for the most commonly used capabilities.


What Are OpenClaude Built-in Tools?

OpenClaude's built-in tools are TypeScript modules that extend the LLM's capabilities beyond text generation. Each tool is a buildTool export located in its own subdirectory under src/tools/. The core Tool framework (src/Tool.js) provides the abstraction layer that registers these tools with the execution engine.

Tools follow a consistent pattern: they accept a parameter object, a ToolUseContext, permission flags, and a progress callback. This standardization makes it straightforward to add custom tools or invoke existing ones programmatically.


Complete List of OpenClaude Built-in Tools

The table below enumerates all tools found in the main branch, grouped by functional category.

Web and External Data Tools

Tool Purpose Source File
WebSearchTool Performs web search via DuckDuckGo, Bing, Brave, or other backends src/tools/WebSearchTool/WebSearchTool.ts
WebFetchTool Retrieves URL contents with permission model enforcement src/tools/WebFetchTool/WebFetchTool.ts

File System Tools

Tool Purpose Source File
FileReadTool Reads file contents with size limits and image processing src/tools/FileReadTool/FileReadTool.ts
FileWriteTool Writes raw text to files, creating them if needed src/tools/FileWriteTool/FileWriteTool.ts
FileEditTool In-place file editing (insert, replace, delete lines) src/tools/FileEditTool/FileEditTool.ts
GlobTool Expands file globs like **/*.ts and returns matching paths src/tools/GlobTool/GlobTool.ts
GrepTool Runs regex search across repository files src/tools/GrepTool/GrepTool.ts
SnipTool Extracts code snippets by line numbers or markers src/tools/SnipTool/SnipTool.ts

Repository and Code Intelligence Tools

Tool Purpose Source File
RepoMapTool Generates symbol/file maps to help locate relevant code src/tools/RepoMapTool/RepoMapTool.ts
LSPTool Language Server Protocol queries (definitions, references) src/tools/LSPTool/LSPTool.ts
EnterWorktreeTool Enters a Git work-tree context src/tools/EnterWorktreeTool/EnterWorktreeTool.ts
ExitWorktreeTool Exits a Git work-tree context src/tools/ExitWorktreeTool/ExitWorktreeTool.ts

Task and Project Management Tools

Tool Purpose Source File
TaskCreateTool Creates new tasks with metadata src/tools/TaskCreateTool/TaskCreateTool.ts
TaskGetTool Retrieves details of a single task src/tools/TaskGetTool/TaskGetTool.ts
TaskListTool Lists tasks matching a filter src/tools/TaskListTool/TaskListTool.ts
TaskUpdateTool Updates task fields (status, description, etc.) src/tools/TaskUpdateTool/TaskUpdateTool.ts
TaskStopTool Stops a running task src/tools/TaskStopTool/TaskStopTool.ts
TodoWriteTool Adds TODO items to designated files or lists src/tools/TodoWriteTool/TodoWriteTool.ts
MonitorTool Monitors long-running tasks and reports progress src/tools/MonitorTool/MonitorTool.ts

Team and MCP Tools

Tool Purpose Source File
TeamCreateTool Creates teams in the MCP environment src/tools/TeamCreateTool/TeamCreateTool.ts
TeamDeleteTool Deletes teams from the MCP src/tools/TeamDeleteTool/TeamDeleteTool.ts
MCPTool General-purpose Model-Control-Plane API interface src/tools/MCPTool/MCPTool.ts
ReadMcpResourceTool Reads resources from the MCP store src/tools/ReadMcpResourceTool/ReadMcpResourceTool.ts

Shell and Command Execution Tools

Tool Purpose Source File
BashTool Executes Bash commands in sandboxed environment src/tools/BashTool/BashTool.ts
PowerShellTool Executes PowerShell commands safely src/tools/PowerShellTool/PowerShellTool.ts

Scheduling and Automation Tools

Tool Purpose Source File
CronCreateTool Creates scheduled cron jobs src/tools/ScheduleCronTool/CronCreateTool.ts
CronDeleteTool Deletes scheduled cron jobs src/tools/ScheduleCronTool/CronDeleteTool.tsc
CronListTool Lists scheduled cron jobs src/tools/ScheduleCronTool/CronListTool.ts

Content Processing and Review Tools

Tool Purpose Source File
BriefTool Generates short summaries of longer documents src/tools/BriefTool/BriefTool.ts
ReviewArtifactTool Reviews artifacts (code diffs) and surfaces comments src/tools/ReviewArtifactTool/ReviewArtifactTool.ts
NotebookEditTool Programmatically edits notebook cells (Jupyter, etc.) src/tools/NotebookEditTool/NotebookEditTool.ts

Workflow and Planning Tools

Tool Purpose Source File
WorkflowTool Executes user-defined workflows of chained tool calls src/tools/WorkflowTool/WorkflowTool.ts
EnterPlanModeTool Starts a planning phase for action sequences src/tools/EnterPlanModeTool/EnterPlanModeTool.ts
ExitPlanModeV2Tool Exits plan mode after planning phase src/tools/ExitPlanModeTool/ExitPlanModeV2Tool.ts

Utility and Meta Tools

Tool Purpose Source File
ToolSearchTool Finds tools matching a user query src/tools/ToolSearchTool/ToolSearchTool.ts
CtxInspectTool Inspects current LLM context (messages, tool uses) src/tools/CtxInspectTool/CtxInspectTool.ts
SendMessageTool Sends messages to channels or conversations src/tools/SendMessageTool/SendMessageTool.ts
RemoteTriggerTool Triggers remote actions like webhooks src/tools/RemoteTriggerTool/RemoteTriggerTool.ts
SkillTool Framework for "skill" extensions (custom LLM capabilities) src/tools/SkillTool/SkillTool.ts
SyntheticOutputTool Generates synthetic output for testing/demos src/tools/SyntheticOutputTool/SyntheticOutputTool.ts
OverflowTestTool Stress-tests handling of very large inputs/outputs src/tools/OverflowTestTool/OverflowTestTool.ts

Placeholder Tools (Not Yet Implemented)

The following tools are defined as null stubs in the source code and reserved for future releases:

  • VerifyPlanExecutionTool — intended to verify plan execution
  • TungstenTool — reserved for Tungsten service integration
  • SuggestBackgroundPRTool — planned for PR suggestions
  • REPLTool — intended for interactive REPL sessions

How to Invoke OpenClaude Built-in Tools

All tools share a common call signature defined in src/Tool.js. The pattern requires five arguments:

  1. Parameters object — tool-specific arguments
  2. ToolUseContext — runtime context supplied by OpenClaude
  3. Permission flag — boolean for permission checks
  4. Parent message — usually null for top-level calls
  5. Progress callback — function receiving progress updates

Web Search Example

import { WebSearchTool } from './src/tools/WebSearchTool/WebSearchTool.js';

const result = await WebSearchTool.call(
  { query: 'latest TypeScript 5.5 features', maxResults: 3 },
  toolUseContext,
  true,  // permission check enabled
  null,  // no parent message
  (progress) => console.log('Search progress:', progress)
);

console.log(result);

The WebSearchTool in src/tools/WebSearchTool/WebSearchTool.ts supports multiple backends (DuckDuckGo, Bing, Brave) and returns concise, structured results suitable for LLM consumption.

File Operations Example

import { FileReadTool } from './src/tools/FileReadTool/FileReadTool.js';
import { FileWriteTool } from './src/tools/FileWriteTool/FileWriteTool.js';

// Read with size limit
const contents = await FileReadTool.call(
  { path: 'README.md', maxBytes: 10_000 },
  ctx,
  true,
  null,
  () => {}
);

console.log('File contents:', contents);

// Write new file
await FileWriteTool.call(
  { path: 'notes/todo.txt', content: '🔧 Fix bug #42\n' },
  ctx,
  true,
  null,
  () => {}
);

Both tools respect OpenClaude's permission model. FileReadTool handles image processing when detecting binary formats, while FileWriteTool creates parent directories automatically.

Task Management Example

import { TaskCreateTool } from './src/tools/TaskCreateTool/TaskCreateTool.js';
import { TaskListTool } from './src/tools/TaskListTool/TaskListTool.js';

// Create task
await TaskCreateTool.call(
  {
    title: 'Update dependencies',
    description: 'Run `bun upgrade`',
    assignee: 'devops'
  },
  ctx,
  true,
  null,
  () => {}
);

// List open tasks
const tasks = await TaskListTool.call(
  { status: 'open' },
  ctx,
  true,
  null,
  () => {}
);

console.table(tasks);

The task tools (TaskCreateTool, TaskGetTool, TaskListTool, TaskUpdateTool, TaskStopTool) form a complete CRUD interface for project management within OpenClaude's MCP environment.

Repository Search Example

import { GrepTool } from './src/tools/GrepTool/GrepTool.js';

const matches = await GrepTool.call(
  { pattern: 'TODO', include: '**/*.ts' },
  ctx,
  true,
  null,
  () => {}
);

console.log('Found TODOs in:', matches);

GrepTool in src/tools/GrepTool/GrepTool.ts runs regex searches efficiently across the repository, while GlobTool handles file pattern expansion.


Tool Architecture and Key Files

Understanding the file structure helps when extending or debugging tools:

Path Purpose
src/Tool.js Core abstraction with ToolDef interface and ToolUseContext
src/utils/toolResultStorage.ts Persists tool results for later reference
src/tools/**/index.ts Barrel exports for convenient imports
src/tools/**/*Tool.ts Individual tool implementations
src/tools/**/prompt.ts LLM-facing prompt templates
src/tools/**/constants.ts Permission scopes and default settings
src/tools/**/test.ts Unit tests in the CI validation suite

Each tool directory is self-contained. For example, src/tools/BashTool/ contains BashTool.ts, prompt.ts, constants.ts, and test.ts.


Summary

  • OpenClaude provides 40+ built-in tools across web search, file operations, task management, code intelligence, shell execution, and more
  • All tools live under src/tools/ and export via buildTool for registration with the Tool framework
  • Tools share a consistent API with five parameters: arguments, context, permission flag, parent message, and progress callback
  • Four tools are currently placeholders (null) and reserved for future releases: VerifyPlanExecutionTool, TungstenTool, SuggestBackgroundPRTool, and REPLTool
  • The modular design enables extending the toolset while maintaining reliability through isolated implementations and comprehensive test coverage

Frequently Asked Questions

How do I add a custom tool to OpenClaude?

Create a new directory under src/tools/YourToolName/ with YourToolName.ts implementing the buildTool export, plus prompt.ts, constants.ts, and test.ts following existing patterns. Register it in the tool registry by importing and exporting from the appropriate barrel file.

What permission model do OpenClaude tools use?

Each tool checks a boolean permission flag passed to call(). The constants.ts in each tool directory defines permission scopes. WebFetchTool and shell tools (BashTool, PowerShellTool) have stricter default permissions than file or search tools.

Can I use OpenClaude tools outside the LLM runtime?

Yes — instantiate a ToolUseContext manually. Most CLI or UI scenarios receive this from the framework, but programmatic usage requires constructing the context with appropriate message history and environment state.

Which search backends does WebSearchTool support?

According to src/tools/WebSearchTool/WebSearchTool.ts, the tool supports DuckDuckGo, Bing, and Brave as configurable backends, with DuckDuckGo as the default for privacy-focused searches.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →