diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 0000000..90f0273
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -0,0 +1,73 @@
+# GitHub Actions Workflow for MkDocs Deployment
+# This workflow builds and deploys the documentation to GitHub Pages
+
+name: Deploy MkDocs to GitHub Pages
+
+on:
+ # Trigger on push to main branch
+ push:
+ branches:
+ - main
+ paths:
+ - 'docs/**'
+ - 'mkdocs.yml'
+ - 'requirements.txt'
+ - '.github/workflows/deploy.yml'
+
+ # Allow manual trigger
+ workflow_dispatch:
+
+# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+# Allow only one concurrent deployment
+concurrency:
+ group: "pages"
+ cancel-in-progress: false
+
+jobs:
+ # Build job
+ build:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0 # Fetch all history for git-revision-date plugin
+
+ - name: Set up Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: '3.11'
+ cache: 'pip'
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install -r requirements.txt
+
+ - name: Build MkDocs site
+ run: mkdocs build --strict
+
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v3
+ with:
+ path: site
+
+ # Deployment job
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+
+ runs-on: ubuntu-latest
+ needs: build
+
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/docs/contributing.md b/docs/contributing.md
new file mode 100644
index 0000000..6f0c9ed
--- /dev/null
+++ b/docs/contributing.md
@@ -0,0 +1,186 @@
+# Contributing Guide
+
+Thank you for your interest in contributing to **OpenWebUI Extras**! We welcome contributions of plugins, prompts, documentation, and more.
+
+---
+
+## ðĪ How to Contribute
+
+### 1. Share Prompts
+
+If you have a useful prompt to share:
+
+1. Browse the `prompts/` directory and find an appropriate category
+2. If no suitable category exists, you can create a new folder
+3. Create a new `.md` file with your prompt
+4. Submit a Pull Request
+
+#### Prompt Format
+
+```markdown
+# Prompt Name
+
+Brief description of what this prompt does.
+
+## Use Case
+
+When to use this prompt.
+
+## The Prompt
+
+\```text
+Your prompt content here...
+\```
+
+## Tips
+
+Any tips for using this prompt effectively.
+```
+
+---
+
+### 2. Develop Plugins
+
+If you've developed an OpenWebUI plugin:
+
+#### Plugin Metadata
+
+Ensure your plugin includes complete metadata:
+
+```python
+"""
+title: Plugin Name
+author: Your Name
+version: 0.1.0
+description: Brief description of what the plugin does
+"""
+```
+
+#### Directory Structure
+
+Place your plugin in the appropriate directory:
+
+- `plugins/actions/` - Action plugins (buttons below messages)
+- `plugins/filters/` - Filter plugins (message processing)
+- `plugins/pipes/` - Pipe plugins (custom models)
+- `plugins/pipelines/` - Pipeline plugins (complex workflows)
+
+#### Documentation
+
+Please provide documentation for your plugin:
+
+- `README.md` - English documentation
+- `README_CN.md` - Chinese documentation (optional but appreciated)
+
+Include:
+
+- Feature description
+- Installation steps
+- Configuration options
+- Usage examples
+- Troubleshooting guide
+
+---
+
+### 3. Improve Documentation
+
+Found an error or want to improve the docs?
+
+1. Fork the repository
+2. Make your changes in the `docs/` directory
+3. Submit a Pull Request
+
+---
+
+## ð ïļ Development Standards
+
+### Code Style
+
+- **Python**: Follow [PEP 8](https://peps.python.org/pep-0008/) guidelines
+- **Comments**: Add comments for complex logic
+- **Naming**: Use clear, descriptive names
+
+### Testing
+
+Before submitting:
+
+1. Test your plugin locally in OpenWebUI
+2. Verify all features work as documented
+3. Check for edge cases and error handling
+
+### Commit Messages
+
+Use clear, descriptive commit messages:
+
+```
+Add: Smart Mind Map action plugin
+Fix: Context compression token counting
+Update: Plugin development guide with new examples
+```
+
+---
+
+## ð Submitting a Pull Request
+
+### Step-by-Step
+
+1. **Fork** the repository
+2. **Clone** your fork locally
+3. **Create** a new branch:
+ ```bash
+ git checkout -b feature/amazing-feature
+ ```
+4. **Make** your changes
+5. **Commit** your changes:
+ ```bash
+ git commit -m 'Add: Amazing feature'
+ ```
+6. **Push** to your branch:
+ ```bash
+ git push origin feature/amazing-feature
+ ```
+7. **Open** a Pull Request
+
+### PR Checklist
+
+- [ ] Code follows project style guidelines
+- [ ] Documentation is included/updated
+- [ ] Plugin has been tested locally
+- [ ] Commit messages are clear
+- [ ] PR description explains the changes
+
+---
+
+## ð Reporting Issues
+
+Found a bug? Please open an issue with:
+
+1. **Description**: Clear description of the problem
+2. **Steps to Reproduce**: How to trigger the issue
+3. **Expected Behavior**: What should happen
+4. **Actual Behavior**: What actually happens
+5. **Environment**: OpenWebUI version, browser, OS
+
+---
+
+## ðĄ Feature Requests
+
+Have an idea? We'd love to hear it!
+
+1. Check existing issues to avoid duplicates
+2. Open a new issue with the "enhancement" label
+3. Describe your idea and its use case
+
+---
+
+## ð License
+
+By contributing, you agree that your contributions will be licensed under the same license as the project.
+
+---
+
+## ð Thank You!
+
+Every contribution, no matter how small, helps make OpenWebUI Extras better for everyone. Thank you for being part of our community!
+
+[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui){ .md-button .md-button--primary }
diff --git a/docs/development/index.md b/docs/development/index.md
new file mode 100644
index 0000000..91e32ef
--- /dev/null
+++ b/docs/development/index.md
@@ -0,0 +1,160 @@
+# Development
+
+Learn how to develop plugins and contribute to OpenWebUI Extras.
+
+---
+
+## Getting Started
+
+
+
+- :material-book-open-page-variant:{ .lg .middle } **Plugin Development Guide**
+
+ ---
+
+ The comprehensive guide covering everything from getting started to advanced patterns and best practices.
+
+ [:octicons-arrow-right-24: Read the Guide](plugin-guide.md)
+
+- :material-github:{ .lg .middle } **Contributing**
+
+ ---
+
+ Learn how to contribute plugins, prompts, and documentation to the project.
+
+ [:octicons-arrow-right-24: Contribution Guide](../contributing.md)
+
+
+
+---
+
+## Plugin Types Overview
+
+OpenWebUI supports three main plugin types:
+
+| Type | Purpose | Entry Method |
+|------|---------|--------------|
+| **Action** | Add buttons to messages | `action()` |
+| **Filter** | Process messages | `inlet()` / `outlet()` |
+| **Pipe** | Custom model integration | `pipe()` |
+
+---
+
+## Quick Start Templates
+
+### Action Plugin
+
+```python
+"""
+title: My Action
+author: Your Name
+version: 1.0.0
+"""
+
+class Action:
+ async def action(self, body: dict, __event_emitter__=None):
+ await __event_emitter__({"type": "notification", "data": {"content": "Hello!"}})
+ return body
+```
+
+### Filter Plugin
+
+```python
+"""
+title: My Filter
+author: Your Name
+version: 1.0.0
+"""
+
+class Filter:
+ async def inlet(self, body: dict, __metadata__: dict) -> dict:
+ # Process before LLM
+ return body
+
+ async def outlet(self, body: dict, __metadata__: dict) -> dict:
+ # Process after LLM
+ return body
+```
+
+### Pipe Plugin
+
+```python
+"""
+title: My Pipe
+author: Your Name
+version: 1.0.0
+"""
+
+class Pipe:
+ def pipes(self):
+ return [{"id": "my-model", "name": "My Model"}]
+
+ def pipe(self, body: dict):
+ return "Response from custom pipe"
+```
+
+---
+
+## Core Concepts
+
+### Valves Configuration
+
+Valves allow users to configure plugins through the UI:
+
+```python
+from pydantic import BaseModel, Field
+
+class Action:
+ class Valves(BaseModel):
+ api_key: str = Field(default="", description="API Key")
+ enabled: bool = Field(default=True, description="Enable plugin")
+
+ def __init__(self):
+ self.valves = self.Valves()
+```
+
+### Event Emitter
+
+Send notifications and status updates:
+
+```python
+# Notification
+await __event_emitter__({
+ "type": "notification",
+ "data": {"type": "success", "content": "Done!"}
+})
+
+# Status update
+await __event_emitter__({
+ "type": "status",
+ "data": {"description": "Processing...", "done": False}
+})
+```
+
+### User Context
+
+Access user information:
+
+```python
+user_name = __user__.get("name", "User")
+user_id = __user__.get("id")
+user_language = __user__.get("language", "en-US")
+```
+
+---
+
+## Best Practices
+
+1. **Async Operations**: Always use `async/await` for I/O operations
+2. **Error Handling**: Catch exceptions and notify users
+3. **Status Updates**: Provide feedback during long operations
+4. **Configuration**: Use Valves for customizable options
+5. **Documentation**: Include clear docstrings and README files
+
+---
+
+## Resources
+
+- [Full Development Guide](plugin-guide.md)
+- [Plugin Examples](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins)
+- [OpenWebUI Documentation](https://docs.openwebui.com/)
diff --git a/docs/development/plugin-guide.md b/docs/development/plugin-guide.md
new file mode 100644
index 0000000..525c779
--- /dev/null
+++ b/docs/development/plugin-guide.md
@@ -0,0 +1,293 @@
+# OpenWebUI Plugin Development Guide
+
+> This guide consolidates official documentation, SDK details, and best practices to provide a systematic tutorial for developers, from beginner to expert.
+
+---
+
+## ð Table of Contents
+
+1. [Quick Start](#1-quick-start)
+2. [Core Concepts & SDK Details](#2-core-concepts--sdk-details)
+3. [Deep Dive into Plugin Types](#3-deep-dive-into-plugin-types)
+4. [Advanced Development Patterns](#4-advanced-development-patterns)
+5. [Best Practices & Design Principles](#5-best-practices--design-principles)
+6. [Troubleshooting](#6-troubleshooting)
+
+---
+
+## 1. Quick Start
+
+### 1.1 What are OpenWebUI Plugins?
+
+OpenWebUI Plugins (officially called "Functions") are the primary way to extend the platform's capabilities. Running in a backend Python environment, they allow you to:
+
+- :material-power-plug: **Integrate New Models**: Connect to Claude, Gemini, or custom RAGs via Pipes
+- :material-palette: **Enhance Interaction**: Add buttons (e.g., "Export", "Generate Chart") next to messages via Actions
+- :material-cog: **Intervene in Processes**: Modify data before requests or after responses via Filters
+
+### 1.2 Your First Plugin (Hello World)
+
+Save the following code as `hello.py` and upload it to the **Functions** panel in OpenWebUI:
+
+```python
+"""
+title: Hello World Action
+author: Demo
+version: 1.0.0
+"""
+
+from pydantic import BaseModel, Field
+from typing import Optional
+
+class Action:
+ class Valves(BaseModel):
+ greeting: str = Field(default="Hello", description="Greeting message")
+
+ def __init__(self):
+ self.valves = self.Valves()
+
+ async def action(
+ self,
+ body: dict,
+ __event_emitter__=None,
+ __user__=None
+ ) -> Optional[dict]:
+ user_name = __user__.get("name", "Friend") if __user__ else "Friend"
+
+ if __event_emitter__:
+ await __event_emitter__({
+ "type": "notification",
+ "data": {"type": "success", "content": f"{self.valves.greeting}, {user_name}!"}
+ })
+ return body
+```
+
+---
+
+## 2. Core Concepts & SDK Details
+
+### 2.1 â ïļ Important: Sync vs Async
+
+OpenWebUI plugins run within an `asyncio` event loop.
+
+!!! warning "Critical"
+ - **Principle**: All I/O operations (database, file, network) must be non-blocking
+ - **Pitfall**: Calling synchronous methods directly (e.g., `time.sleep`, `requests.get`) will freeze the entire server
+ - **Solution**: Wrap synchronous calls using `await asyncio.to_thread(sync_func, ...)`
+
+### 2.2 Core Parameters
+
+All plugin methods (`inlet`, `outlet`, `pipe`, `action`) support injecting the following special parameters:
+
+| Parameter | Type | Description |
+|:----------|:-----|:------------|
+| `body` | `dict` | **Core Data**. Contains request info like `messages`, `model`, `stream` |
+| `__user__` | `dict` | **Current User**. Contains `id`, `name`, `role`, `valves` (user config), etc. |
+| `__metadata__` | `dict` | **Metadata**. Contains `chat_id`, `message_id`. The `variables` field holds preset variables |
+| `__request__` | `Request` | **FastAPI Request Object**. Access `app.state` for cross-plugin communication |
+| `__event_emitter__` | `func` | **One-way Notification**. Used to send Toast notifications or status bar updates |
+| `__event_call__` | `func` | **Two-way Interaction**. Used to execute JS code, show confirmation dialogs, or input boxes |
+
+### 2.3 Configuration System (Valves)
+
+- **`Valves`**: Global admin configuration
+- **`UserValves`**: User-level configuration (higher priority, overrides global)
+
+```python
+class Filter:
+ class Valves(BaseModel):
+ API_KEY: str = Field(default="", description="Global API Key")
+
+ class UserValves(BaseModel):
+ API_KEY: str = Field(default="", description="User Private API Key")
+
+ def inlet(self, body, __user__):
+ # Prioritize user's Key
+ user_valves = __user__.get("valves", self.UserValves())
+ api_key = user_valves.API_KEY or self.valves.API_KEY
+```
+
+---
+
+## 3. Deep Dive into Plugin Types
+
+### 3.1 Action
+
+**Role**: Adds buttons below messages that trigger upon user click.
+
+#### Advanced Usage: Execute JavaScript on Frontend
+
+```python
+import base64
+
+async def action(self, body, __event_call__):
+ # 1. Generate content on backend
+ content = "Hello OpenWebUI".encode()
+ b64 = base64.b64encode(content).decode()
+
+ # 2. Send JS to frontend for execution
+ js = f"""
+ const blob = new Blob([atob('{b64}')], {{type: 'text/plain'}});
+ const a = document.createElement('a');
+ a.href = URL.createObjectURL(blob);
+ a.download = 'hello.txt';
+ a.click();
+ """
+ await __event_call__({"type": "execute", "data": {"code": js}})
+```
+
+### 3.2 Filter
+
+**Role**: Middleware that intercepts and modifies requests/responses.
+
+- **`inlet`**: Before request. Used for injecting context, modifying model parameters
+- **`outlet`**: After response. Used for formatting output, logging
+- **`stream`**: During streaming. Used for real-time sensitive word filtering
+
+#### Example: Injecting Environment Variables
+
+```python
+async def inlet(self, body, __metadata__):
+ vars = __metadata__.get("variables", {})
+ context = f"Current Time: {vars.get('{{CURRENT_DATETIME}}')}"
+
+ # Inject into System Prompt or first message
+ if body.get("messages"):
+ body["messages"][0]["content"] += f"\n\n{context}"
+ return body
+```
+
+### 3.3 Pipe
+
+**Role**: Custom Model/Agent.
+
+#### Example: Simple OpenAI Wrapper
+
+```python
+import requests
+
+class Pipe:
+ def pipes(self):
+ return [{"id": "my-gpt", "name": "My GPT Wrapper"}]
+
+ def pipe(self, body):
+ # Modify body here, e.g., force add prompt
+ headers = {"Authorization": f"Bearer {self.valves.API_KEY}"}
+ r = requests.post(
+ "https://api.openai.com/v1/chat/completions",
+ json=body,
+ headers=headers,
+ stream=True
+ )
+ return r.iter_lines()
+```
+
+---
+
+## 4. Advanced Development Patterns
+
+### 4.1 Pipe & Filter Collaboration
+
+Use `__request__.app.state` to share data between plugins:
+
+- **Pipe**: `__request__.app.state.search_results = [...]`
+- **Filter (Outlet)**: Read `search_results` and format them as citation links
+
+### 4.2 Async Background Tasks
+
+Execute time-consuming operations without blocking the user response:
+
+```python
+import asyncio
+
+async def outlet(self, body, __metadata__):
+ asyncio.create_task(self.background_job(__metadata__["chat_id"]))
+ return body
+
+async def background_job(self, chat_id):
+ # Execute time-consuming operation...
+ pass
+```
+
+### 4.3 Calling Built-in LLM
+
+```python
+from open_webui.utils.chat import generate_chat_completion
+from open_webui.models.users import Users
+
+# Get user object
+user_obj = Users.get_user_by_id(user_id)
+
+# Build LLM request
+llm_payload = {
+ "model": "model-id",
+ "messages": [
+ {"role": "system", "content": "System prompt"},
+ {"role": "user", "content": "User input"}
+ ],
+ "temperature": 0.7,
+ "stream": False
+}
+
+# Call LLM
+llm_response = await generate_chat_completion(
+ __request__, llm_payload, user_obj
+)
+```
+
+---
+
+## 5. Best Practices & Design Principles
+
+### 5.1 Naming & Positioning
+
+- **Short & Punchy**: e.g., "FlashCard", "DeepRead". Avoid generic terms like "Text Analysis Assistant"
+- **Complementary**: Don't reinvent the wheel; clarify what specific problem your plugin solves
+
+### 5.2 User Experience (UX)
+
+- **Timely Feedback**: Send a `notification` ("Generating...") before time-consuming operations
+- **Visual Appeal**: When Action outputs HTML, use modern CSS (rounded corners, shadows, gradients)
+- **Smart Guidance**: If text is too short, prompt the user: "Suggest entering more content for better results"
+
+### 5.3 Error Handling
+
+!!! danger "Never fail silently"
+ Always catch exceptions and inform the user via `__event_emitter__`.
+
+```python
+try:
+ # Business logic
+ pass
+except Exception as e:
+ await __event_emitter__({
+ "type": "notification",
+ "data": {"type": "error", "content": f"Processing failed: {str(e)}"}
+ })
+```
+
+---
+
+## 6. Troubleshooting
+
+??? question "HTML not showing?"
+ Ensure it's wrapped in a ` ```html ... ``` ` code block.
+
+??? question "Database error?"
+ Check if you called synchronous DB methods directly in an `async` function; use `asyncio.to_thread`.
+
+??? question "Parameters not working?"
+ Check if `Valves` are defined correctly and if they are being overridden by `UserValves`.
+
+??? question "Plugin not loading?"
+ - Check for syntax errors in the Python file
+ - Verify the metadata docstring is correctly formatted
+ - Check OpenWebUI logs for error messages
+
+---
+
+## Additional Resources
+
+- [:fontawesome-brands-github: Plugin Examples](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins)
+- [:material-book-open-variant: OpenWebUI Official Docs](https://docs.openwebui.com/)
+- [:material-forum: Community Discussions](https://github.com/open-webui/open-webui/discussions)
diff --git a/docs/enhancements/guide.md b/docs/enhancements/guide.md
new file mode 100644
index 0000000..f6cd3cb
--- /dev/null
+++ b/docs/enhancements/guide.md
@@ -0,0 +1,178 @@
+# OpenWebUI Enhancement Guide
+
+A comprehensive guide to optimizing and customizing your OpenWebUI experience.
+
+---
+
+## Performance Optimization
+
+### Context Management
+
+Managing context effectively can significantly improve response quality and reduce costs.
+
+!!! tip "Use Context Compression"
+ Install the [Async Context Compression](../plugins/filters/async-context-compression.md) filter to automatically manage long conversations.
+
+#### Best Practices
+
+1. **Clear Old Conversations**: Archive or delete old chats to keep your interface clean
+2. **Use Focused Conversations**: Start new chats for new topics
+3. **Leverage System Prompts**: Set clear boundaries and focus areas
+4. **Monitor Token Usage**: Keep track of context length
+
+### Model Selection
+
+Choose the right model for your task:
+
+| Task Type | Recommended Approach |
+|-----------|---------------------|
+| Quick questions | Smaller, faster models |
+| Complex analysis | Larger, more capable models |
+| Creative writing | Models with high temperature |
+| Code generation | Code-specialized models |
+
+---
+
+## Customization Tips
+
+### Keyboard Shortcuts
+
+Common keyboard shortcuts to speed up your workflow:
+
+| Shortcut | Action |
+|----------|--------|
+| `Enter` | Send message |
+| `Shift + Enter` | New line |
+| `â` | Edit last message |
+| `Ctrl + /` | Toggle sidebar |
+
+### Interface Customization
+
+1. **Dark/Light Mode**: Use the theme toggle in the top navigation
+2. **Sidebar Organization**: Pin frequently used chats
+3. **Model Favorites**: Star your most-used models
+
+### System Prompt Templates
+
+Create reusable system prompts for common scenarios:
+
+```text
+# Template: Technical Assistant
+You are a technical assistant specializing in [DOMAIN].
+Focus on providing accurate, actionable information.
+When unsure, acknowledge limitations and suggest resources.
+```
+
+---
+
+## Workflow Optimization
+
+### For Developers
+
+1. **Code Review Pipeline**
+ - Use coding prompts for initial review
+ - Apply filters for consistent formatting
+ - Export to Excel for tracking
+
+2. **Documentation Generation**
+ - Start with the Document Formatter prompt
+ - Use Summary action for key points
+ - Export structured content
+
+### For Content Creators
+
+1. **Content Production**
+ - Use Marketing prompts for ideation
+ - Iterate with feedback
+ - Export final versions
+
+2. **Research Workflows**
+ - Use multiple models for diverse perspectives
+ - Leverage Mind Map for visualization
+ - Create Knowledge Cards for key concepts
+
+### For Learners
+
+1. **Study Sessions**
+ - Use Code Explainer for technical topics
+ - Generate Knowledge Cards for memorization
+ - Create Mind Maps for complex subjects
+
+---
+
+## Plugin Combinations
+
+### Recommended Stacks
+
+=== "Developer Stack"
+ - **Filter**: Context Enhancement
+ - **Action**: Export to Excel
+ - **Prompt**: Senior Developer Assistant
+
+=== "Researcher Stack"
+ - **Filter**: Async Context Compression
+ - **Action**: Smart Mind Map
+ - **Pipeline**: MoE Prompt Refiner
+
+=== "Student Stack"
+ - **Action**: Knowledge Card
+ - **Action**: Smart Mind Map
+ - **Prompt**: Code Explainer
+
+---
+
+## Advanced Configuration
+
+### Custom Valves
+
+Many plugins support Valves (configuration options). Access them through:
+
+1. **Admin Panel** â **Settings** â **Functions**
+2. Click on the plugin
+3. Modify Valve settings
+4. Save changes
+
+### User Overrides
+
+Some plugins support UserValves that allow individual users to override global settings:
+
+```python
+class UserValves(BaseModel):
+ custom_setting: str = Field(
+ default="",
+ description="User-specific configuration"
+ )
+```
+
+---
+
+## Troubleshooting
+
+### Common Issues
+
+??? question "Plugin not working after update?"
+ Try disabling and re-enabling the plugin, or re-upload the latest version.
+
+??? question "Responses are too slow?"
+ - Check your internet connection
+ - Try a smaller model
+ - Enable streaming if not already enabled
+
+??? question "Context seems lost?"
+ - Check if context compression is removing too much
+ - Adjust `preserve_recent` settings
+ - Start a new conversation for fresh context
+
+### Getting Help
+
+- Check plugin documentation for specific issues
+- Review OpenWebUI official documentation
+- Join the community discussions
+
+---
+
+## Resources
+
+- [:fontawesome-brands-github: OpenWebUI GitHub](https://github.com/open-webui/open-webui)
+- [:material-book-open-variant: Official Documentation](https://docs.openwebui.com/)
+- [:material-forum: Community Forums](https://github.com/open-webui/open-webui/discussions)
diff --git a/docs/enhancements/index.md b/docs/enhancements/index.md
new file mode 100644
index 0000000..a075ff6
--- /dev/null
+++ b/docs/enhancements/index.md
@@ -0,0 +1,59 @@
+# Enhancements
+
+Tips, tricks, and advanced configurations to optimize your OpenWebUI experience.
+
+---
+
+## Enhancement Categories
+
+
+
+- :material-tune:{ .lg .middle } **Optimization Guide**
+
+ ---
+
+ Learn how to optimize OpenWebUI for better performance, customization, and workflows.
+
+ [:octicons-arrow-right-24: View Guide](guide.md)
+
+- :material-puzzle:{ .lg .middle } **Plugin Integration**
+
+ ---
+
+ Best practices for combining multiple plugins effectively.
+
+ [:octicons-arrow-right-24: Browse Plugins](../plugins/index.md)
+
+
+
+---
+
+## Quick Tips
+
+### Performance
+
+- :material-speedometer: Enable caching for frequently used models
+- :material-memory: Optimize context window usage with compression filters
+- :material-lightning-bolt: Use streaming for faster perceived response times
+
+### Customization
+
+- :material-palette: Customize themes and appearance
+- :material-keyboard: Set up keyboard shortcuts
+- :material-cog: Configure default model settings
+
+### Workflow
+
+- :material-robot: Create custom prompts for repeated tasks
+- :material-filter: Use filters for consistent formatting
+- :material-export: Set up export workflows for documentation
+
+---
+
+## Featured Guides
+
+| Guide | Description |
+|-------|-------------|
+| [Complete Optimization Guide](guide.md) | Comprehensive tips for better OpenWebUI usage |
+| [Plugin Development](../development/index.md) | Create your own plugins |
+| [Prompt Engineering](../prompts/library.md) | Master the art of prompting |
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 0000000..97d719d
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,126 @@
+---
+hide:
+ - navigation
+ - toc
+---
+
+# Welcome to OpenWebUI Extras
+
+
+
+
+# ð Supercharge Your OpenWebUI Experience
+
+**OpenWebUI Extras** is a curated collection of plugins, prompts, and enhancements designed to extend the functionality of [OpenWebUI](https://github.com/open-webui/open-webui).
+
+[Get Started :material-arrow-right:](#quick-navigation){ .md-button .md-button--primary }
+[View on GitHub :fontawesome-brands-github:](https://github.com/Fu-Jie/awesome-openwebui){ .md-button }
+
+
+
+
+---
+
+## Quick Navigation
+
+
+
+- :material-puzzle:{ .lg .middle } **Plugin Center**
+
+ ---
+
+ Browse our collection of powerful plugins including Actions, Filters, Pipes, and Pipelines to enhance your AI interactions.
+
+ [:octicons-arrow-right-24: Explore Plugins](plugins/index.md)
+
+- :material-message-text:{ .lg .middle } **Prompt Library**
+
+ ---
+
+ Discover carefully crafted prompts for coding, writing, marketing, and more. Copy and use them instantly.
+
+ [:octicons-arrow-right-24: Browse Prompts](prompts/index.md)
+
+- :material-tools:{ .lg .middle } **Enhancements**
+
+ ---
+
+ Learn tips and tricks to optimize your OpenWebUI experience with advanced configurations and customizations.
+
+ [:octicons-arrow-right-24: View Guides](enhancements/index.md)
+
+- :material-book-open-page-variant:{ .lg .middle } **Development**
+
+ ---
+
+ Comprehensive guides for developing your own plugins, from beginner tutorials to advanced patterns.
+
+ [:octicons-arrow-right-24: Start Developing](development/index.md)
+
+
+
+---
+
+## Featured Plugins
+
+
+
+- :material-brain:{ .lg .middle } **Smart Mind Map**
+
+ ---
+
+ Intelligently analyzes text content and generates interactive mind maps for better visualization.
+
+ [:octicons-arrow-right-24: Learn More](plugins/actions/smart-mind-map.md)
+
+- :material-card-text:{ .lg .middle } **Knowledge Card**
+
+ ---
+
+ Quickly generates beautiful learning memory cards, perfect for studying and quick memorization.
+
+ [:octicons-arrow-right-24: Learn More](plugins/actions/knowledge-card.md)
+
+- :material-compress:{ .lg .middle } **Async Context Compression**
+
+ ---
+
+ Reduces token consumption in long conversations through intelligent summarization while maintaining coherence.
+
+ [:octicons-arrow-right-24: Learn More](plugins/filters/async-context-compression.md)
+
+
+
+---
+
+## Quick Start
+
+### Using Prompts
+
+1. Browse the [Prompt Library](prompts/library.md) and select a prompt
+2. Click the **Copy** button to copy the prompt to your clipboard
+3. In OpenWebUI, click the "Prompt" button above the input box
+4. Paste the content and save
+
+### Using Plugins
+
+1. Browse the [Plugin Center](plugins/index.md) and download the plugin file (`.py`)
+2. Open OpenWebUI **Admin Panel** â **Settings** â **Plugins**
+3. Click the upload button and select the `.py` file
+4. Refresh the page and enable the plugin in your chat settings
+
+---
+
+## Contributing
+
+We welcome contributions! Whether it's a new plugin, a helpful prompt, or documentation improvements.
+
+[:octicons-heart-fill-24:{ .heart } Check out our Contributing Guide](contributing.md){ .md-button }
+
+---
+
+
diff --git a/docs/plugins/actions/export-to-excel.md b/docs/plugins/actions/export-to-excel.md
new file mode 100644
index 0000000..90cc68d
--- /dev/null
+++ b/docs/plugins/actions/export-to-excel.md
@@ -0,0 +1,67 @@
+# Export to Excel
+
+Action
+v1.0.0
+
+Export chat conversations to Excel spreadsheet format for analysis, archiving, and sharing.
+
+---
+
+## Overview
+
+The Export to Excel plugin allows you to download your chat conversations as Excel files. This is useful for:
+
+- Archiving important conversations
+- Analyzing chat data
+- Sharing conversations with colleagues
+- Creating documentation from AI-assisted research
+
+## Features
+
+- :material-file-excel: **Excel Export**: Standard `.xlsx` format
+- :material-table: **Formatted Output**: Clean table structure
+- :material-download: **One-Click Download**: Instant file generation
+- :material-history: **Full History**: Exports complete conversation
+
+---
+
+## Installation
+
+1. Download the plugin file: [`export_to_excel.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/export_to_excel)
+2. Upload to OpenWebUI: **Admin Panel** â **Settings** â **Functions**
+3. Enable the plugin
+
+---
+
+## Usage
+
+1. Have a conversation you want to export
+2. Click the **Export** button in the message action bar
+3. The Excel file will be automatically downloaded
+
+---
+
+## Output Format
+
+The exported Excel file contains:
+
+| Column | Description |
+|--------|-------------|
+| Timestamp | When the message was sent |
+| Role | User or Assistant |
+| Content | The message text |
+| Model | The AI model used (for assistant messages) |
+
+---
+
+## Requirements
+
+!!! note "Prerequisites"
+ - OpenWebUI v0.3.0 or later
+ - No additional Python packages required (uses built-in libraries)
+
+---
+
+## Source Code
+
+[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/export_to_excel){ .md-button }
diff --git a/docs/plugins/actions/index.md b/docs/plugins/actions/index.md
new file mode 100644
index 0000000..b787f71
--- /dev/null
+++ b/docs/plugins/actions/index.md
@@ -0,0 +1,141 @@
+# Action Plugins
+
+Action plugins add custom buttons below messages in the chat interface, allowing you to trigger specific functionalities with a single click.
+
+## What are Actions?
+
+Actions are interactive plugins that:
+
+- :material-gesture-tap: Add buttons to the message action bar
+- :material-export: Generate and export content (mind maps, charts, files)
+- :material-api: Interact with external services and APIs
+- :material-animation-play: Create visualizations and interactive content
+
+---
+
+## Available Action Plugins
+
+
+
+- :material-brain:{ .lg .middle } **Smart Mind Map**
+
+ ---
+
+ Intelligently analyzes text content and generates interactive mind maps with beautiful visualizations.
+
+ **Version:** 0.7.2
+
+ [:octicons-arrow-right-24: Documentation](smart-mind-map.md)
+
+- :material-card-text:{ .lg .middle } **Knowledge Card**
+
+ ---
+
+ Quickly generates beautiful learning memory cards, perfect for studying and memorization.
+
+ **Version:** 0.2.0
+
+ [:octicons-arrow-right-24: Documentation](knowledge-card.md)
+
+- :material-file-excel:{ .lg .middle } **Export to Excel**
+
+ ---
+
+ Export chat conversations to Excel spreadsheet format for analysis and archiving.
+
+ **Version:** 1.0.0
+
+ [:octicons-arrow-right-24: Documentation](export-to-excel.md)
+
+- :material-text-box-search:{ .lg .middle } **Summary**
+
+ ---
+
+ Generate concise summaries of long text content with key points extraction.
+
+ **Version:** 1.0.0
+
+ [:octicons-arrow-right-24: Documentation](summary.md)
+
+
+
+---
+
+## Quick Installation
+
+1. Download the desired plugin `.py` file
+2. Navigate to **Admin Panel** â **Settings** â **Functions**
+3. Upload the file and configure settings
+4. Use the action button in chat messages
+
+---
+
+## Development Template
+
+Want to create your own Action plugin? Use our template:
+
+```python
+"""
+title: My Custom Action
+author: Your Name
+version: 1.0.0
+description: Description of your action plugin
+"""
+
+from pydantic import BaseModel, Field
+from typing import Optional, Dict, Any
+
+class Action:
+ class Valves(BaseModel):
+ # Add your configuration options here
+ show_status: bool = Field(
+ default=True,
+ description="Show status updates during processing"
+ )
+
+ def __init__(self):
+ self.valves = self.Valves()
+
+ async def action(
+ self,
+ body: dict,
+ __user__: Optional[Dict[str, Any]] = None,
+ __event_emitter__: Optional[Any] = None,
+ __request__: Optional[Any] = None,
+ ) -> Optional[dict]:
+ """
+ Main action method triggered when user clicks the action button.
+
+ Args:
+ body: Message body containing conversation data
+ __user__: Current user information
+ __event_emitter__: For sending notifications and status updates
+ __request__: FastAPI request object
+
+ Returns:
+ Modified body dict or None
+ """
+ # Send status update
+ if __event_emitter__ and self.valves.show_status:
+ await __event_emitter__({
+ "type": "status",
+ "data": {"description": "Processing...", "done": False}
+ })
+
+ # Your plugin logic here
+ messages = body.get("messages", [])
+ if messages:
+ last_message = messages[-1].get("content", "")
+ # Process the message...
+
+ # Complete status
+ if __event_emitter__ and self.valves.show_status:
+ await __event_emitter__({
+ "type": "status",
+ "data": {"description": "Done!", "done": True}
+ })
+
+ return body
+```
+
+For more details, check our [Plugin Development Guide](../../development/plugin-guide.md).
diff --git a/docs/plugins/actions/knowledge-card.md b/docs/plugins/actions/knowledge-card.md
new file mode 100644
index 0000000..6f7f9f2
--- /dev/null
+++ b/docs/plugins/actions/knowledge-card.md
@@ -0,0 +1,88 @@
+# Knowledge Card
+
+Action
+v0.2.0
+
+Quickly generates beautiful learning memory cards, perfect for studying and quick memorization.
+
+---
+
+## Overview
+
+The Knowledge Card plugin (also known as Flash Card / éŠčŪ°åĄ) transforms content into visually appealing flashcards that are perfect for learning and memorization. Whether you're studying for exams, learning new concepts, or reviewing key points, this plugin helps you create effective study materials.
+
+## Features
+
+- :material-card-text: **Beautiful Cards**: Modern, clean design for easy reading
+- :material-animation-play: **Interactive**: Flip cards to reveal answers
+- :material-export: **Exportable**: Save cards for offline study
+- :material-palette: **Customizable**: Multiple themes and styles
+- :material-translate: **Multi-language**: Supports various languages
+
+---
+
+## Installation
+
+1. Download the plugin file: [`knowledge_card.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/knowledge-card)
+2. Upload to OpenWebUI: **Admin Panel** â **Settings** â **Functions**
+3. Enable the plugin
+
+---
+
+## Usage
+
+1. Have a conversation about a topic you want to learn
+2. Click the **Flash Card** button in the message action bar
+3. The plugin will analyze the content and generate flashcards
+4. Click on cards to flip and reveal answers
+
+---
+
+## Configuration
+
+| Option | Type | Default | Description |
+|--------|------|---------|-------------|
+| `cards_per_message` | integer | `5` | Maximum cards to generate |
+| `theme` | string | `"modern"` | Visual theme |
+| `show_hints` | boolean | `true` | Include hints on cards |
+
+---
+
+## Example
+
+=== "Question Side"
+ ```
+ âââââââââââââââââââââââââââââââ
+ â â
+ â What is the capital of â
+ â France? â
+ â â
+ â [Click to flip] â
+ âââââââââââââââââââââââââââââââ
+ ```
+
+=== "Answer Side"
+ ```
+ âââââââââââââââââââââââââââââââ
+ â â
+ â Paris â
+ â â
+ â The city of lights, â
+ â located on the Seine â
+ â â
+ âââââââââââââââââââââââââââââââ
+ ```
+
+---
+
+## Requirements
+
+!!! note "Prerequisites"
+ - OpenWebUI v0.3.0 or later
+ - No additional Python packages required
+
+---
+
+## Source Code
+
+[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/knowledge-card){ .md-button }
diff --git a/docs/plugins/actions/smart-mind-map.md b/docs/plugins/actions/smart-mind-map.md
new file mode 100644
index 0000000..87b8439
--- /dev/null
+++ b/docs/plugins/actions/smart-mind-map.md
@@ -0,0 +1,91 @@
+# Smart Mind Map
+
+Action
+v0.7.2
+
+Intelligently analyzes text content and generates interactive mind maps for better visualization and understanding.
+
+---
+
+## Overview
+
+The Smart Mind Map plugin transforms text content into beautiful, interactive mind maps. It uses AI to analyze the structure of your content and creates a hierarchical visualization that makes complex information easier to understand.
+
+## Features
+
+- :material-brain: **AI-Powered Analysis**: Intelligently extracts key concepts and relationships
+- :material-gesture-swipe: **Interactive Navigation**: Zoom, pan, and explore the mind map
+- :material-palette: **Beautiful Styling**: Modern design with customizable colors
+- :material-download: **Export Options**: Save as image or structured data
+- :material-translate: **Multi-language Support**: Works with multiple languages
+
+---
+
+## Installation
+
+1. Download the plugin file: [`smart_mind_map.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/smart-mind-map)
+2. Upload to OpenWebUI: **Admin Panel** â **Settings** â **Functions**
+3. Enable the plugin
+
+---
+
+## Usage
+
+1. Start a conversation and get a response from the AI
+2. Click the **Mind Map** button in the message action bar
+3. Wait for the mind map to generate
+4. Interact with the visualization:
+ - **Zoom**: Scroll to zoom in/out
+ - **Pan**: Click and drag to move around
+ - **Expand/Collapse**: Click nodes to show/hide children
+
+---
+
+## Configuration
+
+| Option | Type | Default | Description |
+|--------|------|---------|-------------|
+| `show_status` | boolean | `true` | Show processing status updates |
+| `max_depth` | integer | `5` | Maximum depth of the mind map |
+| `theme` | string | `"default"` | Color theme for the visualization |
+
+---
+
+## Example Output
+
+The plugin generates an interactive HTML mind map embedded in the chat:
+
+```
+ð Mind Map Generated
+âââ Main Topic
+â âââ Subtopic 1
+â â âââ Detail A
+â â âââ Detail B
+â âââ Subtopic 2
+â âââ Subtopic 3
+âââ Related Concepts
+```
+
+---
+
+## Requirements
+
+!!! note "Prerequisites"
+ - OpenWebUI v0.3.0 or later
+ - No additional Python packages required
+
+---
+
+## Troubleshooting
+
+??? question "Mind map is not displaying?"
+ Ensure your browser supports HTML5 Canvas and JavaScript is enabled.
+
+??? question "Generation takes too long?"
+ For very long texts, the AI analysis may take more time. Consider breaking down the content into smaller sections.
+
+---
+
+## Source Code
+
+[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/smart-mind-map){ .md-button }
diff --git a/docs/plugins/actions/summary.md b/docs/plugins/actions/summary.md
new file mode 100644
index 0000000..9331181
--- /dev/null
+++ b/docs/plugins/actions/summary.md
@@ -0,0 +1,82 @@
+# Summary
+
+Action
+v1.0.0
+
+Generate concise summaries of long text content with key points extraction.
+
+---
+
+## Overview
+
+The Summary plugin helps you quickly understand long pieces of text by generating concise summaries with extracted key points. It's perfect for:
+
+- Summarizing long articles or documents
+- Extracting key points from conversations
+- Creating quick overviews of complex topics
+
+## Features
+
+- :material-text-box-search: **Smart Summarization**: AI-powered content analysis
+- :material-format-list-bulleted: **Key Points**: Extracted important highlights
+- :material-content-copy: **Easy Copy**: One-click copying of summaries
+- :material-tune: **Adjustable Length**: Control summary detail level
+
+---
+
+## Installation
+
+1. Download the plugin file: [`summary.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/summary)
+2. Upload to OpenWebUI: **Admin Panel** â **Settings** â **Functions**
+3. Enable the plugin
+
+---
+
+## Usage
+
+1. Get a long response from the AI or paste long text
+2. Click the **Summary** button in the message action bar
+3. View the generated summary with key points
+
+---
+
+## Configuration
+
+| Option | Type | Default | Description |
+|--------|------|---------|-------------|
+| `summary_length` | string | `"medium"` | Length of summary (short/medium/long) |
+| `include_key_points` | boolean | `true` | Extract and list key points |
+| `language` | string | `"auto"` | Output language |
+
+---
+
+## Example Output
+
+```markdown
+## Summary
+
+This document discusses the implementation of a new feature
+for the application, focusing on user experience improvements
+and performance optimizations.
+
+### Key Points
+
+- â
New user interface design improves accessibility
+- â
Backend optimizations reduce load times by 40%
+- â
Mobile responsiveness enhanced
+- â
Integration with third-party services simplified
+```
+
+---
+
+## Requirements
+
+!!! note "Prerequisites"
+ - OpenWebUI v0.3.0 or later
+ - Uses the active LLM model for summarization
+
+---
+
+## Source Code
+
+[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/actions/summary){ .md-button }
diff --git a/docs/plugins/filters/async-context-compression.md b/docs/plugins/filters/async-context-compression.md
new file mode 100644
index 0000000..cb1b1e8
--- /dev/null
+++ b/docs/plugins/filters/async-context-compression.md
@@ -0,0 +1,122 @@
+# Async Context Compression
+
+Filter
+v1.0.0
+
+Reduces token consumption in long conversations through intelligent summarization while maintaining conversational coherence.
+
+---
+
+## Overview
+
+The Async Context Compression filter helps manage token usage in long conversations by:
+
+- Intelligently summarizing older messages
+- Preserving important context
+- Reducing API costs
+- Maintaining conversation coherence
+
+This is especially useful for:
+
+- Long-running conversations
+- Complex multi-turn discussions
+- Cost optimization
+- Token limit management
+
+## Features
+
+- :material-compress: **Smart Compression**: AI-powered context summarization
+- :material-clock-fast: **Async Processing**: Non-blocking background compression
+- :material-memory: **Context Preservation**: Keeps important information
+- :material-currency-usd-off: **Cost Reduction**: Minimize token usage
+
+---
+
+## Installation
+
+1. Download the plugin file: [`async_context_compression.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/async-context-compression)
+2. Upload to OpenWebUI: **Admin Panel** â **Settings** â **Functions**
+3. Configure compression settings
+4. Enable the filter
+
+---
+
+## How It Works
+
+```mermaid
+graph TD
+ A[Incoming Messages] --> B{Token Count > Threshold?}
+ B -->|No| C[Pass Through]
+ B -->|Yes| D[Summarize Older Messages]
+ D --> E[Preserve Recent Messages]
+ E --> F[Combine Summary + Recent]
+ F --> G[Send to LLM]
+```
+
+---
+
+## Configuration
+
+| Option | Type | Default | Description |
+|--------|------|---------|-------------|
+| `token_threshold` | integer | `4000` | Trigger compression above this token count |
+| `preserve_recent` | integer | `5` | Number of recent messages to keep uncompressed |
+| `summary_model` | string | `"auto"` | Model to use for summarization |
+| `compression_ratio` | float | `0.3` | Target compression ratio |
+
+---
+
+## Example
+
+### Before Compression
+
+```
+[Message 1] User: Tell me about Python...
+[Message 2] AI: Python is a programming language...
+[Message 3] User: What about its history?
+[Message 4] AI: Python was created by Guido...
+[Message 5] User: And its features?
+[Message 6] AI: Python has many features...
+... (many more messages)
+[Message 20] User: Current question
+```
+
+### After Compression
+
+```
+[Summary] Previous conversation covered Python basics,
+history, features, and common use cases...
+
+[Message 18] User: Recent question about decorators
+[Message 19] AI: Decorators in Python are...
+[Message 20] User: Current question
+```
+
+---
+
+## Requirements
+
+!!! note "Prerequisites"
+ - OpenWebUI v0.3.0 or later
+ - Access to an LLM for summarization
+
+!!! tip "Best Practices"
+ - Set appropriate token thresholds based on your model's context window
+ - Preserve more recent messages for technical discussions
+ - Test compression settings in non-critical conversations first
+
+---
+
+## Troubleshooting
+
+??? question "Compression not triggering?"
+ Check if the token count exceeds your configured threshold. Enable debug logging for more details.
+
+??? question "Important context being lost?"
+ Increase the `preserve_recent` setting or lower the compression ratio.
+
+---
+
+## Source Code
+
+[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/async-context-compression){ .md-button }
diff --git a/docs/plugins/filters/context-enhancement.md b/docs/plugins/filters/context-enhancement.md
new file mode 100644
index 0000000..e5dcdee
--- /dev/null
+++ b/docs/plugins/filters/context-enhancement.md
@@ -0,0 +1,51 @@
+# Context Enhancement
+
+Filter
+v1.0.0
+
+Enhances chat context with additional information for improved LLM responses.
+
+---
+
+## Overview
+
+The Context Enhancement filter automatically enriches your conversations with contextual information, making LLM responses more relevant and accurate.
+
+## Features
+
+- :material-text-box-plus: **Auto Enhancement**: Automatically adds relevant context
+- :material-clock: **Time Awareness**: Includes current date/time information
+- :material-account: **User Context**: Incorporates user preferences
+- :material-cog: **Customizable**: Configure what context to include
+
+---
+
+## Installation
+
+1. Download the plugin file: [`context_enhancement_filter.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/context_enhancement_filter)
+2. Upload to OpenWebUI: **Admin Panel** â **Settings** â **Functions**
+3. Configure enhancement options
+4. Enable the filter
+
+---
+
+## Configuration
+
+| Option | Type | Default | Description |
+|--------|------|---------|-------------|
+| `include_datetime` | boolean | `true` | Add current date/time |
+| `include_user_info` | boolean | `true` | Add user name and preferences |
+| `custom_context` | string | `""` | Custom context to always include |
+
+---
+
+## Requirements
+
+!!! note "Prerequisites"
+ - OpenWebUI v0.3.0 or later
+
+---
+
+## Source Code
+
+[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/context_enhancement_filter){ .md-button }
diff --git a/docs/plugins/filters/gemini-manifold-companion.md b/docs/plugins/filters/gemini-manifold-companion.md
new file mode 100644
index 0000000..baaa750
--- /dev/null
+++ b/docs/plugins/filters/gemini-manifold-companion.md
@@ -0,0 +1,54 @@
+# Gemini Manifold Companion
+
+Filter
+v1.0.0
+
+Companion filter for the Gemini Manifold pipe plugin, providing enhanced functionality.
+
+---
+
+## Overview
+
+The Gemini Manifold Companion works alongside the [Gemini Manifold Pipe](../pipes/gemini-manifold.md) to provide additional processing and enhancement for Gemini model integrations.
+
+## Features
+
+- :material-handshake: **Seamless Integration**: Works with Gemini Manifold pipe
+- :material-format-text: **Message Formatting**: Optimizes messages for Gemini
+- :material-shield: **Error Handling**: Graceful handling of API issues
+- :material-tune: **Fine-tuning**: Additional configuration options
+
+---
+
+## Installation
+
+1. First, install the [Gemini Manifold Pipe](../pipes/gemini-manifold.md)
+2. Download the companion filter: [`gemini_manifold_companion.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/gemini_manifold_companion)
+3. Upload to OpenWebUI: **Admin Panel** â **Settings** â **Functions**
+4. Enable the filter
+
+---
+
+## Configuration
+
+| Option | Type | Default | Description |
+|--------|------|---------|-------------|
+| `auto_format` | boolean | `true` | Auto-format messages for Gemini |
+| `handle_errors` | boolean | `true` | Enable error handling |
+
+---
+
+## Requirements
+
+!!! warning "Dependency"
+ This filter requires the **Gemini Manifold Pipe** to be installed and configured.
+
+!!! note "Prerequisites"
+ - OpenWebUI v0.3.0 or later
+ - Gemini Manifold Pipe installed
+
+---
+
+## Source Code
+
+[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/filters/gemini_manifold_companion){ .md-button }
diff --git a/docs/plugins/filters/index.md b/docs/plugins/filters/index.md
new file mode 100644
index 0000000..f56e8a7
--- /dev/null
+++ b/docs/plugins/filters/index.md
@@ -0,0 +1,155 @@
+# Filter Plugins
+
+Filter plugins process and modify messages before they are sent to the LLM or after responses are generated.
+
+## What are Filters?
+
+Filters act as middleware in the message pipeline:
+
+- :material-arrow-right-bold: **Inlet**: Process user messages before they reach the LLM
+- :material-arrow-left-bold: **Outlet**: Process LLM responses before they're displayed
+- :material-stream: **Stream**: Process streaming responses in real-time
+
+---
+
+## Available Filter Plugins
+
+
+
+- :material-compress:{ .lg .middle } **Async Context Compression**
+
+ ---
+
+ Reduces token consumption in long conversations through intelligent summarization while maintaining coherence.
+
+ **Version:** 1.0.0
+
+ [:octicons-arrow-right-24: Documentation](async-context-compression.md)
+
+- :material-text-box-plus:{ .lg .middle } **Context Enhancement**
+
+ ---
+
+ Enhances chat context with additional information for better responses.
+
+ **Version:** 1.0.0
+
+ [:octicons-arrow-right-24: Documentation](context-enhancement.md)
+
+- :material-google:{ .lg .middle } **Gemini Manifold Companion**
+
+ ---
+
+ Companion filter for the Gemini Manifold pipe plugin.
+
+ **Version:** 1.0.0
+
+ [:octicons-arrow-right-24: Documentation](gemini-manifold-companion.md)
+
+
+
+---
+
+## How Filters Work
+
+```mermaid
+graph LR
+ A[User Message] --> B[Inlet Filter]
+ B --> C[LLM]
+ C --> D[Outlet Filter]
+ D --> E[Display to User]
+```
+
+### Inlet Processing
+
+The `inlet` method processes messages before they reach the LLM:
+
+```python
+async def inlet(self, body: dict, __metadata__: dict) -> dict:
+ # Modify the request before sending to LLM
+ messages = body.get("messages", [])
+ # Add context, modify prompts, etc.
+ return body
+```
+
+### Outlet Processing
+
+The `outlet` method processes responses after they're generated:
+
+```python
+async def outlet(self, body: dict, __metadata__: dict) -> dict:
+ # Modify the response before displaying
+ messages = body.get("messages", [])
+ # Format output, add citations, etc.
+ return body
+```
+
+---
+
+## Quick Installation
+
+1. Download the desired filter `.py` file
+2. Navigate to **Admin Panel** â **Settings** â **Functions**
+3. Upload the file and configure settings
+4. Enable the filter in chat settings or globally
+
+---
+
+## Development Template
+
+```python
+"""
+title: My Custom Filter
+author: Your Name
+version: 1.0.0
+description: Description of your filter plugin
+"""
+
+from pydantic import BaseModel, Field
+from typing import Optional
+
+class Filter:
+ class Valves(BaseModel):
+ priority: int = Field(
+ default=0,
+ description="Filter priority (lower = earlier execution)"
+ )
+ enabled: bool = Field(
+ default=True,
+ description="Enable/disable this filter"
+ )
+
+ def __init__(self):
+ self.valves = self.Valves()
+
+ async def inlet(
+ self,
+ body: dict,
+ __user__: Optional[dict] = None,
+ __metadata__: Optional[dict] = None
+ ) -> dict:
+ """Process messages before sending to LLM."""
+ if not self.valves.enabled:
+ return body
+
+ # Your inlet logic here
+ messages = body.get("messages", [])
+
+ return body
+
+ async def outlet(
+ self,
+ body: dict,
+ __user__: Optional[dict] = None,
+ __metadata__: Optional[dict] = None
+ ) -> dict:
+ """Process responses before displaying."""
+ if not self.valves.enabled:
+ return body
+
+ # Your outlet logic here
+
+ return body
+```
+
+For more details, check our [Plugin Development Guide](../../development/plugin-guide.md).
diff --git a/docs/plugins/index.md b/docs/plugins/index.md
new file mode 100644
index 0000000..1d033f5
--- /dev/null
+++ b/docs/plugins/index.md
@@ -0,0 +1,92 @@
+# Plugin Center
+
+Welcome to the OpenWebUI Extras Plugin Center! Here you'll find a comprehensive collection of plugins to enhance your OpenWebUI experience.
+
+## Plugin Types
+
+OpenWebUI supports four types of plugins, each serving a different purpose:
+
+
+
+- :material-gesture-tap:{ .lg .middle } **Actions**
+
+ ---
+
+ Add custom buttons below messages to trigger specific actions like generating mind maps, exporting data, or creating visualizations.
+
+ [:octicons-arrow-right-24: Browse Actions](actions/index.md)
+
+- :material-filter:{ .lg .middle } **Filters**
+
+ ---
+
+ Process and modify messages before they reach the LLM or after responses are generated. Perfect for context enhancement and compression.
+
+ [:octicons-arrow-right-24: Browse Filters](filters/index.md)
+
+- :material-pipe:{ .lg .middle } **Pipes**
+
+ ---
+
+ Create custom model integrations or transform LLM responses. Connect to external APIs or implement custom model logic.
+
+ [:octicons-arrow-right-24: Browse Pipes](pipes/index.md)
+
+- :material-pipe-wrench:{ .lg .middle } **Pipelines**
+
+ ---
+
+ Complex workflows that combine multiple processing steps. Ideal for advanced use cases requiring multi-step transformations.
+
+ [:octicons-arrow-right-24: Browse Pipelines](pipelines/index.md)
+
+
+
+---
+
+## All Plugins at a Glance
+
+| Plugin | Type | Description | Version |
+|--------|------|-------------|---------|
+| [Smart Mind Map](actions/smart-mind-map.md) | Action | Generate interactive mind maps from text | 0.7.2 |
+| [Knowledge Card](actions/knowledge-card.md) | Action | Create beautiful learning flashcards | 0.2.0 |
+| [Export to Excel](actions/export-to-excel.md) | Action | Export chat history to Excel files | 1.0.0 |
+| [Summary](actions/summary.md) | Action | Text summarization tool | 1.0.0 |
+| [Async Context Compression](filters/async-context-compression.md) | Filter | Intelligent context compression | 1.0.0 |
+| [Context Enhancement](filters/context-enhancement.md) | Filter | Enhance chat context | 1.0.0 |
+| [Gemini Manifold Companion](filters/gemini-manifold-companion.md) | Filter | Companion for Gemini Manifold | 1.0.0 |
+| [Gemini Manifold](pipes/gemini-manifold.md) | Pipe | Gemini model integration | 1.0.0 |
+| [MoE Prompt Refiner](pipelines/moe-prompt-refiner.md) | Pipeline | Multi-model prompt refinement | 1.0.0 |
+
+---
+
+## Installation Guide
+
+### Step 1: Download the Plugin
+
+Click on any plugin above to view its documentation and download the `.py` file.
+
+### Step 2: Upload to OpenWebUI
+
+1. Open OpenWebUI and navigate to **Admin Panel** â **Settings** â **Functions**
+2. Click the **+** button to add a new function
+3. Upload the downloaded `.py` file
+4. Configure any required settings (API keys, options, etc.)
+
+### Step 3: Enable and Use
+
+1. Refresh the page after uploading
+2. For **Actions**: Look for the plugin button in the message action bar
+3. For **Filters**: Enable in your chat settings or globally
+4. For **Pipes**: Select the custom model from the model dropdown
+5. For **Pipelines**: Configure and activate in the pipeline settings
+
+---
+
+## Plugin Compatibility
+
+!!! info "OpenWebUI Version"
+ Most plugins in this collection are designed for OpenWebUI **v0.3.0** and later. Please check individual plugin documentation for specific version requirements.
+
+!!! warning "Dependencies"
+ Some plugins may require additional Python packages. Check each plugin's documentation for required dependencies.
diff --git a/docs/plugins/pipelines/index.md b/docs/plugins/pipelines/index.md
new file mode 100644
index 0000000..ed89c81
--- /dev/null
+++ b/docs/plugins/pipelines/index.md
@@ -0,0 +1,63 @@
+# Pipeline Plugins
+
+Pipelines are complex workflows that combine multiple processing steps for advanced use cases.
+
+## What are Pipelines?
+
+Pipelines extend beyond simple transformations to implement:
+
+- :material-workflow: Multi-step processing workflows
+- :material-source-merge: Model orchestration
+- :material-robot-industrial: Advanced agent behaviors
+- :material-cog-box: Complex business logic
+
+---
+
+## Available Pipeline Plugins
+
+
+
+- :material-view-module:{ .lg .middle } **MoE Prompt Refiner**
+
+ ---
+
+ Refines prompts for Mixture of Experts (MoE) summary requests to generate high-quality comprehensive reports.
+
+ **Version:** 1.0.0
+
+ [:octicons-arrow-right-24: Documentation](moe-prompt-refiner.md)
+
+
+
+---
+
+## How Pipelines Differ
+
+| Feature | Filters | Pipes | Pipelines |
+|---------|---------|-------|-----------|
+| Complexity | Simple | Medium | High |
+| Use Case | Message processing | Model integration | Multi-step workflows |
+| Execution | Before/after LLM | As LLM | Custom orchestration |
+| Dependencies | Minimal | API access | Often multiple services |
+
+---
+
+## Quick Installation
+
+1. Download the pipeline `.py` file
+2. Navigate to **Admin Panel** â **Settings** â **Functions**
+3. Upload and configure required services
+4. Enable the pipeline
+
+---
+
+## Development Considerations
+
+Pipelines often require:
+
+- Multiple API integrations
+- State management across steps
+- Error handling at each stage
+- Performance optimization
+
+See the [Plugin Development Guide](../../development/plugin-guide.md) for detailed guidance.
diff --git a/docs/plugins/pipelines/moe-prompt-refiner.md b/docs/plugins/pipelines/moe-prompt-refiner.md
new file mode 100644
index 0000000..b30f06c
--- /dev/null
+++ b/docs/plugins/pipelines/moe-prompt-refiner.md
@@ -0,0 +1,109 @@
+# MoE Prompt Refiner
+
+Pipeline
+v1.0.0
+
+Refines prompts for Mixture of Experts (MoE) summary requests to generate high-quality comprehensive reports.
+
+---
+
+## Overview
+
+The MoE Prompt Refiner is an advanced pipeline that optimizes prompts before sending them to multiple expert models, then synthesizes the responses into comprehensive, high-quality reports.
+
+## Features
+
+- :material-view-module: **Multi-Model**: Leverages multiple AI models
+- :material-text-search: **Prompt Optimization**: Refines prompts for best results
+- :material-merge: **Response Synthesis**: Combines expert responses
+- :material-file-document: **Report Generation**: Creates structured reports
+
+---
+
+## Installation
+
+1. Download the pipeline file: [`moe_prompt_refiner.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/pipelines)
+2. Upload to OpenWebUI: **Admin Panel** â **Settings** â **Functions**
+3. Configure expert models and settings
+4. Enable the pipeline
+
+---
+
+## How It Works
+
+```mermaid
+graph TD
+ A[User Prompt] --> B[Prompt Refiner]
+ B --> C[Expert Model 1]
+ B --> D[Expert Model 2]
+ B --> E[Expert Model N]
+ C --> F[Response Synthesizer]
+ D --> F
+ E --> F
+ F --> G[Comprehensive Report]
+```
+
+---
+
+## Configuration
+
+| Option | Type | Default | Description |
+|--------|------|---------|-------------|
+| `expert_models` | list | `[]` | List of models to consult |
+| `synthesis_model` | string | `"auto"` | Model for synthesizing responses |
+| `report_format` | string | `"markdown"` | Output format |
+
+---
+
+## Use Cases
+
+- **Research Reports**: Gather insights from multiple AI perspectives
+- **Comprehensive Analysis**: Multi-faceted problem analysis
+- **Decision Support**: Balanced recommendations from diverse models
+- **Content Creation**: Rich, multi-perspective content
+
+---
+
+## Example
+
+**Input Prompt:**
+```
+Analyze the pros and cons of microservices architecture
+```
+
+**Output Report:**
+```markdown
+# Microservices Architecture Analysis
+
+## Executive Summary
+Based on analysis from multiple expert perspectives...
+
+## Advantages
+1. **Scalability** (Expert A)...
+2. **Technology Flexibility** (Expert B)...
+
+## Disadvantages
+1. **Complexity** (Expert A)...
+2. **Distributed System Challenges** (Expert C)...
+
+## Recommendations
+Synthesized recommendations based on expert consensus...
+```
+
+---
+
+## Requirements
+
+!!! note "Prerequisites"
+ - OpenWebUI v0.3.0 or later
+ - Access to multiple LLM models
+ - Sufficient API quotas for multi-model queries
+
+!!! warning "Resource Usage"
+ This pipeline makes multiple API calls per request. Monitor your usage and costs.
+
+---
+
+## Source Code
+
+[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/pipelines){ .md-button }
diff --git a/docs/plugins/pipes/gemini-manifold.md b/docs/plugins/pipes/gemini-manifold.md
new file mode 100644
index 0000000..2d354a5
--- /dev/null
+++ b/docs/plugins/pipes/gemini-manifold.md
@@ -0,0 +1,106 @@
+# Gemini Manifold
+
+Pipe
+v1.0.0
+
+Integration pipeline for Google's Gemini models with full streaming support.
+
+---
+
+## Overview
+
+The Gemini Manifold pipe provides seamless integration with Google's Gemini AI models. It exposes Gemini models as selectable options in OpenWebUI, allowing you to use them just like any other model.
+
+## Features
+
+- :material-google: **Full Gemini Support**: Access all Gemini model variants
+- :material-stream: **Streaming**: Real-time response streaming
+- :material-image: **Multimodal**: Support for images and text
+- :material-shield: **Error Handling**: Robust error management
+- :material-tune: **Configurable**: Customize model parameters
+
+---
+
+## Installation
+
+1. Download the plugin file: [`gemini_manifold.py`](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/pipes/gemini_mainfold)
+2. Upload to OpenWebUI: **Admin Panel** â **Settings** â **Functions**
+3. Configure your Gemini API key
+4. Select Gemini models from the model dropdown
+
+---
+
+## Configuration
+
+| Option | Type | Required | Description |
+|--------|------|----------|-------------|
+| `GEMINI_API_KEY` | string | Yes | Your Google AI Studio API key |
+| `DEFAULT_MODEL` | string | No | Default Gemini model to use |
+| `TEMPERATURE` | float | No | Response temperature (0-1) |
+| `MAX_TOKENS` | integer | No | Maximum response tokens |
+
+---
+
+## Available Models
+
+When configured, the following models become available:
+
+- `gemini-pro` - Text-only model
+- `gemini-pro-vision` - Multimodal model
+- `gemini-1.5-pro` - Latest Pro model
+- `gemini-1.5-flash` - Fast response model
+
+---
+
+## Usage
+
+1. After installation, go to any chat
+2. Open the model selector dropdown
+3. Look for models prefixed with your pipe name
+4. Select a Gemini model
+5. Start chatting!
+
+---
+
+## Getting an API Key
+
+1. Visit [Google AI Studio](https://makersuite.google.com/app/apikey)
+2. Create a new API key
+3. Copy the key and paste it in the plugin configuration
+
+!!! warning "API Key Security"
+ Keep your API key secure. Never share it publicly or commit it to version control.
+
+---
+
+## Companion Filter
+
+For enhanced functionality, consider installing the [Gemini Manifold Companion](../filters/gemini-manifold-companion.md) filter.
+
+---
+
+## Requirements
+
+!!! note "Prerequisites"
+ - OpenWebUI v0.3.0 or later
+ - Valid Gemini API key
+ - Internet access to Google AI APIs
+
+---
+
+## Troubleshooting
+
+??? question "Models not appearing?"
+ Ensure your API key is correctly configured and the plugin is enabled.
+
+??? question "API errors?"
+ Check your API key validity and quota limits in Google AI Studio.
+
+??? question "Slow responses?"
+ Consider using `gemini-1.5-flash` for faster response times.
+
+---
+
+## Source Code
+
+[:fontawesome-brands-github: View on GitHub](https://github.com/Fu-Jie/awesome-openwebui/tree/main/plugins/pipes/gemini_mainfold){ .md-button }
diff --git a/docs/plugins/pipes/index.md b/docs/plugins/pipes/index.md
new file mode 100644
index 0000000..4596567
--- /dev/null
+++ b/docs/plugins/pipes/index.md
@@ -0,0 +1,133 @@
+# Pipe Plugins
+
+Pipe plugins create custom model integrations or transform LLM responses. They appear as selectable models in the OpenWebUI interface.
+
+## What are Pipes?
+
+Pipes allow you to:
+
+- :material-api: Connect to external AI APIs (Gemini, Claude, etc.)
+- :material-robot: Create custom model wrappers
+- :material-cog-transfer: Transform requests and responses
+- :material-middleware: Implement middleware logic
+
+---
+
+## Available Pipe Plugins
+
+
+
+- :material-google:{ .lg .middle } **Gemini Manifold**
+
+ ---
+
+ Integration pipeline for Google's Gemini models with full streaming support.
+
+ **Version:** 1.0.0
+
+ [:octicons-arrow-right-24: Documentation](gemini-manifold.md)
+
+
+
+---
+
+## How Pipes Work
+
+```mermaid
+graph LR
+ A[User selects Pipe as Model] --> B[Pipe receives request]
+ B --> C[Transform/Route request]
+ C --> D[External API / Custom Logic]
+ D --> E[Return response]
+ E --> F[Display to User]
+```
+
+### The `pipes` Method
+
+Defines what models this pipe provides:
+
+```python
+def pipes(self):
+ return [
+ {"id": "my-model", "name": "My Custom Model"},
+ {"id": "my-model-fast", "name": "My Custom Model (Fast)"}
+ ]
+```
+
+### The `pipe` Method
+
+Handles the actual request processing:
+
+```python
+def pipe(self, body: dict) -> Generator:
+ # Process the request
+ messages = body.get("messages", [])
+
+ # Call external API or custom logic
+ response = call_external_api(messages)
+
+ # Return response (can be streaming)
+ return response
+```
+
+---
+
+## Quick Installation
+
+1. Download the desired pipe `.py` file
+2. Navigate to **Admin Panel** â **Settings** â **Functions**
+3. Upload the file and configure API keys
+4. The pipe will appear as a selectable model
+
+---
+
+## Development Template
+
+```python
+"""
+title: My Custom Pipe
+author: Your Name
+version: 1.0.0
+description: Description of your pipe plugin
+"""
+
+from pydantic import BaseModel, Field
+from typing import Generator, Iterator, Union
+
+class Pipe:
+ class Valves(BaseModel):
+ API_KEY: str = Field(
+ default="",
+ description="API key for the external service"
+ )
+ API_URL: str = Field(
+ default="https://api.example.com",
+ description="API endpoint URL"
+ )
+
+ def __init__(self):
+ self.valves = self.Valves()
+
+ def pipes(self) -> list[dict]:
+ """Define available models."""
+ return [
+ {"id": "my-model", "name": "My Custom Model"},
+ ]
+
+ def pipe(
+ self,
+ body: dict
+ ) -> Union[str, Generator, Iterator]:
+ """Process the request and return response."""
+ messages = body.get("messages", [])
+ model = body.get("model", "")
+
+ # Your logic here
+ # Can return:
+ # - str: Single response
+ # - Generator/Iterator: Streaming response
+
+ return "Response from custom pipe"
+```
+
+For more details, check our [Plugin Development Guide](../../development/plugin-guide.md).
diff --git a/docs/prompts/index.md b/docs/prompts/index.md
new file mode 100644
index 0000000..636e83c
--- /dev/null
+++ b/docs/prompts/index.md
@@ -0,0 +1,102 @@
+# Prompts
+
+Discover carefully crafted system prompts to enhance your AI interactions.
+
+---
+
+## What are Prompts?
+
+Prompts are pre-written instructions that guide AI behavior. A well-crafted prompt can:
+
+- :material-target: Focus the AI on specific tasks
+- :material-format-quote-close: Set the desired tone and style
+- :material-school: Establish expertise and knowledge boundaries
+- :material-shield-check: Add safety and quality guidelines
+
+---
+
+## Browse the Library
+
+
+
+- :material-library:{ .lg .middle } **Full Prompt Library**
+
+ ---
+
+ Browse all available prompts organized by category with one-click copy functionality.
+
+ [:octicons-arrow-right-24: Open Library](library.md)
+
+
+
+---
+
+## Quick Access by Category
+
+### :material-code-braces: Coding & Development
+
+Perfect for programming assistance, code review, and debugging.
+
+- [Senior Developer Assistant](library.md#senior-developer-assistant)
+- [Code Debugger](library.md#code-debugger)
+- [Code Explainer](library.md#code-explainer)
+
+### :material-bullhorn: Marketing & Content
+
+For content creation, copywriting, and marketing strategies.
+
+- [Content Writer](library.md#content-writer)
+- [Marketing Strategist](library.md#marketing-strategist)
+
+### :material-file-document: Writing & Editing
+
+Academic writing, paper polishing, and document editing.
+
+- [Academic Paper Polisher](library.md#academic-paper-polisher)
+- [Document Formatter](library.md#document-formatter)
+
+### :material-theater: Role Play & Creative
+
+Creative scenarios, storytelling, and interactive experiences.
+
+- [Character Role Player](library.md#character-role-player)
+- [Story Collaborator](library.md#story-collaborator)
+
+---
+
+## How to Use
+
+### Method 1: System Prompt
+
+1. Copy the prompt from the [Library](library.md)
+2. Go to OpenWebUI **Settings** â **Personalization**
+3. Paste in the **System Prompt** field
+4. Save and start a new conversation
+
+### Method 2: In-Chat Prompt
+
+1. Copy the prompt from the [Library](library.md)
+2. In any conversation, click the **Prompt** button
+3. Paste and save as a reusable prompt
+4. Select it from your saved prompts anytime
+
+---
+
+## Best Practices
+
+!!! tip "Customization"
+ Feel free to modify prompts to better fit your specific needs. Add context, adjust tone, or combine multiple prompts.
+
+!!! tip "Iteration"
+ If the AI's response isn't quite right, refine the prompt and try again. Small changes can have big impacts.
+
+!!! tip "Specificity"
+ The more specific your prompt, the better the results. Include examples, constraints, and desired output formats.
+
+---
+
+## Contribute
+
+Have a great prompt? Share it with the community!
+
+[:octicons-heart-fill-24:{ .heart } Submit a Prompt](../contributing.md){ .md-button }
diff --git a/docs/prompts/library.md b/docs/prompts/library.md
new file mode 100644
index 0000000..c186afc
--- /dev/null
+++ b/docs/prompts/library.md
@@ -0,0 +1,344 @@
+# Prompt Library
+
+Welcome to the OpenWebUI Extras Prompt Library! Find carefully crafted prompts for various use cases.
+
+---
+
+## Browse by Category
+
+
+
+- :material-code-braces:{ .lg .middle } **Coding & Development**
+
+ ---
+
+ Programming assistance, code review, debugging, and development best practices.
+
+ [:octicons-arrow-right-24: Browse Coding Prompts](#coding-development)
+
+- :material-bullhorn:{ .lg .middle } **Marketing & Content**
+
+ ---
+
+ Content creation, copywriting, brand messaging, and marketing strategies.
+
+ [:octicons-arrow-right-24: Browse Marketing Prompts](#marketing-content)
+
+- :material-file-document:{ .lg .middle } **Writing & Editing**
+
+ ---
+
+ Academic writing, paper polishing, grammar checking, and document editing.
+
+ [:octicons-arrow-right-24: Browse Writing Prompts](#writing-editing)
+
+- :material-theater:{ .lg .middle } **Role Play & Creative**
+
+ ---
+
+ Character roles, creative scenarios, and interactive storytelling.
+
+ [:octicons-arrow-right-24: Browse Creative Prompts](#role-play-creative)
+
+
+
+---
+
+## How to Use Prompts
+
+1. Find a prompt below that matches your needs
+2. Click the **Copy** button on the code block
+3. In OpenWebUI, click the "Prompt" button or paste as a System Prompt
+4. Customize the prompt if needed
+5. Start your conversation!
+
+---
+
+## Coding & Development { #coding-development }
+
+### ð§ Senior Developer Assistant
+
+An expert programming assistant that provides clean, well-documented code.
+
+```text
+You are an expert senior software developer with extensive experience across multiple programming languages and frameworks. Your role is to:
+
+1. Write clean, efficient, and well-documented code
+2. Follow best practices and design patterns
+3. Provide clear explanations for complex concepts
+4. Suggest improvements and optimizations
+5. Consider edge cases and error handling
+
+When writing code:
+- Use meaningful variable and function names
+- Include comments for complex logic
+- Follow the language's style guidelines
+- Provide usage examples when appropriate
+
+When reviewing code:
+- Identify potential bugs and security issues
+- Suggest performance improvements
+- Check for code maintainability
+- Recommend refactoring when beneficial
+
+Always explain your reasoning and be ready to iterate based on feedback.
+```
+
+---
+
+### ð Code Debugger
+
+A systematic approach to debugging code issues.
+
+```text
+You are an expert code debugger. When presented with code that has issues:
+
+1. **Analyze**: First, read through the code carefully to understand its purpose
+2. **Identify**: Locate potential bugs, errors, or issues
+3. **Explain**: Clearly describe what's wrong and why it's problematic
+4. **Fix**: Provide the corrected code with explanations
+5. **Prevent**: Suggest best practices to avoid similar issues
+
+Debug approach:
+- Check for syntax errors first
+- Verify logic flow and conditions
+- Look for edge cases and boundary conditions
+- Examine variable scope and lifecycle
+- Consider thread safety if applicable
+- Check error handling completeness
+
+Format your response:
+- ðī **Issue Found**: Description of the problem
+- ð **Root Cause**: Why this happened
+- â
**Solution**: Fixed code with explanation
+- ðĄ **Prevention**: Tips to avoid this in future
+```
+
+---
+
+### ð Code Explainer
+
+Break down complex code into understandable explanations.
+
+```text
+You are a patient and thorough code educator. When explaining code:
+
+1. Start with a high-level overview of what the code does
+2. Break down the code into logical sections
+3. Explain each section step by step
+4. Use analogies and real-world examples when helpful
+5. Highlight important patterns or techniques used
+6. Point out any clever tricks or non-obvious behavior
+
+Adjust your explanation based on:
+- The apparent complexity of the code
+- The user's indicated experience level
+- The programming language conventions
+
+Always encourage questions and provide additional resources when appropriate.
+```
+
+---
+
+## Marketing & Content { #marketing-content }
+
+### ð Content Writer
+
+Create engaging content for various platforms and purposes.
+
+```text
+You are an experienced content writer and marketing specialist. Your role is to create compelling, engaging content tailored to specific audiences and platforms.
+
+When creating content:
+1. **Understand the Goal**: Clarify the purpose (inform, persuade, entertain)
+2. **Know the Audience**: Consider demographics, interests, pain points
+3. **Match the Platform**: Adapt tone and format for the medium
+4. **Hook the Reader**: Start with compelling openings
+5. **Deliver Value**: Provide useful, actionable information
+6. **Call to Action**: Guide readers to the next step
+
+Writing principles:
+- Use clear, concise language
+- Break up text for readability
+- Include relevant examples
+- Optimize for SEO when appropriate
+- Maintain brand voice consistency
+
+Available formats:
+- Blog posts and articles
+- Social media content
+- Email campaigns
+- Product descriptions
+- Landing page copy
+- Press releases
+```
+
+---
+
+### ðŊ Marketing Strategist
+
+Develop comprehensive marketing strategies and campaigns.
+
+```text
+You are a strategic marketing consultant with expertise in digital marketing, brand development, and campaign optimization.
+
+Your approach:
+1. **Analysis**: Understand the business, market, and competition
+2. **Goals**: Define clear, measurable objectives
+3. **Strategy**: Develop a comprehensive plan
+4. **Tactics**: Recommend specific actions and channels
+5. **Metrics**: Identify KPIs and measurement methods
+
+Areas of expertise:
+- Digital marketing (SEO, SEM, Social Media)
+- Content marketing and strategy
+- Brand positioning and messaging
+- Customer journey mapping
+- Marketing automation
+- Analytics and optimization
+
+When providing advice:
+- Base recommendations on data and best practices
+- Consider budget constraints
+- Prioritize high-impact activities
+- Provide actionable next steps
+- Include success metrics
+```
+
+---
+
+## Writing & Editing { #writing-editing }
+
+### âïļ Academic Paper Polisher
+
+Improve academic writing for clarity, style, and impact.
+
+```text
+You are an expert academic editor specializing in research paper improvement. Your role is to enhance academic writing while maintaining the author's voice and intent.
+
+Editing focus areas:
+1. **Clarity**: Simplify complex sentences without losing meaning
+2. **Conciseness**: Remove redundancy and wordiness
+3. **Flow**: Improve transitions and logical progression
+4. **Grammar**: Correct errors and improve syntax
+5. **Style**: Ensure consistency and appropriate academic tone
+
+Specific improvements:
+- Active voice where appropriate
+- Precise word choice
+- Parallel structure
+- Clear topic sentences
+- Effective paragraph organization
+- Proper citation integration
+
+Format your feedback:
+- Provide the edited text
+- Highlight major changes with explanations
+- Suggest alternatives when appropriate
+- Maintain the original meaning and intent
+```
+
+---
+
+### ð Document Formatter
+
+Professional document formatting and structure.
+
+```text
+You are a professional document specialist. Help users create well-structured, properly formatted documents.
+
+Services:
+1. **Structure**: Organize content logically
+2. **Format**: Apply consistent formatting
+3. **Style**: Ensure professional appearance
+4. **Templates**: Provide document templates
+5. **Standards**: Follow industry conventions
+
+Document types:
+- Business reports
+- Technical documentation
+- Proposals and pitches
+- Meeting minutes
+- Standard operating procedures
+- User guides and manuals
+
+When formatting:
+- Use clear headings and hierarchy
+- Include appropriate white space
+- Create scannable bullet points
+- Add tables and visuals when helpful
+- Ensure accessibility
+```
+
+---
+
+## Role Play & Creative { #role-play-creative }
+
+### ð Character Role Player
+
+Engaging interactive role-play experiences.
+
+```text
+You are a skilled role-play facilitator capable of embodying various characters and scenarios.
+
+Guidelines:
+1. **Stay in Character**: Maintain consistent personality and knowledge
+2. **Be Reactive**: Respond naturally to user inputs
+3. **Build the World**: Add relevant details and atmosphere
+4. **Advance the Story**: Keep the narrative moving forward
+5. **Respect Boundaries**: Keep content appropriate
+
+Character elements:
+- Distinct voice and mannerisms
+- Consistent background and motivations
+- Realistic knowledge limitations
+- Emotional depth and reactions
+- Growth and development over time
+
+Scenarios available:
+- Historical figures
+- Fictional characters
+- Professional roles (interview practice)
+- Language practice partners
+- Creative storytelling
+```
+
+---
+
+### ð Story Collaborator
+
+Collaborative creative writing and storytelling.
+
+```text
+You are a creative writing partner and story collaborator. Help users develop and write engaging narratives.
+
+Collaboration modes:
+1. **Co-writing**: Take turns writing story segments
+2. **Brainstorming**: Generate ideas and plot points
+3. **Development**: Flesh out characters and settings
+4. **Editing**: Improve existing creative writing
+5. **Feedback**: Provide constructive critique
+
+Story elements to develop:
+- Compelling characters with depth
+- Engaging plots with tension
+- Vivid settings and world-building
+- Natural dialogue
+- Meaningful themes
+- Satisfying resolutions
+
+When collaborating:
+- Match the user's style and tone
+- Offer suggestions, not dictations
+- Build on their ideas
+- Keep the story consistent
+- Encourage creativity
+```
+
+---
+
+## Submit Your Prompts
+
+Have a great prompt to share? We'd love to include it!
+
+[:octicons-heart-fill-24:{ .heart } Contribute a Prompt](../contributing.md){ .md-button }
diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css
new file mode 100644
index 0000000..cad285b
--- /dev/null
+++ b/docs/stylesheets/extra.css
@@ -0,0 +1,195 @@
+/* Custom styles for OpenWebUI Extras Documentation */
+
+/* Hero Section */
+.hero-section {
+ text-align: center;
+ padding: 2rem 0;
+ margin-bottom: 2rem;
+}
+
+.hero-content h1 {
+ font-size: 2.5rem;
+ margin-bottom: 1rem;
+}
+
+.hero-content p {
+ font-size: 1.2rem;
+ color: var(--md-default-fg-color--light);
+ margin-bottom: 2rem;
+}
+
+/* Button styling */
+.md-button {
+ margin: 0.5rem;
+}
+
+/* Grid cards enhancement */
+.grid.cards > ul > li {
+ transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
+}
+
+.grid.cards > ul > li:hover {
+ transform: translateY(-4px);
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
+}
+
+/* Icon styling in cards */
+.grid.cards .lg {
+ font-size: 2rem;
+}
+
+.grid.cards .middle {
+ vertical-align: middle;
+}
+
+/* Heart icon color */
+.heart {
+ color: #e91e63;
+}
+
+/* Code block enhancements */
+.highlight pre {
+ border-radius: 8px;
+}
+
+/* Admonition styling */
+.admonition {
+ border-radius: 8px;
+}
+
+/* Footer stats */
+.footer-stats {
+ text-align: center;
+ padding: 2rem 0;
+ color: var(--md-default-fg-color--light);
+}
+
+/* Plugin card styling */
+.plugin-card {
+ border: 1px solid var(--md-default-fg-color--lightest);
+ border-radius: 8px;
+ padding: 1.5rem;
+ margin-bottom: 1rem;
+ transition: box-shadow 0.2s ease-in-out;
+}
+
+.plugin-card:hover {
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
+}
+
+.plugin-card h3 {
+ margin-top: 0;
+}
+
+.plugin-meta {
+ display: flex;
+ gap: 1rem;
+ flex-wrap: wrap;
+ margin-top: 0.5rem;
+}
+
+.plugin-meta span {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.25rem;
+ font-size: 0.875rem;
+ color: var(--md-default-fg-color--light);
+}
+
+/* Prompt card styling */
+.prompt-card {
+ background: var(--md-code-bg-color);
+ border-radius: 8px;
+ padding: 1.5rem;
+ margin-bottom: 1.5rem;
+}
+
+.prompt-card h4 {
+ margin-top: 0;
+ color: var(--md-primary-fg-color);
+}
+
+/* Category badges */
+.category-badge {
+ display: inline-block;
+ padding: 0.25rem 0.75rem;
+ border-radius: 999px;
+ font-size: 0.75rem;
+ font-weight: 600;
+ text-transform: uppercase;
+}
+
+.category-badge.action {
+ background: #e3f2fd;
+ color: #1976d2;
+}
+
+.category-badge.filter {
+ background: #f3e5f5;
+ color: #7b1fa2;
+}
+
+.category-badge.pipe {
+ background: #e8f5e9;
+ color: #388e3c;
+}
+
+.category-badge.pipeline {
+ background: #fff3e0;
+ color: #f57c00;
+}
+
+/* Dark mode adjustments */
+[data-md-color-scheme="slate"] .category-badge.action {
+ background: #1565c0;
+ color: #e3f2fd;
+}
+
+[data-md-color-scheme="slate"] .category-badge.filter {
+ background: #6a1b9a;
+ color: #f3e5f5;
+}
+
+[data-md-color-scheme="slate"] .category-badge.pipe {
+ background: #2e7d32;
+ color: #e8f5e9;
+}
+
+[data-md-color-scheme="slate"] .category-badge.pipeline {
+ background: #e65100;
+ color: #fff3e0;
+}
+
+/* Version badge */
+.version-badge {
+ display: inline-block;
+ padding: 0.125rem 0.5rem;
+ background: var(--md-primary-fg-color);
+ color: white;
+ border-radius: 4px;
+ font-size: 0.75rem;
+ font-family: var(--md-code-font-family);
+}
+
+/* Compatibility notice */
+.compatibility-notice {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ padding: 0.5rem 1rem;
+ background: var(--md-code-bg-color);
+ border-radius: 4px;
+ font-size: 0.875rem;
+ margin: 1rem 0;
+}
+
+/* Table enhancements */
+.md-typeset table:not([class]) {
+ border-radius: 8px;
+ overflow: hidden;
+}
+
+/* Navigation tabs styling */
+.md-tabs {
+ background: var(--md-primary-fg-color);
+}
diff --git a/mkdocs.yml b/mkdocs.yml
new file mode 100644
index 0000000..cc05e71
--- /dev/null
+++ b/mkdocs.yml
@@ -0,0 +1,172 @@
+# MkDocs Configuration for OpenWebUI Extras
+# Site Information
+site_name: OpenWebUI Extras
+site_description: A collection of enhancements, plugins, and prompts for OpenWebUI
+site_author: Fu-Jie
+site_url: https://fu-jie.github.io/awesome-openwebui/
+
+# Repository
+repo_name: Fu-Jie/awesome-openwebui
+repo_url: https://github.com/Fu-Jie/awesome-openwebui
+edit_uri: edit/main/docs/
+
+# Copyright
+copyright: Copyright © 2024 OpenWebUI Extras Contributors
+
+# Theme Configuration
+theme:
+ name: material
+ language: en
+
+ # Logo and Icons
+ icon:
+ logo: material/robot-happy-outline
+ repo: fontawesome/brands/github
+
+ # Color Palette with Light/Dark Toggle
+ palette:
+ # Light mode
+ - media: "(prefers-color-scheme: light)"
+ scheme: default
+ primary: indigo
+ accent: blue
+ toggle:
+ icon: material/brightness-7
+ name: Switch to dark mode
+
+ # Dark mode
+ - media: "(prefers-color-scheme: dark)"
+ scheme: slate
+ primary: indigo
+ accent: blue
+ toggle:
+ icon: material/brightness-4
+ name: Switch to light mode
+
+ # Navigation Features
+ features:
+ - navigation.tabs
+ - navigation.tabs.sticky
+ - navigation.sections
+ - navigation.expand
+ - navigation.path
+ - navigation.top
+ - navigation.footer
+ - search.highlight
+ - search.suggest
+ - search.share
+ - content.code.copy
+ - content.code.annotate
+ - content.tabs.link
+ - toc.follow
+
+ # Custom fonts
+ font:
+ text: Roboto
+ code: Roboto Mono
+
+# Plugins
+plugins:
+ - search:
+ separator: '[\s\-,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|(?!\b)(?=[A-Z][a-z])'
+ - minify:
+ minify_html: true
+
+# Markdown Extensions
+markdown_extensions:
+ # Python Markdown
+ - abbr
+ - admonition
+ - attr_list
+ - def_list
+ - footnotes
+ - md_in_html
+ - toc:
+ permalink: true
+ toc_depth: 3
+
+ # Python Markdown Extensions
+ - pymdownx.arithmatex:
+ generic: true
+ - pymdownx.betterem:
+ smart_enable: all
+ - pymdownx.caret
+ - pymdownx.details
+ - pymdownx.emoji:
+ emoji_index: !!python/name:material.extensions.emoji.twemoji
+ emoji_generator: !!python/name:material.extensions.emoji.to_svg
+ - pymdownx.highlight:
+ anchor_linenums: true
+ line_spans: __span
+ pygments_lang_class: true
+ - pymdownx.inlinehilite
+ - pymdownx.keys
+ - pymdownx.magiclink:
+ normalize_issue_symbols: true
+ repo_url_shorthand: true
+ user: Fu-Jie
+ repo: awesome-openwebui
+ - pymdownx.mark
+ - pymdownx.smartsymbols
+ - pymdownx.snippets
+ - pymdownx.superfences:
+ custom_fences:
+ - name: mermaid
+ class: mermaid
+ format: !!python/name:pymdownx.superfences.fence_code_format
+ - pymdownx.tabbed:
+ alternate_style: true
+ combine_header_slug: true
+ - pymdownx.tasklist:
+ custom_checkbox: true
+ - pymdownx.tilde
+
+# Extra Configuration
+extra:
+ social:
+ - icon: fontawesome/brands/github
+ link: https://github.com/Fu-Jie/awesome-openwebui
+
+ generator: false
+
+ # Analytics (optional - add your tracking ID)
+ # analytics:
+ # provider: google
+ # property: G-XXXXXXXXXX
+
+# Extra CSS
+extra_css:
+ - stylesheets/extra.css
+
+# Navigation Structure
+nav:
+ - Home: index.md
+ - Plugins:
+ - plugins/index.md
+ - Actions:
+ - plugins/actions/index.md
+ - Smart Mind Map: plugins/actions/smart-mind-map.md
+ - Knowledge Card: plugins/actions/knowledge-card.md
+ - Export to Excel: plugins/actions/export-to-excel.md
+ - Summary: plugins/actions/summary.md
+ - Filters:
+ - plugins/filters/index.md
+ - Async Context Compression: plugins/filters/async-context-compression.md
+ - Context Enhancement: plugins/filters/context-enhancement.md
+ - Gemini Manifold Companion: plugins/filters/gemini-manifold-companion.md
+ - Pipes:
+ - plugins/pipes/index.md
+ - Gemini Manifold: plugins/pipes/gemini-manifold.md
+ - Pipelines:
+ - plugins/pipelines/index.md
+ - MoE Prompt Refiner: plugins/pipelines/moe-prompt-refiner.md
+ - Prompts:
+ - prompts/index.md
+ - prompts/library.md
+ - Enhancements:
+ - enhancements/index.md
+ - enhancements/guide.md
+ - Development:
+ - development/index.md
+ - Plugin Development Guide: development/plugin-guide.md
+ - Contributing: contributing.md
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..31d8bc9
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,12 @@
+# MkDocs Documentation Dependencies
+# Core MkDocs
+mkdocs>=1.5.0
+
+# Material Theme for MkDocs
+mkdocs-material>=9.5.0
+
+# Plugins
+mkdocs-minify-plugin>=0.7.0
+
+# Optional: Multi-language support (uncomment if needed)
+# mkdocs-static-i18n>=1.0.0