SuperAPI AI 工具集

creating-opencode-plugins

通用与其它

查看项目

更新于 10-16 03:46

技能介绍

用途:该技能用于创建 OpenCode 插件。插件为 JavaScript/TypeScript 模块,挂接 OpenCode AI 助手生命周期中的 25+ 事件,导出 async 函数,接收 context(project、client、$、directory、worktree)并返回事件处理器。

主要能力:可拦截文件操作(如防止分享 .env)、监控命令执行与通知、处理 LSP 诊断、管理权限(自动批准可信操作)、响应会话生命周期、注册自定义工具、增强 TUI 交互。事件类别包括 command、file、installation、lsp、message、permission、server、session、todo、tool、tui。

使用方式:插件形如 export const MyPlugin = async (context) => ({ event: async ({ event }) => { switch(event.type){...} } })。可通过 package.json 的 plugin 字段声明文件与位置,hooks 声明挂接事件。可安装到全局 ~/.config/opencode/plugin/ 或项目 .opencode/plugin/。可用 opencode-plugin-compose 的 compose([...]) 组合多个插件,按序执行各钩子。官方文档:https://opencode.ai/docs/plugins/;Schema:packages/converters/schemas/opencode-plugin.schema.json。

适用场景与限制:适合安全策略、命令通知、质量格式化、监控分析等。不适合简单提示指令(用 agents)、一次性脚本(用 bash)和静态配置(用设置文件)。事件处理器应异步、加 try/catch、避免重计算、不要直接改事件数据而应返回 override 对象,并核实 event.type。OpenCode 插件无法直接由 Claude Code hooks 转换,因事件模型、格式和执行上下文不同,需重写逻辑;Claude Hook 与 OpenCode 事件存在映射(如 PreToolUse→tool.execute.before、PostToolUse→tool.execute.after、UserPromptSubmit→message.*、SessionEnd→session.idle)。测试时可用 mock context 与模拟事件本地验证。其他平台、收费与价格信息暂未提供。