# Batch Install Plugins from GitHub | 作者:[Fu-Jie](https://github.com/Fu-Jie) · v1.1.0 | [⭐ 点个 Star 支持项目](https://github.com/Fu-Jie/openwebui-extensions) | | :--- | ---: | | ![followers](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2FFu-Jie%2Fdb3d95687075a880af6f1fba76d679c6%2Fraw%2Fbadge_followers.json&label=%F0%9F%91%A5&style=flat) | ![points](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2FFu-Jie%2Fdb3d95687075a880af6f1fba76d679c6%2Fraw%2Fbadge_points.json&label=%E2%AD%90&style=flat) | ![top](https://img.shields.io/badge/%F0%9F%8F%86-Top%20%3C1%25-10b981?style=flat) | ![contributions](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2FFu-Jie%2Fdb3d95687075a880af6f1fba76d679c6%2Fraw%2Fbadge_contributions.json&label=%F0%9F%93%A6&style=flat) | ![downloads](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2FFu-Jie%2Fdb3d95687075a880af6f1fba76d679c6%2Fraw%2Fbadge_downloads.json&label=%E2%AC%87%EF%B8%8F&style=flat) | ![saves](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2FFu-Jie%2Fdb3d95687075a880af6f1fba76d679c6%2Fraw%2Fbadge_saves.json&label=%F0%9F%92%BE&style=flat) | ![views](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2FFu-Jie%2Fdb3d95687075a880af6f1fba76d679c6%2Fraw%2Fbadge_views.json&label=%F0%9F%91%81%EF%B8%8F&style=flat) | | :---: | :---: | :---: | :---: | :---: | :---: | :---: | 一键将 GitHub 仓库中的插件批量安装到你的 OpenWebUI 实例。 ## 主要功能 - 一键安装:单个命令安装所有插件 - 自动更新:自动更新之前安装过的插件 - 公开 GitHub 支持:支持从一个或多个公开 GitHub 仓库安装插件 - 多类型支持:支持 Pipe、Action、Filter 和 Tool 插件 - 多仓库选择器:一次请求可合并多个仓库,并在同一个分组对话框中查看 - 交互式选择对话框:先按类型筛选、按关键词搜索并查看描述信息,再勾选要安装的插件,只安装所选子集 - 国际化:支持 11 种语言 ## 流程 ``` 用户输入 │ ▼ ┌─────────────────────────────────────┐ │ 从 GitHub 多仓库发现插件 │ │ (获取文件树 + 解析 .py 文件) │ └─────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ 按类型和关键词过滤 │ │ (tool/filter/pipe/action) │ └─────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────┐ │ 显示选择对话框 │ │ (仓库分组 + 筛选 + 搜索) │ └─────────────────────────────────────┘ │ ├── [取消] → 结束 │ ▼ ┌─────────────────────────────────────┐ │ 安装到 OpenWebUI │ │ (更新或创建每个插件) │ └─────────────────────────────────────┘ │ ▼ 完成 ``` ## 使用方法 1. 打开 OpenWebUI,进入 **Workspace > Tools** 2. 从市场安装 **Batch Install Plugins from GitHub** 3. 为你的模型/对话启用此工具 4. 让模型调用工具来安装插件 ## 交互式安装工作流 `repo` 参数现在支持多个 `owner/repo`,可用逗号、分号或换行分隔。 在插件发现和过滤完成后,OpenWebUI 会通过 `execute` 事件打开浏览器选择对话框。对话框会合并所有目标仓库的结果,按仓库分组展示,并支持类型筛选、关键词搜索和描述查看,再开始调用安装 API。 如果一次用户请求里提到了多个仓库,尽量保持在同一次请求里,让模型把它们合并到一次工具调用中。 ## 快速开始:安装热门插件集 复制以下任一提示词,粘贴到你的对话框中: ``` # 安装我的默认集合 安装所有插件 # 添加热门社区工具 从 iChristGit/OpenWebui-Tools 安装所有插件 # 添加实用工具扩展 从 Haervwe/open-webui-tools 安装所有插件 # 添加混合社区实现 从 Classic298/open-webui-plugins 安装所有插件 # 添加基于函数的插件 从 suurt8ll/open_webui_functions 安装所有插件 # 添加 OpenRouter 管道集成 从 rbb-dev/Open-WebUI-OpenRouter-pipe 安装所有插件 # 一次请求混合多个仓库 从 Fu-Jie/openwebui-extensions、Classic298/open-webui-plugins 安装所有插件 ``` 你可以直接使用任意一行,也可以在一次请求里组合多个仓库。如果想安装多个仓库的插件,优先使用一条合并后的请求,而不是分成多行单独发送。已安装的插件会自动更新。 ## 使用示例 更多高级用法: ``` # 一次请求组合多个仓库 "从 Fu-Jie/openwebui-extensions、iChristGit/OpenWebui-Tools 安装所有插件" # 按插件类型过滤 "从 iChristGit/OpenWebui-Tools 仅安装 tool 插件" "从 Classic298/open-webui-plugins、Haervwe/open-webui-tools 仅安装 action 插件" # 排除特定插件 "从 Haervwe/open-webui-tools、Classic298/open-webui-plugins 安装所有插件, exclude_keywords=test,deprecated" # 从你自己的仓库安装 "从 your-username/my-plugin-collection 安装所有插件" ``` ## 默认仓库 未指定仓库时,工具会使用 `Fu-Jie/openwebui-extensions`(我的个人合集)。你也可以在同一次请求里把它和其他仓库一起传入。 ## 插件检测规则 ### Fu-Jie/openwebui-extensions(严格模式) 对于默认仓库,工具会采用更严格的筛选规则: 1. 包含 `class Tools:`、`class Filter:`、`class Pipe:` 或 `class Action:` 的 `.py` 文件 2. Docstring 中包含 `title:`、`description:` 和 **`openwebui_id:`** 元数据 3. 文件名不能以 `_cn` 结尾 ### 其他公开 GitHub 仓库 其他仓库的插件必须满足: 1. 包含 `class Tools:`、`class Filter:`、`class Pipe:` 或 `class Action:` 的 `.py` 文件 2. Docstring 中包含 `title:` 和 `description:` 字段 ## 配置(Valves) | 参数 | 默认值 | 描述 | | --- | --- | --- | | `SKIP_KEYWORDS` | `test,verify,example,template,mock` | 逗号分隔的跳过关键词 | | `TIMEOUT` | `20` | 请求超时时间(秒)| ## 选择对话框超时时间 插件选择对话框的默认超时时间为 **2 分钟(120 秒)**,为用户提供充足的时间来: - 阅读和查看插件列表 - 勾选或取消勾选想安装的插件 - 处理网络延迟 ## 支持 ⭐ 如果这个插件对你有帮助,欢迎到 [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) 点个 Star,这将是我持续改进的动力,感谢支持。