插件概览
插件分类
Wox 插件按安装类型分类:
系统插件 (System Plugin):这些是 Wox 捆绑的插件,无法卸载。它们提供基本功能。例如,
wpm是用于插件管理的系统插件。用户插件 (User Plugin):这些是由用户安装的插件。用户可以安装、卸载、更新或禁用它们。
插件实现类型
Wox 支持两种不同的插件实现方法:
脚本插件 (Script Plugin)
脚本插件是轻量级的单文件插件,非常适合简单的自动化任务和快速实用程序。
特点:
- 单文件实现:整个插件逻辑包含在一个脚本文件中
- 按需执行:脚本按查询执行,不需要持久运行
- 多语言支持:支持 Python、JavaScript、Bash 和其他脚本语言
- 简化开发:通过注释定义元数据,无需复杂的配置文件
- 即时生效:修改脚本文件后立即生效,无需重启
- JSON-RPC 通信:使用 JSON-RPC 通过标准输入/输出与 Wox 通信
用例:
- 简单的文件操作和系统命令
- 快速文本处理和格式转换
- 调用外部 API 进行简单数据检索
- 个人自动化脚本和实用程序
- 学习和原型开发
- 不需要复杂状态管理的功能
局限性:
- 脚本为每个查询重新执行,性能相对较低
- 不支持复杂的异步操作和状态管理
- API 功能有限
- 不支持插件设置界面
- 执行超时限制(10 秒)
全功能插件 (Full-featured Plugin)
全功能插件是为复杂应用场景和高性能要求设计的综合插件。
特点:
- 完整架构:通过专用插件宿主进程运行
- 持久运行:插件保持加载和运行状态,支持状态管理
- 丰富 API:支持 AI 集成、预览功能、设置界面和其他高级功能
- WebSocket 通信:通过 WebSocket 与 Wox 核心进行高效通信
- 异步支持:完全支持异步操作
- 生命周期管理:完整的插件初始化、查询和卸载生命周期
用例:
- 需要复杂状态管理的应用程序
- 高频查询和实时数据处理
- 具有 AI 集成的智能插件
- 需要自定义设置界面的插件
- 复杂的异步操作和网络请求
- 性能敏感的应用场景
- 商业级插件开发
支持语言:
- Python: 使用
wox-pluginSDK - Node.js: 使用
@wox-launcher/wox-pluginSDK
选择指南
选择脚本插件,当:
- ✅ 功能相对简单,逻辑清晰
- ✅ 不需要复杂的状态管理
- ✅ 查询频率不高
- ✅ 快速原型设计和个人工具
- ✅ 学习 Wox 插件开发
- ✅ 单次执行任务
选择全功能插件,当:
- ✅ 需要复杂的业务逻辑
- ✅ 高频查询和实时响应
- ✅ 需要 AI 集成功能
- ✅ 需要自定义设置界面
- ✅ 复杂的异步操作
- ✅ 高性能要求
- ✅ 商业插件开发
插件命令
Wox 插件可以拥有提供特定功能的命令。例如,wpm 插件具有 install 和 remove 等用于插件管理的命令。