* feat(github-copilot-sdk): add workspace skills support - Introduce ENABLE_WORKSPACE_SKILLS valve to enable/disable workspace custom tools discovery - Modify _build_session_config() to auto-load tools from .copilot-skills/ directory - Add workspace_skills_example.py template with 3 working example tools - Update README.md and README_CN.md with Workspace Skills guide and usage examples - Create v0.9.0.md and v0.9.0_CN.md release notes - Sync version to all docs files (index.md, index.zh.md, and main docs) - Bump version from 0.8.0 to 0.9.0 across all 7+ locations * docs: establish temp files handling policy (project-based, not /tmp) - Add TEMP_FILES_POLICY.md guideline for all skills and workflows - Update pr-submitter skill to use .temp/ directory instead of /tmp - Update release-prep skill documentation with temp file convention - Add .temp/ and .build/ entries to .gitignore - Create internal policy memo in /memories/repo/ This policy ensures: - All temporary files stay within project workspace (not system /tmp) - Alignment with OpenWebUI workspace isolation principles - Multi-user safety and cleanup traceability - Consistent handling across all skills and development workflows * fix(terminology): rename 'workspace skills' to 'workspace custom tools' for accuracy The term 'Skills' in Anthropic context refers to instruction-based frameworks (SKILL.md files with YAML frontmatter + markdown), not custom tool functions. Our implementation uses @define_tool decorator to define custom tools that the SDK auto-discovers from .copilot-skills/ directory. These are Tools, not Skills. Changes: - Rename ENABLE_WORKSPACE_SKILLS valve -> ENABLE_WORKSPACE_TOOLS - Update all documentation (README, README_CN, docs, release notes) - Fix section headings and descriptions throughout - Ensure consistent terminology across all files This is a terminology-only change; functionality remains identical. * feat(pipes): release v0.9.0 of GitHub Copilot SDK Pipe - Integrated OpenWebUI Skills Bridge and manage_skills tool - Reinforced status bar stability with session_finalized logic - Added persistent SDK config directory support * docs(pipes): add comprehensive guides and v0.9.0 notes for Copilot SDK - Added skill manager and best practices guides - Added publishing tool documentation - Included v0.9.0 release notes and deployment script - Updated usage guides
Pipes
English | 中文
Pipes process and enhance LLM responses after they are generated and before they are displayed to the user. This directory contains various pipe plugins that can be used to extend OpenWebUI functionality.
📋 Pipe Plugins List
| Plugin Name | Description | Documentation |
|---|---|---|
| Example Pipe | A template/example for creating pipe plugins | English / 中文 |
| AI Agent Pipe | Transforms AI responses into complete agent workflows with multiple thinking rounds and tool calls | English / 中文 |
🎯 What are Pipe Plugins?
Pipe plugins process the output from the LLM and can:
- Format responses (convert to markdown, JSON, tables, etc.)
- Enhance responses with additional information
- Translate or transform content
- Filter or modify content before display
- Add watermarks or metadata
- Integrate with external services
Pipes are executed after the LLM generates a response but before the user sees it.
🚀 Quick Start
Installing a Pipe Plugin
- Download the plugin file (
.py) to your local machine - Open OpenWebUI Admin Settings and find the "Plugins" section
- Select the "Pipes" type
- Upload the downloaded file
- Refresh the page and enable the pipe in your chat settings
- The pipe will be applied to all subsequent LLM responses
📖 Development Guide
When adding a new pipe plugin, please follow these steps:
- Create Plugin Directory: Create a new folder under
plugins/pipes/(e.g.,my_pipe/) - Write Plugin Code: Create a
.pyfile with clear documentation of functionality - Write Documentation:
- Create
README.md(English version) - Create
README_CN.md(Chinese version) - Include: feature description, configuration, usage examples, and troubleshooting
- Create
- Update This List: Add your plugin to the table above
⚙️ Best Practices for Pipe Development
- Non-blocking Operations: Keep pipe processing fast to avoid UI delays
- Error Handling: Gracefully handle errors without breaking the response
- Configuration: Make pipes configurable for different use cases
- Performance: Test with large responses to ensure efficiency
- Documentation: Provide clear examples and troubleshooting guides
Contributor Note: We welcome contributions of new pipe plugins! Please provide clear and complete documentation for each new plugin, including features, configuration, usage examples, and troubleshooting guides.
Author
Fu-Jie GitHub: Fu-Jie/openwebui-extensions