Skip to content

插件概览

插件分类

Wox 插件按安装类型分类:

  1. 系统插件 (System Plugin):这些是 Wox 捆绑的插件,无法卸载。它们提供基本功能。例如,wpm 是用于插件管理的系统插件。

  2. 用户插件 (User Plugin):这些是由用户安装的插件。用户可以安装、卸载、更新或禁用它们。

插件实现类型

Wox 支持两种不同的插件实现方法:

脚本插件 (Script Plugin)

脚本插件是轻量级的单文件插件,非常适合简单的自动化任务和快速实用程序。

特点:

  • 单文件实现:整个插件逻辑包含在一个脚本文件中
  • 按需执行:脚本按查询执行,不需要持久运行
  • 多语言支持:支持 Python、JavaScript、Bash 和其他脚本语言
  • 简化开发:通过注释定义元数据,无需复杂的配置文件
  • 即时生效:修改脚本文件后立即生效,无需重启
  • JSON-RPC 通信:使用 JSON-RPC 通过标准输入/输出与 Wox 通信

用例:

  • 简单的文件操作和系统命令
  • 快速文本处理和格式转换
  • 调用外部 API 进行简单数据检索
  • 个人自动化脚本和实用程序
  • 学习和原型开发
  • 不需要复杂状态管理的功能

局限性:

  • 脚本为每个查询重新执行,性能相对较低
  • 不支持复杂的异步操作和状态管理
  • API 功能有限
  • 不支持插件设置界面
  • 执行超时限制(10 秒)

全功能插件是为复杂应用场景和高性能要求设计的综合插件。

特点:

  • 完整架构:通过专用插件宿主进程运行
  • 持久运行:插件保持加载和运行状态,支持状态管理
  • 丰富 API:支持 AI 集成、预览功能、设置界面和其他高级功能
  • WebSocket 通信:通过 WebSocket 与 Wox 核心进行高效通信
  • 异步支持:完全支持异步操作
  • 生命周期管理:完整的插件初始化、查询和卸载生命周期

用例:

  • 需要复杂状态管理的应用程序
  • 高频查询和实时数据处理
  • 具有 AI 集成的智能插件
  • 需要自定义设置界面的插件
  • 复杂的异步操作和网络请求
  • 性能敏感的应用场景
  • 商业级插件开发

支持语言:

  • Python: 使用 wox-plugin SDK
  • Node.js: 使用 @wox-launcher/wox-plugin SDK

选择指南

选择脚本插件,当:

  • ✅ 功能相对简单,逻辑清晰
  • ✅ 不需要复杂的状态管理
  • ✅ 查询频率不高
  • ✅ 快速原型设计和个人工具
  • ✅ 学习 Wox 插件开发
  • ✅ 单次执行任务

选择全功能插件,当:

  • ✅ 需要复杂的业务逻辑
  • ✅ 高频查询和实时响应
  • ✅ 需要 AI 集成功能
  • ✅ 需要自定义设置界面
  • ✅ 复杂的异步操作
  • ✅ 高性能要求
  • ✅ 商业插件开发

插件命令

Wox 插件可以拥有提供特定功能的命令。例如,wpm 插件具有 installremove 等用于插件管理的命令。

基于 GPL-3.0 许可发布