# GitHub Copilot SDK Pipe for OpenWebUI **Author:** [Fu-Jie](https://github.com/Fu-Jie/awesome-openwebui) | **Version:** 0.6.0 | **Project:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) | **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.6.0 Updates (What's New) - **πŸ‘₯ User & Chat Management**: Physical management architecture (`user_id/chat_id`) for absolute resource independence. - **πŸ€– Empowering Agent Autonomy**: Automatic synchronization of raw files to the workspace, enabling direct Python-based analysis of Excel/CSV. - **πŸ”§ OpenAPI & External Tool Fixes**: Full support for tools mounted via OpenAPI servers. - **πŸ“Š Cost Control**: Enhanced **Billing Multiplier Limits** (`MAX_MULTIPLIER`, e.g., set to 0 for free models only) and **Model Keyword Filtering** (`EXCLUDE_KEYWORDS`) for precise cost management. - **🧠 Persistent TODO Lists**: Database-backed task tracking that persists across sessions. --- ## ✨ 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. - **⚑ 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., ). | | `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 [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) 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 installs `github-copilot-sdk` (Python) and `github-copilot-cli` (Binary). --- ## Changelog See the full history on GitHub: [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui)