Skip to main content

Overview

profClaw’s tool system is fully extensible. You can register custom tools that the AI can call just like built-in tools. Custom tools go through the same schema validation, security checks, and tier routing as built-in tools. There are two ways to add custom tools:
  1. Plugin tools - Packaged in a plugin with a package.json and full ToolDefinition
  2. Skill-based tools - Lightweight command dispatch defined in a SKILL.md file

Plugin Tool (Full SDK)

Create a plugin with a tool definition:
Register it in your plugin’s index.ts:

Tool Definition Structure

string
required
Unique tool name. Use snake_case. Must not conflict with built-in tool names.
string
required
Description shown to the AI model. Be specific about when to use this tool and what it returns.
string
required
Category: execution, filesystem, web, data, system, profclaw, memory, browser, custom.
string
required
Security level: safe, moderate, dangerous. Affects approval requirements.
ZodSchema
required
Zod schema for parameter validation. Fields with .describe() become parameter descriptions for the AI.
function
required
Async function (context, params) => Promise<ToolResult>. Receives a ToolExecutionContext with workdir, security policy, and session manager.
string
default:"full"
Which model tier receives this tool: essential, standard, full.
function
Optional availability check. Return { available: false, reason: "..." } to hide the tool when its dependencies aren’t configured.
boolean
Force approval requests regardless of security mode.
object
Rate limit config: { maxCalls: 10, windowMs: 60000 }.

ToolResult Format

Your execute function must return a ToolResult:

ToolExecutionContext

The context parameter gives you access to:

Skill-Based Command Dispatch

For simpler cases, you can define a command in a SKILL.md file that dispatches to an existing tool:
When a user types /my-command arg1 arg2, it calls exec with the raw args as the command.

Tool Tier Assignment

Custom tools default to the full tier. To make your tool available to smaller models, set a lower tier:

Testing Custom Tools

Plugin SDK

Full plugin development guide.

Creating Skills

Lighter-weight skill-based commands.