feat(batch-install-plugins): initial release v1.0.0
Add Batch Install Plugins from GitHub tool with: - One-click installation of plugins from GitHub repositories - Smart plugin discovery with metadata extraction and validation - Confirmation dialog with plugin list preview - Selective installation with keyword-based filtering - Smart fallback: auto-retry with localhost:8080 on connection failure - Enhanced debugging with frontend and backend logging - 120-second confirmation timeout for user convenience - Async httpx client for non-blocking I/O - Complete i18n support across 11 languages - Event emitter handling with fallback support - Timeout guards on frontend JavaScript execution - Filtered list consistency for confirmation and installation - Auto-exclusion of tool itself from batch operations - 6 regression tests with 100% pass rate Documentation includes: - English and Chinese READMEs with flow diagrams - Popular repository examples (iChristGit, Haervwe, Classic298, suurt8ll) - Mirrored docs for official documentation site - Plugin index entries in both languages - Comprehensive release notes (v1.0.0.md and v1.0.0_CN.md) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
139
docs/plugins/tools/batch-install-plugins-tool.md
Normal file
139
docs/plugins/tools/batch-install-plugins-tool.md
Normal file
@@ -0,0 +1,139 @@
|
||||
# Batch Install Plugins from GitHub
|
||||
|
||||
**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 1.0.0 | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **License:** MIT
|
||||
|
||||
---
|
||||
|
||||
One-click batch install plugins from GitHub repositories to your OpenWebUI instance.
|
||||
|
||||
## Key Features
|
||||
|
||||
- **One-Click Install**: Install all plugins with a single command
|
||||
- **Auto-Update**: Automatically updates previously installed plugins
|
||||
- **GitHub Support**: Install plugins from any GitHub repository
|
||||
- **Multi-Type Support**: Supports Pipe, Action, Filter, and Tool plugins
|
||||
- **Confirmation**: Shows plugin list before installing, allows selective installation
|
||||
- **i18n**: Supports 11 languages
|
||||
|
||||
## Flow
|
||||
|
||||
```
|
||||
User Input
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────┐
|
||||
│ Discover Plugins from GitHub │
|
||||
│ (fetch file tree + parse .py) │
|
||||
└─────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────┐
|
||||
│ Filter by Type & Keywords │
|
||||
│ (tool/filter/pipe/action) │
|
||||
└─────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────┐
|
||||
│ Show Confirmation Dialog │
|
||||
│ (list plugins + exclude hint) │
|
||||
└─────────────────────────────────────┘
|
||||
│
|
||||
├── [Cancel] → End
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────┐
|
||||
│ Install to OpenWebUI │
|
||||
│ (update or create each plugin) │
|
||||
└─────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
Done
|
||||
```
|
||||
|
||||
## How to Use
|
||||
|
||||
1. Open OpenWebUI and go to **Workspace > Tools**
|
||||
2. Install **Batch Install Plugins from GitHub** from the official marketplace
|
||||
3. Enable this tool for your model/chat
|
||||
4. Ask the model to install plugins
|
||||
|
||||
## Usage Examples
|
||||
|
||||
```
|
||||
"Install all plugins"
|
||||
"Install all plugins from github.com/username/repo"
|
||||
"Install only pipe plugins"
|
||||
"Install action and filter plugins"
|
||||
"Install all plugins, exclude_keywords=copilot"
|
||||
```
|
||||
|
||||
## Popular Plugin Repositories
|
||||
|
||||
Here are some popular repositories with many plugins you can install:
|
||||
|
||||
### Community Collections
|
||||
|
||||
```
|
||||
# Install all plugins from iChristGit's collection
|
||||
"Install all plugins from iChristGit/OpenWebui-Tools"
|
||||
|
||||
# Install all tools from Haervwe's tools collection
|
||||
"Install all plugins from Haervwe/open-webui-tools"
|
||||
|
||||
# Install all plugins from Classic298's repository
|
||||
"Install all plugins from Classic298/open-webui-plugins"
|
||||
|
||||
# Install all functions from suurt8ll's collection
|
||||
"Install all plugins from suurt8ll/open_webui_functions"
|
||||
|
||||
# Install only specific types (e.g., only tools)
|
||||
"Install only tool plugins from iChristGit/OpenWebui-Tools"
|
||||
|
||||
# Exclude certain keywords while installing
|
||||
"Install all plugins from Haervwe/open-webui-tools, exclude_keywords=test,deprecated"
|
||||
```
|
||||
|
||||
### Supported Repositories
|
||||
|
||||
- `Fu-Jie/openwebui-extensions` - Default, official plugin collection
|
||||
- `iChristGit/OpenWebui-Tools` - Comprehensive tool and plugin collection
|
||||
- `Haervwe/open-webui-tools` - Specialized tools and utilities
|
||||
- `Classic298/open-webui-plugins` - Various plugin implementations
|
||||
- `suurt8ll/open_webui_functions` - Function-based plugins
|
||||
|
||||
## Default Repository
|
||||
|
||||
When no repository is specified, defaults to `Fu-Jie/openwebui-extensions`.
|
||||
|
||||
## Plugin Detection Rules
|
||||
|
||||
### Fu-Jie/openwebui-extensions (Strict)
|
||||
|
||||
For the default repository, plugins must have:
|
||||
1. A `.py` file containing `class Tools:`, `class Filter:`, `class Pipe:`, or `class Action:`
|
||||
2. A docstring with `title:`, `description:`, and **`openwebui_id:`** fields
|
||||
3. Filename must not end with `_cn`
|
||||
|
||||
### Other GitHub Repositories
|
||||
|
||||
For other repositories:
|
||||
1. A `.py` file containing `class Tools:`, `class Filter:`, `class Pipe:`, or `class Action:`
|
||||
2. A docstring with `title:` and `description:` fields
|
||||
|
||||
## Configuration (Valves)
|
||||
|
||||
| Parameter | Default | Description |
|
||||
| --- | --- | --- |
|
||||
| `SKIP_KEYWORDS` | `test,verify,example,template,mock` | Comma-separated keywords to skip |
|
||||
| `TIMEOUT` | `20` | Request timeout in seconds |
|
||||
|
||||
## Confirmation Timeout
|
||||
|
||||
User confirmation dialogs have a default timeout of **2 minutes (120 seconds)**, allowing sufficient time for users to:
|
||||
- Read and review the plugin list
|
||||
- Make installation decisions
|
||||
- Handle network delays
|
||||
|
||||
## Support
|
||||
|
||||
If this plugin has been useful, a star on [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) is a big motivation for me. Thank you for the support.
|
||||
139
docs/plugins/tools/batch-install-plugins-tool.zh.md
Normal file
139
docs/plugins/tools/batch-install-plugins-tool.zh.md
Normal file
@@ -0,0 +1,139 @@
|
||||
# Batch Install Plugins from GitHub - 从 GitHub 批量安装插件
|
||||
|
||||
**作者:** [Fu-Jie](https://github.com/Fu-Jie) | **版本:** 1.0.0 | **项目:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **许可:** MIT
|
||||
|
||||
---
|
||||
|
||||
一键从 GitHub 仓库批量安装插件到你的 OpenWebUI 实例。
|
||||
|
||||
## ✨ 主要特性
|
||||
|
||||
- **一键安装**: 一条命令安装所有插件
|
||||
- **自动更新**: 自动更新之前已安装的插件
|
||||
- **GitHub 支持**: 支持从任何 GitHub 仓库安装插件
|
||||
- **多类型支持**: 支持 Pipe、Action、Filter 和 Tool 插件
|
||||
- **确认机制**: 安装前显示插件列表,允许选择性安装
|
||||
- **国际化**: 支持 11 种语言
|
||||
|
||||
## 工作流
|
||||
|
||||
```
|
||||
用户输入
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────┐
|
||||
│ 从 GitHub 发现插件 │
|
||||
│ (获取文件树 + 解析 .py) │
|
||||
└─────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────┐
|
||||
│ 按类型和关键词过滤 │
|
||||
│ (tool/filter/pipe/action) │
|
||||
└─────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────┐
|
||||
│ 显示确认对话框 │
|
||||
│ (插件列表 + 排除提示) │
|
||||
└─────────────────────────────────────┘
|
||||
│
|
||||
├── [取消] → 结束
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────┐
|
||||
│ 安装到 OpenWebUI │
|
||||
│ (更新或创建每个插件) │
|
||||
└─────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
完成
|
||||
```
|
||||
|
||||
## 🚀 使用方法
|
||||
|
||||
1. 打开 OpenWebUI,进入 **工作区 > 工具**
|
||||
2. 从官方市场安装 **Batch Install Plugins from GitHub**
|
||||
3. 为你的模型/聊天启用此工具
|
||||
4. 让模型安装插件
|
||||
|
||||
## 使用示例
|
||||
|
||||
```
|
||||
"安装所有插件"
|
||||
"从 github.com/username/repo 安装所有插件"
|
||||
"仅安装 pipe 插件"
|
||||
"安装 action 和 filter 插件"
|
||||
"安装所有插件,exclude_keywords=copilot"
|
||||
```
|
||||
|
||||
## 热门插件仓库
|
||||
|
||||
这些是包含大量插件的热门仓库,你可以从中安装插件:
|
||||
|
||||
### 社区合集
|
||||
|
||||
```
|
||||
# 从 iChristGit 的集合安装所有插件
|
||||
"从 iChristGit/OpenWebui-Tools 安装所有插件"
|
||||
|
||||
# 从 Haervwe 的工具集合只安装工具
|
||||
"从 Haervwe/open-webui-tools 安装所有插件"
|
||||
|
||||
# 从 Classic298 的仓库安装所有插件
|
||||
"从 Classic298/open-webui-plugins 安装所有插件"
|
||||
|
||||
# 从 suurt8ll 的集合安装所有函数
|
||||
"从 suurt8ll/open_webui_functions 安装所有插件"
|
||||
|
||||
# 仅安装特定类型的插件(比如只安装工具)
|
||||
"从 iChristGit/OpenWebui-Tools 仅安装 tool 插件"
|
||||
|
||||
# 安装时排除特定关键词
|
||||
"从 Haervwe/open-webui-tools 安装所有插件,exclude_keywords=test,deprecated"
|
||||
```
|
||||
|
||||
### 支持的仓库
|
||||
|
||||
- `Fu-Jie/openwebui-extensions` - 默认的官方插件集合
|
||||
- `iChristGit/OpenWebui-Tools` - 全面的工具和插件集合
|
||||
- `Haervwe/open-webui-tools` - 专业的工具和实用程序
|
||||
- `Classic298/open-webui-plugins` - 各种插件实现
|
||||
- `suurt8ll/open_webui_functions` - 基于函数的插件
|
||||
|
||||
## 默认仓库
|
||||
|
||||
未指定仓库时,默认使用 `Fu-Jie/openwebui-extensions`。
|
||||
|
||||
## 插件检测规则
|
||||
|
||||
### Fu-Jie/openwebui-extensions(严格模式)
|
||||
|
||||
对于默认仓库,插件必须有:
|
||||
1. 包含 `class Tools:`、`class Filter:`、`class Pipe:` 或 `class Action:` 的 `.py` 文件
|
||||
2. 包含 `title:`、`description:` 和 **`openwebui_id:`** 字段的文档字符串
|
||||
3. 文件名不能以 `_cn` 结尾
|
||||
|
||||
### 其他 GitHub 仓库
|
||||
|
||||
对于其他仓库:
|
||||
1. 包含 `class Tools:`、`class Filter:`、`class Pipe:` 或 `class Action:` 的 `.py` 文件
|
||||
2. 包含 `title:` 和 `description:` 字段的文档字符串
|
||||
|
||||
## 配置 (Valves)
|
||||
|
||||
| 参数 | 默认值 | 描述 |
|
||||
| --- | --- | --- |
|
||||
| `SKIP_KEYWORDS` | `test,verify,example,template,mock` | 要跳过的关键词,用逗号分隔 |
|
||||
| `TIMEOUT` | `20` | 请求超时时间(秒) |
|
||||
|
||||
## 确认超时时间
|
||||
|
||||
用户确认对话框的默认超时时间为 **2 分钟(120 秒)**,为用户提供充足的时间来:
|
||||
- 阅读和查看插件列表
|
||||
- 做出安装决定
|
||||
- 处理网络延迟
|
||||
|
||||
## 支持
|
||||
|
||||
如果这个插件对你有帮助,欢迎到 [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) 点个 Star,这将是我持续改进的动力,感谢支持。
|
||||
@@ -4,5 +4,6 @@ OpenWebUI native Tool plugins that can be used across models.
|
||||
|
||||
## Available Tool Plugins
|
||||
|
||||
- [Batch Install Plugins from GitHub](batch-install-plugins-tool.md) (v1.0.0) - One-click batch install plugins from GitHub repositories with confirmation and multi-language support.
|
||||
- [OpenWebUI Skills Manager Tool](openwebui-skills-manager-tool.md) (v0.3.0) - Simple native skill management (`list/show/install/create/update/delete`).
|
||||
- [Smart Mind Map Tool](smart-mind-map-tool.md) (v1.0.0) - Intelligently analyzes text content and proactively generates interactive mind maps to help users structure and visualize knowledge.
|
||||
|
||||
@@ -4,5 +4,6 @@
|
||||
|
||||
## 可用 Tool 插件
|
||||
|
||||
- [Batch Install Plugins from GitHub](batch-install-plugins-tool.zh.md) (v1.0.0) - 一键从 GitHub 仓库批量安装插件,支持确认和多语言。
|
||||
- [OpenWebUI Skills 管理工具](openwebui-skills-manager-tool.zh.md) (v0.3.0) - 简化技能管理(`list/show/install/create/update/delete`)。
|
||||
- [智能思维导图工具 (Smart Mind Map Tool)](smart-mind-map-tool.zh.md) (v1.0.0) - 智能分析文本内容并主动生成交互式思维导图,帮助用户结构化与可视化知识。
|
||||
|
||||
Reference in New Issue
Block a user