用途:该技能用于为 OpenWork 脚手架生成可用的 OpenCode 插件,当用户提出“创建一个做 X 的插件”“写一个插件”或想用自定义工具扩展 OpenWork/OpenCode 时使用。
主要能力:生成插件文件,包含正确的 API 形态、工具定义与钩子注册。插件是返回 hooks 对象的异步工厂函数,可声明工具(tool)、修改系统提示(experimental.chat.system.transform)、在工具执行前后运行代码(tool.execute.before/after)以及响应生命周期事件(event)。
使用方式:插件可放在项目 .opencode/plugins/my-plugin.ts(自动发现)、全局 ~/.config/opencode/plugins/my-plugin.ts,或作为 npm 包、file:/https: 路径在 opencode.json 的 plugin 数组中引用。工具参数使用 zodSchema.shape(ZodRawShape),而非 ZodObject;execute 返回字符串或 { output, metadata }。插件在 OpenCode 运行时进程内运行,可用 fetch()、fs、child_process 及 process.env。脚手架流程为:创建 .opencode/plugins/<name>.ts,必要时加入 opencode.json 的 plugin 数组,并提示用户重启会话以加载插件。
限制:OpenCode 插件与 Anthropic 插件格式不同(入口为异步工厂函数而非 manifest JSON,参数用 Zod 而非 JSON Schema,进程内运行而非沙箱容器,认证用 process.env 而非 manifest 中的 OAuth/API key,分发方式也不同)。适配 Anthropic 插件需改用 Zod 重写工具定义、将认证移至环境变量或 provider 配置、导出异步工厂函数;基于 HTTP 的 Anthropic 插件通常可改为 MCP 服务器。具体收费、价格与平台支持等资料暂未提供。