Plugin SDK
Build OpenVesper plugins in TypeScript. Plugins ship tools, agents, channels, and LLM providers.
Installing
pnpm add @openvesper/plugin-sdkMinimal plugin
import { definePlugin, defineTool, inputSchema } from "@openvesper/plugin-sdk";
export default definePlugin({
name: "@your/plugin-hello",
version: "1.0.0",
description: "Greets the world",
tools: [
defineTool({
name: "say_hello",
description: "Returns a greeting",
inputSchema: inputSchema(
{ name: { type: "string", description: "Who to greet" } },
["name"]
),
handler: async (input) => ({
success: true,
data: { greeting: `Hello, ${input.name}!` },
}),
category: "demo",
}),
],
});Defining agents
import { defineAgent } from "@openvesper/plugin-sdk";
const myAgent = defineAgent({
mode: "my-agent",
name: "My Agent",
description: "...",
systemPrompt: "...",
capabilities: ["read", "external"],
});Tool permissions
Set permission on tools that mutate or call out:
defineTool({
name: "telegram_send",
permission: "mutation", // โ triggers approval prompt
...
});Source-tree layout
packages/plugins/your-plugin/
โโโ package.json # name, version, deps
โโโ plugin.json # manifest (optional but recommended)
โโโ tsconfig.json
โโโ src/
โโโ index.ts # default export: definePlugin(...)