- Core: Adapt to OpenWebUI native tool call UI and thinking process visualization - Infra: Bundle Copilot CLI via pip package (no more background curl installation) - Fix: Resolve "Error getting file content" on OpenWebUI v0.8.0+ via absolute paths - i18n: Add native localization for status messages in 11 languages - UX: Optimize reasoning status display logic and cleanup legacy code
121 lines
6.6 KiB
Markdown
121 lines
6.6 KiB
Markdown
# GitHub Copilot SDK Pipe for OpenWebUI
|
|
|
|
**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 0.7.0 | **Project:** [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) | **License:** MIT
|
|
|
|
This is an advanced Pipe function for [OpenWebUI](https://github.com/open-webui/open-webui) that integrates the official [GitHub Copilot SDK](https://github.com/github/copilot-sdk). It enables you to use **GitHub Copilot models** (e.g., `gpt-5.2-codex`, `claude-sonnet-4.5`,`gemini-3-pro`, `gpt-5-mini`) **AND** your own models via **BYOK** (OpenAI, Anthropic) directly within OpenWebUI, providing a unified agentic experience with **strict User & Chat-level Workspace Isolation**.
|
|
|
|
> [!IMPORTANT]
|
|
> **Essential Companion**
|
|
> To unlock file handling and data analysis capabilities, you must install the [GitHub Copilot SDK Files Filter](https://openwebui.com/posts/403a62ee-a596-45e7-be65-fab9cc249dd6).
|
|
|
|
> [!TIP]
|
|
> **No Subscription Required for BYOK**
|
|
> If you are using your own API keys (BYOK mode with OpenAI/Anthropic), **you do NOT need a GitHub Copilot subscription.** A subscription is only required to access GitHub's official models.
|
|
|
|
---
|
|
|
|
## ✨ v0.7.0 Updates (What's New)
|
|
|
|
- **🚀 Integrated CLI Management**: The Copilot CLI is now automatically managed and bundled via the `github-copilot-sdk` pip package. No more manual `curl | bash` installation or version mismatches. (v0.7.0)
|
|
- **🧠 Native Tool Call UI**: Full adaptation to **OpenWebUI's native tool call UI** and thinking process visualization. (v0.7.0)
|
|
- **🏠 OpenWebUI v0.8.0+ Fix**: Resolved "Error getting file content" download failure by switching to absolute path registration for published files. (v0.7.0)
|
|
- **🌐 Comprehensive Multi-language Support**: Native localization for status messages in 11 languages (EN, ZH, JA, KO, FR, DE, ES, IT, RU, VI, ID). (v0.7.0)
|
|
- **🧹 Architecture Cleanup**: Refactored core setup and optimized reasoning status display for a leaner experience. (v0.7.0)
|
|
|
|
---
|
|
|
|
## ✨ Key Capabilities
|
|
|
|
- **🔑 Flexible Auth & BYOK**: Official Copilot subscriptions (PAT) or Bring Your Own Key (OpenAI/Anthropic).
|
|
- **🔌 Universal Tool Protocol**: Native support for **MCP (Model Context Protocol)**, OpenAPI, and OpenWebUI built-in tools.
|
|
- **🛡️ Sandbox Workspace Isolation**: Strict per-session sandboxing for data privacy and security.
|
|
- **♾️ Infinite Session Management**: Smart context window management with automatic compaction for indefinite conversation capability.
|
|
- **🧠 Deep Database Integration**: Real-time persistence of TOD·O lists for long-running workflows.
|
|
- **🌊 Advanced Streaming**: Full support for thinking process/Chain of Thought visualization.
|
|
- **🖼️ Intelligent Multimodal**: Vision capabilities and raw file analysis support (bypasses RAG for direct binary access).
|
|
- **📤 Workspace Artifacts (`publish_file_from_workspace`)**: Agents can generate files (Excel, CSV, HTML reports, etc.) and provide **persistent download links** directly in the chat.
|
|
- **🖼️ Interactive Artifacts**: Automatically renders HTML/JS apps generated by the agent directly in the chat interface.
|
|
|
|
---
|
|
|
|
## ⚙️ Core Configuration (Valves)
|
|
|
|
### 1. Administrator Settings (Base)
|
|
|
|
Administrators define the default behavior for all users in the function settings.
|
|
|
|
| Valve | Default | Description |
|
|
| :--- | :--- | :--- |
|
|
| `GH_TOKEN` | `""` | Global GitHub Token (Requires 'Copilot Requests' permission). |
|
|
| `ENABLE_OPENWEBUI_TOOLS` | `True` | Enable OpenWebUI Tools (includes defined Tools and Built-in Tools). |
|
|
| `ENABLE_OPENAPI_SERVER` | `True` | Enable OpenAPI Tool Server connection. |
|
|
| `ENABLE_MCP_SERVER` | `True` | Enable Direct MCP Client connection (Recommended). |
|
|
| `REASONING_EFFORT` | `medium` | Reasoning effort level: low, medium, high. |
|
|
| `SHOW_THINKING` | `True` | Show model reasoning/thinking process. |
|
|
| `INFINITE_SESSION` | `True` | Enable Infinite Sessions (automatic context compaction). |
|
|
| `MAX_MULTIPLIER` | `1.0` | Max allowed billing multiplier (0x for free models only). |
|
|
| `EXCLUDE_KEYWORDS` | `""` | Exclude models containing these keywords (comma separated). |
|
|
| `TIMEOUT` | `300` | Timeout for each stream chunk (seconds). |
|
|
| `BYOK_TYPE` | `openai` | BYOK Provider Type: `openai`, `anthropic`. |
|
|
| `BYOK_BASE_URL` | `""` | BYOK Base URL (e.g., <https://api.openai.com/v1>). |
|
|
| `BYOK_MODELS` | `""` | BYOK Model List (comma separated). Leave empty to fetch from API. |
|
|
| `CUSTOM_ENV_VARS` | `""` | Custom environment variables (JSON format). |
|
|
| `DEBUG` | `False` | Enable this to see detailed logs in your browser console. |
|
|
|
|
### 2. User Settings (Individual Overrides)
|
|
|
|
Standard users can override these settings in their individual Profile/Function settings.
|
|
|
|
| Valve | Description |
|
|
| :--- | :--- |
|
|
| `GH_TOKEN` | Use your personal GitHub Token. |
|
|
| `REASONING_EFFORT` | Individual reasoning effort preference. |
|
|
| `SHOW_THINKING` | Show model reasoning/thinking process. |
|
|
| `MAX_MULTIPLIER` | Maximum allowed billing multiplier override. |
|
|
| `EXCLUDE_KEYWORDS` | Exclude models containing these keywords. |
|
|
| `BYOK_API_KEY` | Use your personal OpenAI/Anthropic API Key. |
|
|
|
|
---
|
|
|
|
## 🎯 Use Cases (What can you do?)
|
|
|
|
- **📁 Fully Autonomous DevOps**: Agent analyzes code, runs tests, and applies patches within its isolated sandbox.
|
|
- **📊 Deep Data Auditing**: Directly process raw Excel/CSV data via Python (bypassing RAG) and generate visual reports.
|
|
- **📝 Long-Task Management**: Automatically decomposes complex requests and persists TOD·O progress across sessions.
|
|
|
|
---
|
|
|
|
## ⭐ Support
|
|
|
|
If this plugin has been useful, a **Star** on [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions) would be a great motivation for me. Thank you!
|
|
|
|
---
|
|
|
|
## 🚀 Installation & Configuration
|
|
|
|
### 1) Import Function
|
|
|
|
1. Open OpenWebUI, go to **Workspace** -> **Functions**.
|
|
2. Click **+** (Create Function), paste the content of `github_copilot_sdk.py`.
|
|
3. Save and ensure it is enabled.
|
|
|
|
### 2) Get Token
|
|
|
|
1. Visit [GitHub Token Settings](https://github.com/settings/tokens?type=beta).
|
|
2. Create **Fine-grained token**, granting **Account permissions** -> **Copilot Requests** access.
|
|
3. Paste the generated Token into the `GH_TOKEN` field in Valves.
|
|
|
|
---
|
|
|
|
## 📋 Troubleshooting & Dependencies
|
|
|
|
- **Agent ignores files?**: Ensure the Files Filter is enabled, otherwise RAG will interfere with raw binaries.
|
|
- **No progress bar?**: The bar only appears when the Agent uses the `update_todo` tool.
|
|
- **Dependencies**: This Pipe automatically manages `github-copilot-sdk` (Python) and utilizes the bundled binary CLI. No manual install required.
|
|
|
|
---
|
|
|
|
## Changelog
|
|
|
|
See the full history on GitHub: [OpenWebUI Extensions](https://github.com/Fu-Jie/openwebui-extensions)
|