Files
Fu-Jie_openwebui-extensions/plugins/tools/batch-install-plugins
fujie cea31fed38 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>
2026-03-15 17:45:42 +08:00
..

Batch Install Plugins from GitHub

Author: Fu-Jie | Version: 1.0.0 | Project: OpenWebUI Extensions

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"

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 is a big motivation for me. Thank you for the support.