fix(batch-install-plugins): support CRLF community plugin metadata
- support CRLF docstrings and folded YAML metadata blocks - detect community repo plugins such as iChristGit/OpenWebui-Tools correctly - align README, mirrored docs, and announcement wording with actual behavior Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -1,8 +1,6 @@
|
||||
# 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
|
||||
|
||||
---
|
||||
**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 1.0.0 | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)
|
||||
|
||||
One-click batch install plugins from GitHub repositories to your OpenWebUI instance.
|
||||
|
||||
@@ -10,7 +8,7 @@ One-click batch install plugins from GitHub repositories to your OpenWebUI insta
|
||||
|
||||
- **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
|
||||
- **Public GitHub Support**: Install plugins from any public 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
|
||||
@@ -53,68 +51,91 @@ User Input
|
||||
## How to Use
|
||||
|
||||
1. Open OpenWebUI and go to **Workspace > Tools**
|
||||
2. Install **Batch Install Plugins from GitHub** from the official marketplace
|
||||
2. Install **Batch Install Plugins from GitHub** from the marketplace
|
||||
3. Enable this tool for your model/chat
|
||||
4. Ask the model to install plugins
|
||||
|
||||
## Interactive Installation Workflow
|
||||
|
||||
Each request handles one repository. To mix repositories, send another request after the previous installation completes.
|
||||
|
||||
### Example Installation Sequence
|
||||
|
||||
1. **Start with My Collection**
|
||||
```
|
||||
"Install all plugins from Fu-Jie/openwebui-extensions"
|
||||
```
|
||||
Review the confirmation dialog, approve, and the plugins are installed.
|
||||
|
||||
2. **Add a Community Collection**
|
||||
```
|
||||
"Install all plugins from iChristGit/OpenWebui-Tools"
|
||||
```
|
||||
Add more plugins from a different repository. Already installed plugins are updated seamlessly.
|
||||
|
||||
3. **Install a Specific Type**
|
||||
```
|
||||
"Install only pipe plugins from Haervwe/open-webui-tools"
|
||||
```
|
||||
Pick specific plugin types from another repository, or exclude certain keywords.
|
||||
|
||||
4. **Use Your Own Repository**
|
||||
```
|
||||
"Install all plugins from your-username/your-collection"
|
||||
```
|
||||
Works with any public GitHub repository in `owner/repo` format.
|
||||
|
||||
## Usage Examples
|
||||
|
||||
Each line below is a separate request:
|
||||
|
||||
```
|
||||
# Install from my default collection
|
||||
"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
|
||||
# Add another repository in a new request
|
||||
"Install all plugins from iChristGit/OpenWebui-Tools"
|
||||
|
||||
# Install all tools from Haervwe's tools collection
|
||||
"Install all plugins from Haervwe/open-webui-tools"
|
||||
# Add only tools from a different repository
|
||||
"Install only tool plugins from Haervwe/open-webui-tools"
|
||||
|
||||
# Install all plugins from Classic298's repository
|
||||
"Install all plugins from Classic298/open-webui-plugins"
|
||||
# Continue building your setup with another request
|
||||
"Install only action 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
|
||||
# Filter out unwanted plugins
|
||||
"Install all plugins from Haervwe/open-webui-tools, exclude_keywords=test,deprecated"
|
||||
|
||||
# Install from your own public repository
|
||||
"Install all plugins from your-username/my-plugin-collection"
|
||||
```
|
||||
|
||||
### Supported Repositories
|
||||
## Popular Public 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
|
||||
The tool works with any public GitHub repository in `owner/repo` format. Popular starting points include:
|
||||
|
||||
- `Fu-Jie/openwebui-extensions` - My personal collection and the default source
|
||||
- `iChristGit/OpenWebui-Tools` - Comprehensive tools and plugins
|
||||
- `Haervwe/open-webui-tools` - Utility-focused extensions
|
||||
- `Classic298/open-webui-plugins` - Mixed community plugins
|
||||
- `suurt8ll/open_webui_functions` - Function-based plugins
|
||||
- `rbb-dev/Open-WebUI-OpenRouter-pipe` - OpenRouter pipe integration
|
||||
|
||||
To combine repositories, run the tool again with a different `repo` after the previous installation completes.
|
||||
|
||||
## Default Repository
|
||||
|
||||
When no repository is specified, defaults to `Fu-Jie/openwebui-extensions`.
|
||||
When no repository is specified, the tool uses `Fu-Jie/openwebui-extensions` (my personal collection).
|
||||
|
||||
## Plugin Detection Rules
|
||||
|
||||
### Fu-Jie/openwebui-extensions (Strict)
|
||||
|
||||
For the default repository, plugins must have:
|
||||
For the default repository, the tool applies stricter filtering:
|
||||
1. A `.py` file containing `class Tools:`, `class Filter:`, `class Pipe:`, or `class Action:`
|
||||
2. A docstring with `title:`, `description:`, and **`openwebui_id:`** fields
|
||||
2. A docstring with `title:`, `description:`, and **`openwebui_id:`** metadata
|
||||
3. Filename must not end with `_cn`
|
||||
|
||||
### Other GitHub Repositories
|
||||
### Other Public GitHub Repositories
|
||||
|
||||
For other repositories:
|
||||
1. A `.py` file containing `class Tools:`, `class Filter:`, `class Pipe:`, or `class Action:`
|
||||
|
||||
Reference in New Issue
Block a user