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>
4.9 KiB
4.9 KiB
Batch Install Plugins from GitHub
Author: Fu-Jie | Version: 1.0.0 | Project: 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
- Open OpenWebUI and go to Workspace > Tools
- Install Batch Install Plugins from GitHub from the official marketplace
- Enable this tool for your model/chat
- 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 collectioniChristGit/OpenWebui-Tools- Comprehensive tool and plugin collectionHaervwe/open-webui-tools- Specialized tools and utilitiesClassic298/open-webui-plugins- Various plugin implementationssuurt8ll/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:
- A
.pyfile containingclass Tools:,class Filter:,class Pipe:, orclass Action: - A docstring with
title:,description:, andopenwebui_id:fields - Filename must not end with
_cn
Other GitHub Repositories
For other repositories:
- A
.pyfile containingclass Tools:,class Filter:,class Pipe:, orclass Action: - A docstring with
title:anddescription: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 is a big motivation for me. Thank you for the support.