Releases: Fu-Jie/openwebui-extensions
GitHub Copilot Official SDK Pipe v0.11.0
Overview
This release brings significant performance optimizations and stability enhancements. We fixed a critical bug in the client management logic, eliminating the 1-2s process startup latency between turns and significantly improving Time to First Token (TTFT). Additionally, the plugin now supports a pure BYOK mode and features improved environment isolation for concurrent user requests.
View Plugin Source & Documentation
New Features
- 🔑 Pure BYOK Mode: Allows the plugin to operate without a
GH_TOKENby using custom API keys (OpenAI/Anthropic) via BYOK Valves. - 🩺 Smart Stall Detection: Integrated
client.ping()into the timeout logic. The system now "pokes" the underlying process before aborting, preventing the termination of slow but healthy long-running tasks. - 🧹 Smart TODO Visibility: The TODO List widget is now automatically hidden in subsequent chats once all tasks are marked as completed, keeping the UI clean.
Bug Fixes
- 🚀 Major Performance Optimization: Fixed a regression where the shared singleton client pool was incorrectly terminated after each response. Restored 1-2s startup speed for all follow-up messages.
- 🛡️ Cross-user Isolation: Redesigned environment variable injection to prevent token pollution during concurrent requests from different users.
- 📏 RichUI Height Stability: Fixed the infamous infinite vertical growth bug in embedded HTML components by refining the height measurement and breaking the ResizeObserver feedback loop.
Migration Notes
- If you previously relied on
GH_TOKENfor standard Copilot models but want to switch to a pure BYOK setup, you can now safely clear theGH_TOKENValve and only configureBYOK_BASE_URLandBYOK_API_KEY.
Version Changes
Plugin Updates
- GitHub Copilot Official SDK Pipe: v0.10.1 → v0.11.0 | 📖 README
Batch Install Plugins from GitHub v1.1.0
Overview
Batch Install Plugins from GitHub v1.1.0 upgrades the install confirmation step into an interactive plugin picker powered by the OpenWebUI execute event. Users can now review the filtered plugin list in a browser dialog, uncheck anything they do not want, and install only the selected subset.
Highlights
- Interactive Selection Dialog: Opens a checkbox-based browser dialog with type filters, keyword search, and visible plugin descriptions
- Multi-Repository Input: Accepts multiple
owner/repovalues in one request and groups the dialog by repository - Selective Installation: The install loop now runs only for the plugins the user keeps selected
- Repository Context: Displays the current repository and only shows useful exclusion information inside the dialog
- Localized UI: Dialog controls are localized for all supported languages
- No Workflow Regression: Existing discovery, filtering, auto-update, and fallback connection logic remain unchanged
Technical Notes
- Replaced the install confirmation step with
__event_call__({"type": "execute"}) - Added a repository parser plus multi-repository discovery fan-out before filtering and installation
- Returns a structured payload containing
confirmedandselected_ids - Preserves the existing 120-second timeout for user interaction
- Keeps installation ordering aligned with the requested repository order and filtered candidate list
Validation
- Python syntax validated with
python -m py_compile plugins/tools/batch-install-plugins/batch_install_plugins.py - README and mirrored docs updated to match the new interactive selection flow
Upgrade Notes
- No new Valves are required
- Existing prompts continue to work
- Users now get a plugin picker before installation begins
- One request can now merge multiple repositories into the same selection dialog
Version Changes
Plugin Updates
- Batch Install Plugins from GitHub: v1.0.0 → v1.1.0 | 📖 README
GitHub Copilot Official SDK Pipe v0.10.1
Batch Install Plugins from GitHub v1.0.0
Overview
Batch Install Plugins from GitHub is a new tool for OpenWebUI that enables one-click installation of multiple plugins directly from GitHub repositories. This initial release includes comprehensive features for discovering, filtering, and installing plugins with user confirmation, extensive multi-language support, and robust debugging capabilities for container deployments.
Features
- One-Click Installation: Install all plugins from a repository with a single command
- Smart Plugin Discovery: Parse Python files to extract metadata and validate plugins automatically
- Multi-Type Support: Support Pipe, Action, Filter, and Tool plugins in a single operation
- Confirmation Dialog: Display plugin list before installation for user review and approval
- Selective Installation: Exclude specific plugins using keyword-based filtering
- Smart Fallback: Container deployments auto-retry with localhost:8080 if primary connection fails
- Enhanced Debugging: Rich frontend JavaScript and backend Python logs for troubleshooting
- Extended Timeout: 120-second confirmation window for thoughtful decision-making
- Async Architecture: Non-blocking I/O operations for better performance
- Full Internationalization: Complete support for 11 languages with proper fallback maps
- Auto-Update: Automatically updates previously installed plugins
- Self-Exclusion: Automatically excludes the tool itself from batch operations
Technical Highlights
- httpx Integration: Modern async HTTP client for reliable, non-blocking requests
- Event Emitter Support: Proper handling of OpenWebUI event injection with fallbacks
- Timeout Protection: Wrapped frontend execution with timeout guards to prevent hanging
- Filtered List Consistency: Uses single source of truth for confirmation and installation
- Error Localization: All error messages are user-facing and properly localized across languages
- Deployment Resilience: Intelligent base URL resolution handles domain, localhost, and containerized environments
Supported Repositories
- Default: Fu-Jie/openwebui-extensions (strict validation)
- Custom: Any GitHub repository with Python plugin files
Testing
Comprehensive regression tests included:
- Filtered installation list consistency
- Missing event emitter handling
- Confirmation timeout verification
- Full failure scenarios
- Localization completeness
- Connection error debug logging and smart fallback
All 6 tests pass successfully.
Documentation
- English README with flow diagrams and usage examples
- Chinese README (README_CN.md) with complete translations
- Mirrored documentation for official docs site
- Plugin index entries in both English and Chinese
Compatibility
- OpenWebUI: 0.2.x - 0.8.x
- Python: 3.9+
- Dependencies: httpx (async HTTP client), pydantic (type validation)
Release Notes
- This initial v1.0.0 release includes complete plugin infrastructure with smart deployment handling.
- The plugin is designed to handle diverse deployment scenarios (domain, localhost, containerized) with minimal configuration.
Version Changes
New Plugins
- Batch Install Plugins from GitHub v1.0.0
- One-click batch install plugins from GitHub repositories to your OpenWebUI instance.
- 📖 README
Async Context Compression v1.5.0
Overview
Compared with the previous git version (1.4.2), this release introduces two major new capabilities: external chat reference summarization and a much stronger multilingual token-estimation pipeline. It also improves the reliability of the surrounding summary workflow, especially when provider-side failures occur.
New Features
- External Chat Reference Summaries: Add support for referenced chat context injection that can reuse cached summaries, inject small referenced chats directly, or generate summaries for larger referenced chats before injection.
- Fast Multilingual Token Estimation: Replace the old rough
len(text)//4fallback with a new mixed-script estimation pipeline so preflight decisions stay much closer to actual usage across English, Chinese, Japanese, Korean, Arabic, Cyrillic, Thai, and mixed content. - Stronger Working-Memory Prompt: Refined the XML summary prompt so generated working memory preserves more actionable state across general chat, coding tasks, and tool-heavy conversations.
- Clearer Frontend Debug Logs: Reworked browser-console debug output into grouped structural snapshots that make inlet/outlet state easier to inspect.
- Safer Tool Trimming Defaults: Enabled native tool-output trimming by default and exposed
tool_trim_threshold_charswith a 600-character threshold.
Bug Fixes
- Referenced-Chat Fallback Reliability: If the new referenced-chat summary path fails, the active request now falls back to direct contextual injection instead of failing the whole chat.
- Correct Summary Budgeting: Fixed referenced-chat summary preparation so
summary_model_max_contextcontrols summary-input fitting, whilemax_summary_tokensremains an output cap. - Visible Background Failures: Important background summary failures now surface to the browser console and chat status even when
show_debug_logis disabled. - Provider Error Surfacing: Improved summary-call error extraction so non-standard upstream provider error payloads are reported more clearly.
Release Notes
- Bilingual plugin README files and mirrored docs pages were refreshed for the
1.5.0release. - This release is aimed at reducing silent failure modes and making summary behavior easier to reason about during debugging.
Version Changes
Plugin Updates
- Async Context Compression: v1.4.2 → v1.5.0 | 📖 README
Async Context Compression v1.4.2
Async Context Compression v1.4.1
Overview
This release addresses the critical progress coordinate drift issue in OpenWebUI's outlet phase, ensuring robust summarization for long tool-calling conversations.
-
New Features
- Reverse-Unfolding Mechanism: Accurately reconstructs the expanded native tool-calling sequence during the outlet phase to permanently fix coordinate drift and missing summaries for long tool-based conversations.
- Safer Tool Trimming: Refactored
enable_tool_output_trimmingto strictly use atomic block groups for safe trimming, completely preventing JSON payload corruption.
-
Bug Fixes
- Fixed coordinate drift where
compressed_message_countcould lose track due to OpenWebUI's frontend view truncating tool calls.
- Fixed coordinate drift where
-
Related Issues
- Closes #56
Version Changes
Plugin Updates
- Async Context Compression: v1.4.0 → v1.4.1 | 📖 README
Async Context Compression v1.4.0
Overview
This release focuses on improving the structural integrity of chat history when using function-calling models and enhancing task reliability through concurrent task management. It introduces "Atomic Message Grouping" to prevent chat context corruption and a session-based locking mechanism to ensure stable background operations.
New Features
- Atomic Message Grouping: A new structure-aware logic that identifies and groups
assistant-tool-tool-assistantcalling sequences. This ensures that tool results are never orphaned from their calls during compression. - Tail Boundary Alignment: Automatically corrects truncation indices to ensure the recent context "tail" starts at a valid message boundary, preventing partial tool-calling sequences from being sent to the LLM.
- Chat Session Locking: Implements a per-chat-id asynchronous lock to prevent multiple summary tasks from running concurrently for the same session, reducing redundant LLM calls and race conditions.
- Metadata Traceability: Summarization inputs now include message IDs, participant names, and key metadata labels, allowing the summary model to maintain better traceability in its output.
Bug Fixes
- Fixed "No tool call found" Errors: By enforcing atomic grouping, the filter no longer truncates the context in a way that separates tool calls from their results.
- Improved Progress Calculation: Fixed an issue where summarizing messages would cause the progress tracking to drift due to shifting list indices.
- Prevented Duplicate Summary Tasks: The new locking mechanism ensures that only one background summary process is active per session.
Related Issues
- #56: Tool-Calling context corruption and concurrent summary tasks.
OpenWebUI Skills Manager Tool v0.3.0
OpenWebUI Skills Manager v0.3.0 Release Notes
This release introduces significant reliability enhancements for the auto-discovery mechanism, enables overwrite by default, and undergoes a major architectural refactor.
New Features
- Enhanced Directory Discovery: Replaced single-directory scan with a deep recursive Git trees search, ensuring
SKILL.mdfiles in nested subdirectories are properly discovered. - Default Overwrite Mode:
ALLOW_OVERWRITE_ON_CREATEis now enabled (True) by default. Skills installed or created with the same name will be overwritten instead of throwing an error.
Bug Fixes
- Deep Module Discovery: Fixed an issue where the
install_skillauto-discovery function would fail to find nested skills when given a root directory (e.g., whenSKILL.mdis hidden insideplugins/visual-explainer/rather than the immediate root). Resolves #58. - Missing Positional Arguments: Fixed an issue where
_emit_statusand_emit_notificationwould crash due to missingvalvesparameter references after the stateless codebase refactoring.
Enhancements
- Code Refactor: Decoupled all internal helper methods from the
Toolsclass to global scope, making the codebase stateless, cleaner, and strictly enforcing context injection.
What's Changed
Plugin Updates
- OpenWebUI Skills Manager Tool: v0.2.1 → v0.3.0
- 📖 README
Commits
- feat(openwebui-skills-manager): enhance auto-discovery and structural refactoring
- Enable default overwrite installation policy for overlapping skills
- Support deep recursive GitHub trees discovery mechanism to resolve #58
- Refactor internal architecture to fully decouple stateless helper logic
- READMEs and docs synced (v0.3.0)
- fix(copilot-sdk): implement dict-based isolated cache and optimize session config
- Fix model list flapping bug by utilizing dictionary-based '_discovery_cache' keyed by config hash instead of wiping a global list.
- Optimize performance by removing redundant disk IO 'config.json' syncing ('_sync_mcp_config' and '_sync_copilot_config'); SDK directly accepts params via 'SessionConfig'.
- Remove unused imports and variables based on flake8 lint rules.
Download
📦 Download the updated plugin files below
Installation
From OpenWebUI Community
- Open OpenWebUI Admin Panel
- Navigate to Functions/Tools
- Search for the plugin name
- Click Install
Manual Installation
- Download the plugin file (
.py) from the assets below - Open OpenWebUI Admin Panel → Functions
- Click "Create Function" → Import
- Paste the plugin code
Markdown Normalizer v1.2.8
Markdown Normalizer v1.2.8
This release focuses on significantly improving the reliability and safety of the Markdown Normalizer filter, ensuring that it never corrupts valid technical content and elegantly handles unexpected errors.
Bug Fixes
- Error Fallback Mechanism: Fixed an issue where the plugin could return partially modified or broken text if an error occurred during normalization. It now guarantees a 100% rollback to the original text upon any failure.
- Inline Code Protection: Refined the escape character fixing logic to accurately identify and protect inline code blocks (
`...`). This prevents valid technical strings, such as regular expressions ([\n\r]) and Windows file paths (C:\Windows), from being unintentionally modified. - Code Block Escaping Control: Fixed a bug where the
enable_escape_fix_in_code_blocksValve setting was ignored. The setting now correctly applies, allowing users to optionally fix broken newlines inside code blocks (e.g., repairing flat SQL queries) when enabled.
New Features
- Privacy & Log Optimization: The
show_debug_logValve now defaults toFalseinstead ofTrue. This prevents sensitive chat content from automatically printing to the browser console and reduces unnecessary log noise for general users.
What's Changed
Plugin Updates
- Markdown Normalizer: v1.2.7 → v1.2.8
- 📖 README
Download
📦 Download the updated plugin files below
Installation
From OpenWebUI Community
- Open OpenWebUI Admin Panel
- Navigate to Functions/Tools
- Search for the plugin name
- Click Install
Manual Installation
- Download the plugin file (
.py) from the assets below - Open OpenWebUI Admin Panel → Functions
- Click "Create Function" → Import
- Paste the plugin code