docs: add custom tools section to plugins documentation

This commit is contained in:
Dax Raad
2025-09-18 04:29:08 -04:00
parent 65baf76df6
commit 5f2945ae71

View File

@@ -103,3 +103,37 @@ export const EnvProtection = async ({ project, client, $, directory, worktree })
} }
} }
``` ```
---
### Custom tools
Create custom tools that opencode can use:
```ts title=".opencode/plugin/custom-tools.ts"
import type { Plugin, tool } from "@opencode-ai/plugin"
export const CustomToolsPlugin: Plugin = async (ctx) => {
return {
tool: {
mytool: tool((zod) => ({
description: "This is a custom tool",
args: {
foo: zod.string(),
},
async execute(args, ctx) {
return `Hello ${args.foo}!`
},
})),
},
}
}
```
The `tool` helper creates a custom tool that opencode can call. It takes a Zod schema function and returns a tool definition with:
- `description`: What the tool does
- `args`: Zod schema for the tool's arguments
- `execute`: Function that runs when the tool is called
Your custom tools will be available to opencode alongside built-in tools.