Merge branch 'open-webui:dev' into dev

This commit is contained in:
Classic298
2026-07-01 10:04:07 +02:00
committed by GitHub
178 changed files with 2082 additions and 1475 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
---
sidebar_position: 1500
title: "🌍 Alternatives to Open WebUI"
title: "Alternatives to Open WebUI"
description: "Looking for an Open WebUI alternative? Honest comparisons of local runners, desktop apps, enterprise platforms, and commercial AI by the Open WebUI team."
keywords: ["open webui alternatives", "open webui alternative", "best open webui alternatives", "best open webui alternative", "open webui vs", "open webui comparison", "tools like open webui", "self-hosted AI chat", "self-hosted ChatGPT alternative"]
---
+2 -2
View File
@@ -1,6 +1,6 @@
---
sidebar_position: 1850
title: 🎨 Brand Guidelines
title: Brand Guidelines
---
# Open WebUI Design Guidelines
@@ -87,4 +87,4 @@ For questions about usage or to request permission for other uses, please contac
---
Thank you for helping maintain a consistent and clear brand identity for Open WebUI.
Thank you for helping maintain a consistent and clear brand identity for Open WebUI.
+2 -2
View File
@@ -1,9 +1,9 @@
---
sidebar_position: 1600
title: "🤝 Contributing"
title: "Contributing"
---
# 🤝 Contributing
# Contributing
**Help build the AI interface everyone deserves.**
+6
View File
@@ -0,0 +1,6 @@
{
"label": "Ecosystem",
"position": 201,
"collapsible": true,
"collapsed": false
}
@@ -1,5 +1,5 @@
{
"label": "🖥️ Computer (cptr)",
"label": "Open WebUI Computer (cptr)",
"position": 36,
"collapsible": true,
"collapsed": true
@@ -1,11 +1,11 @@
---
title: "Features"
title: "Capabilities"
sidebar_position: 2
---
# Features
# Capabilities
Everything cptr gives you, grouped by what it is for. The [overview](/features/computer) has the short version; this is the full list.
Everything Open WebUI Computer gives you, grouped by what it is for. The [overview](/ecosystem/computer) has the short version; this is the full list.
## The computer you operate
@@ -17,25 +17,25 @@ Everything cptr gives you, grouped by what it is for. The [overview](/features/c
- **Port preview.** A built-in reverse proxy detects ports your processes open, so you can preview a running app in another tab.
- **System info.** A "System info" entry in the sidebar menu opens a modal showing the machine's hostname, OS, CPU, memory, disk and running processes.
- **Voice memos.** Record audio from the `+` menu or `Cmd+Shift+M`. Recordings save to the workspace as audio files with an auto-generated transcript, via any OpenAI-compatible speech-to-text API (Whisper and similar), configured in Settings > Audio.
- **Installable app (PWA).** Install cptr to a phone, tablet or desktop home screen for a standalone, app-like experience, with offline caching and a fallback page when the server is unreachable. Home screen shortcuts jump straight to a new chat, workspace, note, terminal or search, a share target sends files, text or links from other apps into a chat, and opening a supported file with cptr imports it into a workspace you choose. Manage install status and the offline cache from Settings > PWA.
- **Installable app (PWA).** Install Open WebUI Computer to a phone, tablet or desktop home screen for a standalone, app-like experience, with offline caching and a fallback page when the server is unreachable. Home screen shortcuts jump straight to a new chat, workspace, note, terminal or search, a share target sends files, text or links from other apps into a chat, and opening a supported file with Open WebUI Computer imports it into a workspace you choose. Manage install status and the offline cache from Settings > PWA.
## The AI agent (optional)
- **Optional AI agent.** A chat panel with multi-provider support (Anthropic, OpenAI, Ollama and OpenAI-compatible endpoints). With a key it reads, searches and edits files, runs shell commands, searches the web and reads URLs. It also reads and describes images in your workspace and can drive a real browser (navigate, click, type, screenshot, run JavaScript) via local Chrome, Firecrawl or Browser-Use. Web search runs through Exa, Tavily, Brave, DuckDuckGo, Perplexity (with a configurable base URL for proxies such as LiteLLM), Firecrawl (with a self-hosted endpoint option) or any OpenAI-compatible endpoint. For bigger tasks it can draft an implementation plan to approve before it starts (plan mode), and long conversations are compacted automatically, with a context-usage indicator showing how full the window is. Every edit or command waits for your approval, and its file tools refuse to read or write `.env` files. Mention files with `@` and queue follow-up messages while it works.
- **Coding agents as backends.** Connect coding agents you already subscribe to as native AI backends, configured from the **Agents** admin tab where you set the command path, the model list and an approval/permission mode (install status and auto-detect are shown). Supported: Codex, Claude Code, Cursor, Grok and OpenCode. They appear as selectable models, run in the workspace with full tool access and resume across sessions. 0.7.1 added live streaming output and approval-request handling.
- **Voice mode and text-to-speech.** Talk to the AI hands-free: tap the voice button, speak, and cptr transcribes your message, sends it and reads the reply back aloud, re-arming the mic for a back-and-forth. Connect any OpenAI-compatible TTS API in Settings > Audio, pick a voice and a playback speed (0.5x to 2x), or click the speaker on any message to hear it. An auto-stream toggle in Settings > Audio reads each AI response aloud as it arrives.
- **Voice mode and text-to-speech.** Talk to the AI hands-free: tap the voice button, speak, and Open WebUI Computer transcribes your message, sends it and reads the reply back aloud, re-arming the mic for a back-and-forth. Connect any OpenAI-compatible TTS API in Settings > Audio, pick a voice and a playback speed (0.5x to 2x), or click the speaker on any message to hear it. An auto-stream toggle in Settings > Audio reads each AI response aloud as it arrives.
- **Reasoning display.** Models that think before answering (such as o3 or Claude with extended thinking) show their reasoning as collapsible steps in the chat. Tool calls and reasoning render as compact, groupable rows with live status.
- **Memory.** The AI remembers facts about you and your projects, stored per user and per workspace and pulled into future conversations automatically. View, edit and delete them from the Memory tab in Settings. Admins can enable background memory review, which lets the AI pick up preferences and patterns quietly as you chat. Memories are stored as an organized Markdown "memory vault" the AI can link, move, split and merge to keep things tidy.
- **Image generation and editing.** Ask the AI to create or edit images right in the chat. Results save to your workspace and display inline. Works with any OpenAI-compatible image API, configured in the Images admin tab.
- **Tool servers.** Connect external tools over MCP or OpenAPI from the Tool Servers admin tab (bearer auth and custom headers supported). Once verified, the AI uses them alongside its built-in tools.
- **Sub-agents and parallel tools.** The AI can spin up sub-agents that work on tasks in parallel, each with full tool access and inspectable afterwards as its own chat. Multiple tool calls in a single response also run concurrently. Sub-agents can also run in the **background**: the AI kicks off a long task, keeps chatting with you and brings the results back when they are done (labeled as a background sub-agent). Set concurrency and limits in the Subagents admin tab.
- **Skills.** Drop reusable `SKILL.md` instruction sets in a workspace or globally. The AI discovers them and loads them on demand, and you can pull one in with `$` in the chat input.
- **Model configuration.** Set parameters and a system prompt per model or as a global default, and pick a **default model** (Settings > Models) that new chats and gateway requests use automatically. System prompts take `{{VARIABLE}}` placeholders (workspace name, file tree, OS, date, skills, plus runtime environment, hostname, platform, architecture, shell, home directory and cptr version), and a workspace `.cptr/system.md` file overrides the prompt for that project.
- **Model configuration.** Set parameters and a system prompt per model or as a global default, and pick a **default model** (Settings > Models) that new chats and gateway requests use automatically. System prompts take `{{VARIABLE}}` placeholders (workspace name, file tree, OS, date, skills, plus runtime environment, hostname, platform, architecture, shell, home directory and Open WebUI Computer version), and a workspace `.cptr/system.md` file overrides the prompt for that project.
## Automation and reach
- **Automations.** Schedule recurring tasks on a timer, or ask the AI to set one up. Each automation runs as a real chat with full tool access, and can alert you when it finishes by browser notification or a webhook (Slack, Discord, Teams).
- **Messaging bots.** Connect the AI to Telegram, Discord, Slack, WhatsApp or Signal from Settings. Each bot has full tool access, streams its replies and syncs the conversation back to the web UI. Send `/workspace` to switch projects and `/new` to start a fresh chat.
- **OpenAI-compatible gateway.** Expose each workspace as a model over `/v1/models` and `/v1/chat/completions`, so Open WebUI or any OpenAI-compatible client can drive the full cptr agent loop as if it were a model. See [**Connect to Open WebUI**](/features/computer/open-webui) for setup and the first-class Open WebUI integration (branching, background-task filtering).
- **OpenAI-compatible gateway.** Expose each workspace as a model over `/v1/models` and `/v1/chat/completions`, so Open WebUI or any OpenAI-compatible client can drive the full Open WebUI Computer agent loop as if it were a model. See [**Connect to Open WebUI**](/ecosystem/computer/open-webui) for setup and the first-class Open WebUI integration (branching, background-task filtering).
Chats are stored as files too, so your AI conversations are searchable, editable and commit-able alongside your code.
@@ -1,15 +1,15 @@
---
title: "Computer (cptr)"
title: "Open WebUI Computer"
sidebar_position: 1
---
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 🖥️ Computer (cptr)
# Open WebUI Computer
<ThemedImage
alt="Computer (cptr): the cptr workspace running on a desktop screen and a phone, the same session across devices, with optional AI"
alt="Open WebUI Computer workspace running on a desktop screen and a phone, the same session across devices, with optional AI"
sources={{
light: useBaseUrl('/images/banners/computer-light.svg'),
dark: useBaseUrl('/images/banners/computer-dark.svg'),
@@ -19,21 +19,21 @@ import useBaseUrl from '@docusaurus/useBaseUrl';
**Your computer, in a browser tab. From anywhere.**
`cptr` (short for "computer") runs on a machine you own and serves the whole thing to a browser: files, a code editor, a terminal and git, all in one tab. Open it from your phone on the train, your laptop at a cafe, or a tablet on the couch. Push a hotfix, check a deploy, stage and commit, or drop into the terminal and work the old way. Close the tab and come back tomorrow on any device; sessions survive disconnects and everything is where you left it.
Open WebUI Computer runs on a machine you own and serves the whole thing to a browser: files, a code editor, a terminal and git, all in one tab. Open it from your phone on the train, your laptop at a cafe, or a tablet on the couch. Push a hotfix, check a deploy, stage and commit, or drop into the terminal and work the old way. Close the tab and come back tomorrow on any device; sessions survive disconnects and everything is where you left it.
AI is built in but optional. Bring your own key and it becomes an agent that can read, search, edit and run things in your project. Leave the key out and cptr is still a full computer, just without the assistant.
AI is built in but optional. Bring your own key and it becomes an agent that can read, search, edit and run things in your project. Leave the key out and Open WebUI Computer is still a full computer, just without the assistant.
[**View on GitHub →**](https://github.com/open-webui/computer) · [**Read the Manifesto →**](https://github.com/open-webui/computer/blob/main/MANIFESTO.md)
:::info New, and moving fast
cptr is a young project (currently v0.7.x) and a **separate product** from Open WebUI, not a plugin or an integration. Expect rapid changes. The [GitHub repo](https://github.com/open-webui/computer) is the source of truth for the latest.
Open WebUI Computer is a young project (currently v0.7.x) and a **separate product** from Open WebUI, not a plugin or an integration. Expect rapid changes. The [GitHub repo](https://github.com/open-webui/computer) is the source of truth for the latest.
:::
## cptr vs Open Terminal
## Open WebUI Computer vs Open Terminal
These two look related because both involve a terminal and an AI, but they sit on opposite sides of the same idea. The short version: **[Open Terminal](/features/open-terminal) gives the Open WebUI chat AI a computer to work on; cptr gives _you_ your computer, with AI as an optional helper.**
These two look related because both involve a terminal and an AI, but they sit on opposite sides of the same idea. The short version: **[Open Terminal](/features/open-terminal) gives the Open WebUI chat AI a computer to work on; Open WebUI Computer gives _you_ your computer, with AI as an optional helper.**
| | [Open Terminal](/features/open-terminal) | Computer (cptr) |
| | [Open Terminal](/features/open-terminal) | Open WebUI Computer |
| :--- | :--- | :--- |
| **What it is** | A shell-execution backend you connect to Open WebUI as a tool | A standalone app: your machine (files, editor, terminal, git) in a browser |
| **Who drives** | The AI runs commands for you during a chat | You operate the machine; the AI assists when asked |
@@ -43,22 +43,22 @@ These two look related because both involve a terminal and an AI, but they sit o
| **AI** | Required (it exists for the chat model to use) | Optional (bring your own key; works without it) |
| **License** | MIT | Open Use License (source-available) |
If you want the model to build software for you inside a chat, that is Open Terminal. If you want to _be_ at your computer from your phone, with the model as an extra pair of hands, that is cptr.
If you want the model to build software for you inside a chat, that is Open Terminal. If you want to _be_ at your computer from your phone, with the model as an extra pair of hands, that is Open WebUI Computer.
## What you can do
cptr is a full workspace with an optional AI agent on top:
Open WebUI Computer is a full workspace with an optional AI agent on top:
- **The computer you operate.** A browser-based terminal, file browser, code editor and git across multiple project workspaces, with global search, live port previews and voice memos.
- **An optional AI agent.** With your own key it reads, edits and runs code, browses the web, uses external MCP/OpenAPI tool servers and spins up sub-agents, following skills you define. Every change waits for your approval.
- **Coding agents as backends.** Connect a coding agent you already subscribe to (Codex, Claude Code, Cursor, Grok, OpenCode) as a native backend, no API key needed. It shows up in the model picker and runs in the workspace with full tool access.
- **Automation and reach.** Scheduled automations, messaging bots (Telegram, Discord, Slack, WhatsApp, Signal) and an OpenAI-compatible gateway that lets Open WebUI drive a workspace as a model.
See the [**full feature list**](/features/computer/features), and [**Connect to Open WebUI**](/features/computer/open-webui) to use a cptr workspace as a model from your own Open WebUI instance.
See the [**full capability list**](/ecosystem/computer/capabilities), and [**Connect to Open WebUI**](/ecosystem/computer/open-webui) to use an Open WebUI Computer workspace as a model from your own Open WebUI instance.
## Install and run
cptr is a Python package (Python 3.10 or newer):
Open WebUI Computer is distributed as a Python package named `cptr` (Python 3.10 or newer):
```bash
pip install cptr
@@ -82,7 +82,7 @@ cptr run --host 0.0.0.0
State lives in `~/.cptr` by default; set `CPTR_DATA_DIR` to change it. After first-time setup you log in with a username and password, and sessions use JWTs.
For operations, cptr can write structured logs and an audit trail. Set `CPTR_AUDIT_LOG_LEVEL` to log every mutating API request (POST, PUT, PATCH, DELETE) to a JSON file with passwords and API keys redacted, and `CPTR_LOG_UPSTREAM_REQUESTS=true` to log outgoing AI API calls (provider, model, endpoint) to a separate file for debugging and cost tracking.
For operations, Open WebUI Computer can write structured logs and an audit trail. Set `CPTR_AUDIT_LOG_LEVEL` to log every mutating API request (POST, PUT, PATCH, DELETE) to a JSON file with passwords and API keys redacted, and `CPTR_LOG_UPSTREAM_REQUESTS=true` to log outgoing AI API calls (provider, model, endpoint) to a separate file for debugging and cost tracking.
### Docker
@@ -95,21 +95,21 @@ docker run --rm -it \
ghcr.io/open-webui/computer:latest
```
State is stored in `/data`. Mount the project you want to work on into the container with `-v "$PWD:/workspace"` so cptr can reach it. A `:dev` image tracks the `main` branch.
State is stored in `/data`. Mount the project you want to work on into the container with `-v "$PWD:/workspace"` so Open WebUI Computer can reach it. A `:dev` image tracks the `main` branch.
## Security model
:::danger Treat a shared cptr like an open SSH port
Once a user is authenticated, cptr gives them **full access to the host filesystem and shell**, the same as an SSH session. There is **no path sandboxing and no per-user isolation**. The AI's file read and edit tools are confined to the active workspace, but shell access (the terminal, and the AI's run-command tool) is not.
:::danger Treat a shared Open WebUI Computer instance like an open SSH port
Once a user is authenticated, Open WebUI Computer gives them **full access to the host filesystem and shell**, the same as an SSH session. There is **no path sandboxing and no per-user isolation**. The AI's file read and edit tools are confined to the active workspace, but shell access (the terminal, and the AI's run-command tool) is not.
:::
cptr is designed as "your computer, served to you", so that level of access is the point, not a flaw. It is safe **only** when both of these hold:
Open WebUI Computer is designed as "your computer, served to you", so that level of access is the point, not a flaw. It is safe **only** when both of these hold:
- you are the only user, and
- you control the network it is exposed on.
It is **not** safe if untrusted users share the instance, it is reachable from the public internet, or a reverse proxy in front of it forwards spoofable authentication headers. By default cptr binds to localhost only, so reaching it from another machine is an explicit opt-in (`cptr run --host 0.0.0.0`, or publishing the Docker port). When you do open it up, put it behind a VPN or a tunnel rather than a public port, the same way you would treat SSH.
It is **not** safe if untrusted users share the instance, it is reachable from the public internet, or a reverse proxy in front of it forwards spoofable authentication headers. By default Open WebUI Computer binds to localhost only, so reaching it from another machine is an explicit opt-in (`cptr run --host 0.0.0.0`, or publishing the Docker port). When you do open it up, put it behind a VPN or a tunnel rather than a public port, the same way you would treat SSH.
## License
cptr is released under the **Open Use License**: the source is available, but it is not MIT or otherwise open source, and all rights are reserved. [Enterprise licenses are available](mailto:sales@openwebui.com). See the [LICENSE](https://github.com/open-webui/computer/blob/main/LICENSE) file for the exact terms.
Open WebUI Computer is released under the **Open Use License**: the source is available, but it is not MIT or otherwise open source, and all rights are reserved. [Enterprise licenses are available](mailto:sales@openwebui.com). See the [LICENSE](https://github.com/open-webui/computer/blob/main/LICENSE) file for the exact terms.
+42
View File
@@ -0,0 +1,42 @@
---
title: "Connect to Open WebUI"
sidebar_position: 3
---
# Connect Open WebUI Computer to Open WebUI
Open WebUI Computer ships an **OpenAI-compatible gateway**: it exposes each workspace as a model over `/v1/models` and `/v1/chat/completions`. Point Open WebUI at it as an OpenAI connection and every workspace shows up as a model named `cptr/<workspace>`. Chatting with that model in Open WebUI runs the full Open WebUI Computer agent loop, reading files, editing code and running commands, in that workspace, and the conversation appears in both Open WebUI and the Open WebUI Computer sidebar.
:::info What this does, and what it does not
This lets Open WebUI **drive** an Open WebUI Computer workspace as a model: new chats you start in Open WebUI run through Open WebUI Computer. It is **not** a sync of Open WebUI Computer's existing standalone chats into Open WebUI, and it does not share Open WebUI knowledge bases into Open WebUI Computer.
:::
## Setup
1. **Create a gateway API key in Open WebUI Computer.** Open the **Gateway** admin tab, create a key and copy it. Keys are stored hashed and shown only once.
2. **Note the base URL.** The Gateway tab shows it: your Open WebUI Computer server origin plus `/v1`, for example `http://localhost:8000/v1` (use your host's address if Open WebUI Computer runs elsewhere).
3. **Add Open WebUI Computer as a connection in Open WebUI.** In **Admin Panel > Settings > Connections**, add an **OpenAI API** connection. Set the base URL to the gateway URL from step 2 and paste the API key from step 1.
4. **Add the recommended headers.** The Gateway tab has a one-click copy of the header config. Paste it into the connection's custom headers:
```json
{
"X-OpenWebUI-Chat-Id": "{{CHAT_ID}}",
"X-OpenWebUI-Message-Id": "{{MESSAGE_ID}}",
"X-OpenWebUI-User-Message-Id": "{{USER_MESSAGE_ID}}",
"X-OpenWebUI-User-Message-Parent-Id": "{{USER_MESSAGE_PARENT_ID}}",
"X-OpenWebUI-Task": "{{TASK}}"
}
```
5. **Pick a workspace and chat.** Your workspaces now appear in the Open WebUI model picker as `cptr/<workspace>`. Select one and start a conversation; it runs the Open WebUI Computer agent loop in that workspace.
## Why the headers matter
The `{{...}}` values are Open WebUI's [custom-header placeholders](/reference/env-configuration#enable_forward_user_info_headers), filled in per request from the chat metadata. They give Open WebUI Computer the chat and message lineage it needs to:
- **Branch correctly.** Regenerating or editing a message in Open WebUI creates a matching branch in the Open WebUI Computer sidebar (via `X-OpenWebUI-User-Message-Id` and `X-OpenWebUI-User-Message-Parent-Id`), instead of appending in the wrong place.
- **Ignore background work.** Open WebUI also calls the gateway for title generation, tag extraction and follow-up suggestions. `X-OpenWebUI-Task` tells Open WebUI Computer which requests are background tasks, so it skips them instead of spawning ghost chats or running a full agent loop.
:::caution Requires Open WebUI 0.10.0 or newer
The `{{USER_MESSAGE_ID}}`, `{{USER_MESSAGE_PARENT_ID}}` and `{{TASK}}` placeholders were added in Open WebUI 0.10.0. On 0.9.6 the basic gateway connection still works, you can chat with a workspace as a model, but those three headers are not filled in, so branching and background-task filtering do not work yet.
:::
+25
View File
@@ -0,0 +1,25 @@
---
title: "Ecosystem"
sidebar_position: 1
---
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# Ecosystem
<ThemedImage
alt="Open WebUI Ecosystem: an expanding set of Open WebUI-made projects, connectors, agents, and tools around the core platform"
sources={{
light: useBaseUrl('/images/banners/ecosystem-light.svg'),
dark: useBaseUrl('/images/banners/ecosystem-dark.svg'),
}}
style={{ width: '100%', margin: '0.25rem 0 1.75rem' }}
/>
Open WebUI is the core AI interface. The ecosystem is the set of separate Open WebUI projects that connect to it, extend it, or solve adjacent jobs while staying useful on their own.
## Projects
- [**Knowledge Base Sync (oikb)**](/ecosystem/knowledge-base-sync): mirror folders, repos, buckets, wikis, and other sources into Open WebUI Knowledge Bases with incremental sync.
- [**Open WebUI Computer**](/ecosystem/computer): your computer in a browser tab, with files, terminal, git, editor, and optional AI. It connects to Open WebUI through an OpenAI-compatible gateway.
@@ -1,5 +1,5 @@
{
"label": "🔄 Knowledge Base Sync",
"label": "Knowledge Base Sync (oikb)",
"position": 34,
"collapsible": true,
"collapsed": true
@@ -5,7 +5,7 @@ title: "Daemon, Webhooks & Deployment"
# Running the daemon
The CLI on the [main page](/features/knowledge-base-sync) covers one-off and watched syncs. For anything unattended, scheduled or driven by external events, run oikb as a long-lived **daemon**. It reads your [`.oikb.yaml`](#the-oikbyaml-config-file), syncs each source on its own schedule and exposes a small HTTP API for health checks, metrics, history and on-demand triggers.
The CLI on the [main page](/ecosystem/knowledge-base-sync) covers one-off and watched syncs. For anything unattended, scheduled or driven by external events, run oikb as a long-lived **daemon**. It reads your [`.oikb.yaml`](#the-oikbyaml-config-file), syncs each source on its own schedule and exposes a small HTTP API for health checks, metrics, history and on-demand triggers.
```bash
oikb daemon
@@ -331,12 +331,12 @@ The scheduler and per-KB locks live in one process, so the daemon is meant to ru
### GitHub Actions
For push-based, build-time syncing instead of a long-running daemon, run the image as a one-shot step. See [One-shot sync in CI](/features/knowledge-base-sync#one-shot-sync-in-ci) on the main page.
For push-based, build-time syncing instead of a long-running daemon, run the image as a one-shot step. See [One-shot sync in CI](/ecosystem/knowledge-base-sync#one-shot-sync-in-ci) on the main page.
---
## See also
- **[Knowledge Base Sync (oikb)](/features/knowledge-base-sync)**: installation, sources, connectors, filtering and the CLI.
- **[Knowledge Base Sync (oikb)](/ecosystem/knowledge-base-sync)**: installation, sources, connectors, filtering and the CLI.
- **[Knowledge](/features/workspace/knowledge)**: the Knowledge Base feature this keeps in sync.
- **[OpenAPI / MCP tool servers](/features/extensibility/mcp)**: connecting external tool servers to Open WebUI.
@@ -1,13 +1,13 @@
---
sidebar_position: 1
title: "Knowledge Base Sync (oikb)"
slug: /features/knowledge-base-sync
slug: /ecosystem/knowledge-base-sync
---
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 🔄 Knowledge Base Sync (oikb)
# Knowledge Base Sync (oikb)
<ThemedImage
alt="Knowledge Base Sync: many different source connectors flowing through the oikb sync hub into Open WebUI Knowledge Bases"
@@ -24,7 +24,7 @@ import useBaseUrl from '@docusaurus/useBaseUrl';
Unlike a one-time upload, which is stale the moment the source changes, oikb does **incremental** sync: it wires a Knowledge Base to a living source once, then keeps it fresh on a schedule, on every push or on demand. A docs repo, a wiki, a storage bucket, all stay current without anyone babysitting them.
It is a separate program (a command-line tool plus an optional long-running [daemon](/features/knowledge-base-sync/daemon)), not part of the Open WebUI server, but it is built for Open WebUI and talks to it over the normal REST API.
It is a separate program (a command-line tool plus an optional long-running [daemon](/ecosystem/knowledge-base-sync/daemon)), not part of the Open WebUI server, but it is built for Open WebUI and talks to it over the normal REST API.
:::info Requires Open WebUI 0.9.6+
oikb drives the incremental sync endpoints (`/sync/diff` and `/sync/cleanup`) that landed in **v0.9.6**. Against an older server there is nothing for it to call. The server side of these endpoints is documented under [Knowledge → Syncing a local directory](/features/workspace/knowledge#syncing-a-local-directory).
@@ -48,11 +48,11 @@ Point it at a local folder, a Git repo, a Confluence or Notion space, an S3 buck
### Stays fresh on its own
Sync once by hand, or hand it to the [daemon](/features/knowledge-base-sync/daemon) to run on an interval, a cron or the instant someone pushes. A Knowledge Base wired to a living source stops quietly drifting out of date.
Sync once by hand, or hand it to the [daemon](/ecosystem/knowledge-base-sync/daemon) to run on an interval, a cron or the instant someone pushes. A Knowledge Base wired to a living source stops quietly drifting out of date.
### The model can drive it
The daemon doubles as an [OpenAPI tool server](/features/knowledge-base-sync/daemon#let-the-model-trigger-syncs), so a model can trigger a re-sync and report back mid-conversation, without anyone touching the command line.
The daemon doubles as an [OpenAPI tool server](/ecosystem/knowledge-base-sync/daemon#let-the-model-trigger-syncs), so a model can trigger a re-sync and report back mid-conversation, without anyone touching the command line.
---
@@ -90,7 +90,7 @@ pip install oikb[all] # every optional connector at once
The full set of extras is `s3`, `gcs`, `azure`, `dropbox`, `r2`, `gdrive`, `gmail`, `gsites`, `web`, `oracle`, `sharepoint-cert` and `all`. Connectors not listed here (GitHub, Confluence, Notion, Jira, Slack and most others) need no extra.
For production, a Docker image is published at `ghcr.io/open-webui/oikb`. See [Running the daemon](/features/knowledge-base-sync/daemon#deployment).
For production, a Docker image is published at `ghcr.io/open-webui/oikb`. See [Running the daemon](/ecosystem/knowledge-base-sync/daemon#deployment).
---
@@ -164,7 +164,7 @@ The matching server-side behaviour and the same two endpoints exposed for your o
## Sources and connectors
A **source** is either a local path or a `scheme:target` string. oikb resolves the scheme to a connector, pulls the files and syncs them into the Knowledge Base. Credentials are never written into the source string or `.oikb.yaml`; each connector reads them from **environment variables**, so secrets stay out of your config (pair with [`${VAR}` interpolation](/features/knowledge-base-sync/daemon#the-oikbyaml-config-file) to keep config files committable).
A **source** is either a local path or a `scheme:target` string. oikb resolves the scheme to a connector, pulls the files and syncs them into the Knowledge Base. Credentials are never written into the source string or `.oikb.yaml`; each connector reads them from **environment variables**, so secrets stay out of your config (pair with [`${VAR}` interpolation](/ecosystem/knowledge-base-sync/daemon#the-oikbyaml-config-file) to keep config files committable).
In the table below, `[brackets]` mark optional parts of the source string.
@@ -225,7 +225,7 @@ A few connector notes worth knowing:
## Filtering what gets synced
Narrow a source with include/exclude globs and a size cap. These live under `filter:` in [`.oikb.yaml`](/features/knowledge-base-sync/daemon#the-oikbyaml-config-file):
Narrow a source with include/exclude globs and a size cap. These live under `filter:` in [`.oikb.yaml`](/ecosystem/knowledge-base-sync/daemon#the-oikbyaml-config-file):
```yaml
sources:
@@ -270,13 +270,13 @@ For a local directory you are actively editing, `watch` re-syncs the moment a fi
oikb watch ./docs --kb-id your-kb-id
```
It uses filesystem events (not polling), debounced one second (tune with `--debounce`), and runs until you stop it with Ctrl+C. Good for a live notes folder; for anything remote or unattended, use the [daemon](/features/knowledge-base-sync/daemon) instead.
It uses filesystem events (not polling), debounced one second (tune with `--debounce`), and runs until you stop it with Ctrl+C. Good for a live notes folder; for anything remote or unattended, use the [daemon](/ecosystem/knowledge-base-sync/daemon) instead.
---
## One-shot sync in CI
The Docker image runs as a one-shot command, which makes it a drop-in [GitHub Actions](/features/knowledge-base-sync/daemon#deployment) step to push docs into a Knowledge Base on every merge:
The Docker image runs as a one-shot command, which makes it a drop-in [GitHub Actions](/ecosystem/knowledge-base-sync/daemon#deployment) step to push docs into a Knowledge Base on every merge:
```yaml
- name: Sync docs to Open WebUI
@@ -294,7 +294,7 @@ The Docker image runs as a one-shot command, which makes it a drop-in [GitHub Ac
| Command | What it does |
|---|---|
| `oikb sync <source>` | Incremental sync from a source to a KB (`--kb-id`). Omit `<source>` to sync every entry in [`.oikb.yaml`](/features/knowledge-base-sync/daemon#the-oikbyaml-config-file). |
| `oikb sync <source>` | Incremental sync from a source to a KB (`--kb-id`). Omit `<source>` to sync every entry in [`.oikb.yaml`](/ecosystem/knowledge-base-sync/daemon#the-oikbyaml-config-file). |
| `oikb sync --dry-run` | Preview added/modified/deleted without uploading. |
| `oikb sync --concurrency N` | Upload N files in parallel (default 1, sequential). |
| `oikb sync --max-file-size 50mb` | Skip files above a size. |
@@ -303,7 +303,7 @@ The Docker image runs as a one-shot command, which makes it a drop-in [GitHub Ac
| `oikb watch <dir> --kb-id ID` | Auto-sync a local directory on change (`--debounce`). |
| `oikb init` | Interactive wizard that writes a `.oikb.yaml`. |
| `oikb validate` | Check `.oikb.yaml` syntax. Add `--deep` to also ping Open WebUI, verify the API key and confirm each KB exists. |
| `oikb daemon` | Run the scheduled [daemon](/features/knowledge-base-sync/daemon) with an HTTP API. |
| `oikb daemon` | Run the scheduled [daemon](/ecosystem/knowledge-base-sync/daemon) with an HTTP API. |
| `oikb ls --kb-id ID` | List files in a KB. |
| `oikb status --kb-id ID` | Show a KB's name, file count and total size. |
| `oikb history` | View sync history (`--json`, `--errors`, `--kb-id`, `--clear --days N`). |
@@ -350,7 +350,7 @@ The incremental sync endpoints landed in v0.9.6. Against an older server there i
### The daemon runs as one process
Scheduling and the per-KB locks live in a single process, so the [daemon](/features/knowledge-base-sync/daemon#deployment) is meant to run as one replica. To cover more sources, add entries to one daemon rather than running several copies.
Scheduling and the per-KB locks live in a single process, so the [daemon](/ecosystem/knowledge-base-sync/daemon#deployment) is meant to run as one replica. To cover more sources, add entries to one daemon rather than running several copies.
### Indexing still happens server-side
@@ -374,6 +374,6 @@ oikb uploads fast, but Open WebUI extracts and embeds each new file asynchronous
## See also
- **[Running the daemon →](/features/knowledge-base-sync/daemon)**: scheduled sync, webhooks, the HTTP API, observability, deployment and letting a model trigger syncs.
- **[Running the daemon →](/ecosystem/knowledge-base-sync/daemon)**: scheduled sync, webhooks, the HTTP API, observability, deployment and letting a model trigger syncs.
- **[Knowledge](/features/workspace/knowledge)**: the Knowledge Base feature oikb feeds, including the server-side [sync endpoints](/features/workspace/knowledge#api-access).
- **[OpenAPI / MCP tool servers](/features/extensibility/mcp)**: how the daemon plugs in as a tool the model can call.
+12 -5
View File
@@ -1,19 +1,26 @@
---
sidebar_position: 400
title: "🏢 Open WebUI for Enterprise"
title: "Open WebUI for Enterprise"
---
import { Testimonals } from "@site/src/components/Testimonals";
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
### The AI Platform Trusted by Leading Organizations
Open WebUI is one of the **fastest-growing AI platforms** in the world. Designed for **enterprise deployment**, Open WebUI enables businesses to deploy AI capabilities with **full control** over their data, infrastructure, and roadmap.
Whether you're a startup scaling fast or a Fortune 500 managing global operations, Open WebUI is built for the reliability, security, and flexibility your teams need to deploy AI confidently and securely, **without vendor lock-in**.
![Open WebUI Inc.](/images/enterprise/hero.png)
<ThemedImage
alt="Open WebUI Enterprise platform diagram showing identity, data, deployment, and support connected through self-hosted control"
sources={{
light: useBaseUrl('/images/banners/enterprise-light.svg'),
dark: useBaseUrl('/images/banners/enterprise-dark.svg'),
}}
style={{ width: '100%', margin: '0.25rem 0 1.75rem' }}
/>
### See Open WebUI in Action
@@ -119,4 +126,4 @@ Even if you **don't need an enterprise license**, consider becoming a **sponsor*
Open WebUI is free to use, but building, maintaining, and improving a platform of this scale takes real time, resources, and ongoing engineering work. Sponsorships help fund stability, security, new features, and long-term development.
💙 **[Sponsor Open WebUI](https://github.com/sponsors/tjbck)**
💙 **[Sponsor Open WebUI](https://github.com/sponsors/open-webui)**
+1 -1
View File
@@ -1,6 +1,6 @@
---
sidebar_position: 1200
title: "FAQ"
title: "FAQ"
---
+1 -1
View File
@@ -1,5 +1,5 @@
{
"label": "🔧 Administration",
"label": "Administration",
"position": 46,
"collapsible": true,
"collapsed": true
+1 -1
View File
@@ -6,7 +6,7 @@ title: "Administration"
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 🔧 Administration
# Administration
<ThemedImage
alt="Administration: the Admin Panel dashboard with usage stats and a messages-over-time chart"
@@ -1,5 +1,5 @@
{
"label": "🔐 Authentication & Access",
"label": "Authentication & Access",
"position": 45,
"collapsible": true,
"collapsed": true
@@ -3,7 +3,7 @@ sidebar_position: 500
title: "API Keys"
---
# 🔑 API Keys
# API Keys
**Programmatic access to Open WebUI, for scripts, bots, and integrations.**
@@ -6,7 +6,7 @@ title: "Authentication & Access"
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 🔐 Authentication & Access
# Authentication & Access
<ThemedImage
alt="Authentication & Access: a sign-in card with SSO providers beside a roles and access-control panel"
+1 -1
View File
@@ -1,5 +1,5 @@
{
"label": "📅 Calendar",
"label": "Calendar",
"position": 32,
"collapsible": true,
"collapsed": true
+1 -1
View File
@@ -6,7 +6,7 @@ title: "Calendar"
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 📅 Calendar
# Calendar
<ThemedImage
alt="Calendar: a month grid with color-coded events and a recurring weekday standup, with AI creating events from a natural-language request"
+1 -1
View File
@@ -1,5 +1,5 @@
{
"label": "📢 Channels",
"label": "Channels",
"position": 32,
"collapsible": true,
"collapsed": true
+1 -1
View File
@@ -6,7 +6,7 @@ title: "Channels"
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 💬 Channels
# Channels
<ThemedImage
alt="Channels: a shared #product-launch channel where people and AI models talk in one timeline, summoned with @model mentions"
@@ -1,5 +1,5 @@
{
"label": "💬 Chat & Conversations",
"label": "Chat & Conversations",
"position": 20,
"collapsible": true,
"collapsed": true
@@ -8,7 +8,7 @@ import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
import DocCardList from '@theme/DocCardList';
# 🎙️ Audio
# Audio
<ThemedImage
alt="Chat & Conversations map with the Audio cell highlighted"
@@ -9,7 +9,7 @@ This tutorial is a community contribution and is not supported by the Open WebUI
:::
# Integrating `openai-edge-tts` 🗣️ with Open WebUI
# Integrating `openai-edge-tts` with Open WebUI
## What is `openai-edge-tts`?
@@ -3,7 +3,7 @@ sidebar_position: 5
title: "Autocomplete"
---
# Autocomplete
# Autocomplete
Open WebUI offers an **AI-powered Autocomplete** feature that suggests text completions in real-time as you type your prompt. It acts like a "Copilot" for your chat input, helping you craft prompts faster using your configured task model.
@@ -3,7 +3,7 @@ sidebar_position: 3
title: "Python Code Execution"
---
# 🐍 Python Code Execution
# Python Code Execution
## Overview
@@ -1,6 +1,6 @@
---
sidebar_position: 3
title: "📦 Archived Chats"
title: "Archived Chats"
---
Open WebUI allows you to archive conversations to declutter your sidebar while preserving them for future reference. The **Archived Chats** dashboard lets you manage all your archived conversations in one place.
@@ -1,6 +1,6 @@
---
sidebar_position: 5
title: "📁 File Management"
title: "File Management"
---
Open WebUI provides a comprehensive file management system that allows you to upload, organize, and utilize your documents across various features like Knowledge Bases and RAG.
@@ -1,6 +1,6 @@
---
sidebar_position: 4
title: "💾 Import & Export"
title: "Import & Export"
---
Open WebUI provides tools to backup your chat history and restore it later, or migrate conversations from other platforms.
@@ -1,6 +1,6 @@
---
sidebar_position: 2
title: "🔗 Shared Chats"
title: "Shared Chats"
---
Open WebUI provides a centralized dashboard to manage every chat conversation you have shared. This feature allows users to audit their shared content and quickly revoke access if needed.
@@ -8,7 +8,7 @@ import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
import DocCardList from '@theme/DocCardList';
# 🎨 Image Generation
# Image Generation
<ThemedImage
alt="Chat & Conversations map with the Image Generation cell highlighted"
+1 -1
View File
@@ -7,7 +7,7 @@ slug: /features/chat-conversations
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 💬 Chat & Conversations
# Chat & Conversations
<ThemedImage
alt="Chat & Conversations overview: the Open WebUI core ringed by its capabilities (Chat, Documents, Web Search, Audio, Images, Memory, Data Controls and Connections)"
+1 -1
View File
@@ -6,7 +6,7 @@ title: "Memory & Personalization"
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# Memory & Personalization 🧠
# Memory & Personalization
<ThemedImage
alt="Chat & Conversations map with the Memory cell highlighted"
@@ -3,7 +3,7 @@ sidebar_position: 1
title: "Agentic Search & URL Fetching"
---
# Agentic Web Search & URL Fetching 🌐
# Agentic Web Search & URL Fetching
Open WebUI's web search has evolved from simple result injection to a fully **agentic research system**. By enabling **Native Function Calling (Agentic Mode)**, you allow quality models to independently explore the web, verify facts, and follow links autonomously.
@@ -8,7 +8,7 @@ import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
import DocCardList from '@theme/DocCardList';
# 🌐 Web Search
# Web Search
<ThemedImage
alt="Chat & Conversations map with the Web Search cell highlighted"
@@ -3,7 +3,7 @@ sidebar_position: 10
title: "Save Search Results to Knowledge"
---
# Save Search Results to Knowledge 📚
# Save Search Results to Knowledge
The **Add Web Sources to Knowledge Action** allows you to save web search result URLs directly to your Knowledge Base with a single click. This feature streamlines the process of building a research bank by automating the fetching, sanitizing, and uploading of web content.
-42
View File
@@ -1,42 +0,0 @@
---
title: "Connect to Open WebUI"
sidebar_position: 3
---
# Connect cptr to Open WebUI
cptr ships an **OpenAI-compatible gateway**: it exposes each workspace as a model over `/v1/models` and `/v1/chat/completions`. Point Open WebUI at it as an OpenAI connection and every workspace shows up as a model named `cptr/<workspace>`. Chatting with that model in Open WebUI runs the full cptr agent loop, reading files, editing code and running commands, in that workspace, and the conversation appears in both Open WebUI and the cptr sidebar.
:::info What this does, and what it does not
This lets Open WebUI **drive** a cptr workspace as a model: new chats you start in Open WebUI run through cptr. It is **not** a sync of cptr's existing standalone chats into Open WebUI, and it does not share Open WebUI knowledge bases into cptr.
:::
## Setup
1. **Create a gateway API key in cptr.** Open the **Gateway** admin tab, create a key and copy it. Keys are stored hashed and shown only once.
2. **Note the base URL.** The Gateway tab shows it: your cptr server origin plus `/v1`, for example `http://localhost:8000/v1` (use your host's address if cptr runs elsewhere).
3. **Add cptr as a connection in Open WebUI.** In **Admin Panel > Settings > Connections**, add an **OpenAI API** connection. Set the base URL to the gateway URL from step 2 and paste the API key from step 1.
4. **Add the recommended headers.** The Gateway tab has a one-click copy of the header config. Paste it into the connection's custom headers:
```json
{
"X-OpenWebUI-Chat-Id": "{{CHAT_ID}}",
"X-OpenWebUI-Message-Id": "{{MESSAGE_ID}}",
"X-OpenWebUI-User-Message-Id": "{{USER_MESSAGE_ID}}",
"X-OpenWebUI-User-Message-Parent-Id": "{{USER_MESSAGE_PARENT_ID}}",
"X-OpenWebUI-Task": "{{TASK}}"
}
```
5. **Pick a workspace and chat.** Your workspaces now appear in the Open WebUI model picker as `cptr/<workspace>`. Select one and start a conversation; it runs the cptr agent loop in that workspace.
## Why the headers matter
The `{{...}}` values are Open WebUI's [custom-header placeholders](/reference/env-configuration#enable_forward_user_info_headers), filled in per request from the chat metadata. They give cptr the chat and message lineage it needs to:
- **Branch correctly.** Regenerating or editing a message in Open WebUI creates a matching branch in the cptr sidebar (via `X-OpenWebUI-User-Message-Id` and `X-OpenWebUI-User-Message-Parent-Id`), instead of appending in the wrong place.
- **Ignore background work.** Open WebUI also calls the gateway for title generation, tag extraction and follow-up suggestions. `X-OpenWebUI-Task` tells cptr which requests are background tasks, so it skips them instead of spawning ghost chats or running a full agent loop.
:::caution Requires Open WebUI 0.10.0 or newer
The `{{USER_MESSAGE_ID}}`, `{{USER_MESSAGE_PARENT_ID}}` and `{{TASK}}` placeholders were added in Open WebUI 0.10.0. On 0.9.6 the basic gateway connection still works, you can chat with a workspace as a model, but those three headers are not filled in, so branching and background-task filtering do not work yet.
:::
+1 -1
View File
@@ -1,5 +1,5 @@
{
"label": "🔌 Plugins & Extensibility",
"label": "Plugins & Extensibility",
"position": 40,
"collapsible": true,
"collapsed": true
+1 -1
View File
@@ -6,7 +6,7 @@ sidebar_position: 1
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 🧩 Community Plugins
# Community Plugins
<ThemedImage
alt="The Open WebUI plugin community: Pipe, Tool, Action, Event, Filter and MCP plugin types orbiting the Open WebUI logo amid a constellation of community-built plugins"
+1 -1
View File
@@ -6,7 +6,7 @@ title: "Extensibility"
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 🔌 Extensibility
# Extensibility
<ThemedImage
alt="Open WebUI Extensibility: the Pipe, Filter, Tool, Action and Event plugin types orbiting the Open WebUI logo"
@@ -3,7 +3,7 @@ sidebar_position: 3
title: "Events"
---
# 🔔 Events: Using `__event_emitter__` and `__event_call__` in Open WebUI
# Events: Using `__event_emitter__` and `__event_call__` in Open WebUI
Open WebUI's plugin architecture is not just about processing input and producing output: **it's about real-time, interactive communication with the UI and users**. To make your Tools, Functions, and Pipes more dynamic, Open WebUI provides a built-in event system via the `__event_emitter__` and `__event_call__` helpers.
@@ -9,7 +9,7 @@ This tutorial is a community contribution and is not supported by the Open WebUI
:::
# 🪄 Special Arguments
# Special Arguments
When developping your own `Tools`, `Functions` (`Filters`, `Pipes` or `Actions`), `Pipelines` etc, you can use special arguments explore the full spectrum of what Open-WebUI has to offer.
@@ -3,7 +3,7 @@ sidebar_position: 5
title: "Under the Hood"
---
# 🔧 Under the Hood: What the Plugin Loader Actually Does
# Under the Hood: What the Plugin Loader Actually Does
:::danger ⚠️ Critical Security Warning
**Tools, Functions, Pipes, Filters, and Actions execute arbitrary Python code on your server.** Function creation is restricted to administrators only, and Workspace Tool creation is gated by the `workspace.tools` permission. Granting that permission is equivalent to giving the user shell access to the server. Only install from trusted sources, review code before importing, and restrict creation to trusted administrators. A malicious plugin could access your file system, exfiltrate data, or compromise your entire system. For full details, see the [Plugin Security Warning](/features/extensibility/plugin/).
@@ -3,7 +3,7 @@ sidebar_position: 2
title: "Action Function"
---
# 🎬 Action Function: Custom Interactive Buttons
# Action Function: Custom Interactive Buttons
:::danger ⚠️ Critical Security Warning
**Action Functions execute arbitrary Python code on your server.** Function creation is restricted to administrators only. Only install from trusted sources and review code before importing. A malicious Function could access your file system, exfiltrate data, or compromise your entire system. For full details, see the [Plugin Security Warning](/features/extensibility/plugin/).
@@ -6,7 +6,7 @@ title: "Event Function"
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 🔔 Event Function: React to System Events
# Event Function: React to System Events
<ThemedImage
alt="Event functions react to system events: auth.signup, chat.deleted, system.startup and config.updated flow into an Open WebUI Event function"
@@ -3,7 +3,7 @@ sidebar_position: 2
title: "Functions"
---
# 🧩 Functions
# Functions
:::danger ⚠️ Critical Security Warning
**Functions execute arbitrary Python code on your server.** Function creation is restricted to administrators only. Only install from trusted sources and review code before importing. A malicious Function could access your file system, exfiltrate data, or compromise your entire system. For full details, see the [Plugin Security Warning](/features/extensibility/plugin/).
@@ -3,7 +3,7 @@ sidebar_position: 4
title: "Pipe Function"
---
# 🚰 Pipe Function: Create Custom "Agents/Models"
# Pipe Function: Create Custom"Agents/Models"
:::danger ⚠️ Critical Security Warning
**Pipe Functions execute arbitrary Python code on your server.** Function creation is restricted to administrators only. Only install from trusted sources and review code before importing. A malicious Function could access your file system, exfiltrate data, or compromise your entire system. For full details, see the [Plugin Security Warning](/features/extensibility/plugin/).
+1 -1
View File
@@ -6,7 +6,7 @@ title: "Tools & Functions (Plugins)"
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 🛠️ Tools & Functions
# Tools & Functions
<ThemedImage
alt="Open WebUI plugin types: Pipe, Tool, Action, Event, Filter and MCP orbiting the Open WebUI logo"
@@ -3,7 +3,7 @@ sidebar_position: 9999
title: "Migration Guides"
---
# 🚚 Plugin Migration Guides
# Plugin Migration Guides
Open WebUI occasionally ships releases that require updates to existing Tools, Functions, Pipes, Filters, and Actions. This section collects the per-version migration guides for plugin authors.
@@ -3,7 +3,7 @@ sidebar_position: 1
title: "Migrating to 0.5.0"
---
# 🚚 Migration Guide: Open WebUI 0.4 to 0.5
# Migration Guide: Open WebUI 0.4 to 0.5
Welcome to the Open WebUI 0.5 migration guide! If you're working on existing projects or building new ones, this guide will walk you through the key changes from **version 0.4 to 0.5** and provide an easy-to-follow roadmap for upgrading your Functions. Let's make this transition as smooth as possible! 😊
@@ -3,7 +3,7 @@ sidebar_position: 2
title: "Migrating to 0.9.0"
---
# 🚚 Migration Guide: Upgrading to Open WebUI 0.9.0
# Migration Guide: Upgrading to Open WebUI 0.9.0
This guide covers breaking changes and required updates for Tools, Functions, Pipes, Filters, and Actions when upgrading to **Open WebUI 0.9.0**.
@@ -3,7 +3,7 @@ sidebar_position: 2
title: "Development"
---
# 🔧 Tool Development
# Tool Development
:::danger ⚠️ Critical Security Warning
**Workspace Tools execute arbitrary Python code on your server.** Only install from trusted sources, review code before importing, and restrict Workspace access to trusted administrators only. Granting a user the ability to create or import Tools is equivalent to giving them shell access to the server. For full details, see the [Plugin Security Warning](/features/extensibility/plugin/).
@@ -4,14 +4,14 @@ title: "OpenAPI Tool Servers"
---
# 🌟 OpenAPI Tool Servers
# OpenAPI Tool Servers
This repository provides reference OpenAPI Tool Server implementations making it easy and secure for developers to integrate external tooling and data sources into LLM agents and workflows. Designed for maximum ease of use and minimal learning curve, these implementations utilize the widely adopted [OpenAPI specification](https://www.openapis.org/) as the standard protocol.
By leveraging OpenAPI, we eliminate the need for a proprietary or unfamiliar communication protocol, ensuring you can quickly and confidently build or integrate servers. This means less time spent figuring out custom interfaces and more time building powerful tools that enhance your AI applications.
:::tip A first-party example
The [oikb](/features/knowledge-base-sync) sync daemon is a ready-made OpenAPI tool server. Run it, add its URL under **Settings → Tools**, and a model can trigger Knowledge Base syncs and check their status from chat. See [Let the model trigger syncs](/features/knowledge-base-sync/daemon#let-the-model-trigger-syncs).
The [oikb](/ecosystem/knowledge-base-sync) sync daemon is a ready-made OpenAPI tool server. Run it, add its URL under **Settings → Tools**, and a model can trigger Knowledge Base syncs and check their status from chat. See [Let the model trigger syncs](/ecosystem/knowledge-base-sync/daemon#let-the-model-trigger-syncs).
:::
## ☝️ Why OpenAPI?
+3 -23
View File
@@ -1,6 +1,6 @@
---
sidebar_position: 200
title: "Features"
title: "Features"
---
import ThemedImage from '@theme/ThemedImage';
@@ -65,9 +65,8 @@ Upload files, build knowledge bases, and let the AI retrieve exactly the informa
| 📑 **8 extraction engines** | Tika, Docling, Azure, Mistral OCR, Datalab Marker, MinerU, PaddleOCR, custom loaders |
| 🤖 **Agentic retrieval** | Models search and read your documents autonomously |
| 📄 **Full context mode** | Inject entire documents - no chunking, no guessing |
| 🔄 **Knowledge Base sync** | Keep a KB current with a folder, Git repo, wiki, or storage bucket via [oikb](/features/knowledge-base-sync) |
[**Learn about Knowledge →**](/features/workspace/knowledge) · [**Knowledge Base Sync →**](/features/knowledge-base-sync)
[**Learn about Knowledge →**](/features/workspace/knowledge)
---
@@ -147,30 +146,11 @@ Connect a real computing environment to Open WebUI. The AI writes code, executes
[**Learn about Open Terminal →**](/features/open-terminal)
:::tip
Want the whole machine in a browser tab? See [**cptr**](https://github.com/open-webui/computer) (Open WebUI Computer).
Want the whole machine in a browser tab? See [**Open WebUI Computer**](/ecosystem/computer), a separate Open WebUI project.
:::
---
## 🖥️ Computer (cptr)
<Banner slug="computer" alt="Computer (cptr)" />
**Your computer in a browser tab, from any device. A separate app, not a plugin.**
cptr serves a machine you own to the browser: files, an editor, a terminal and git, built mobile-first. You operate it; AI is an optional helper. Not to be confused with Open Terminal, which is a tool the chat AI drives.
| | |
| :--- | :--- |
| 📱 **Mobile-first** | A full computer from your phone, sessions survive disconnects |
| 🖥️ **Terminal, editor, git** | PTY shell, file editor and a git panel in one tab |
| 🤖 **Optional AI agent** | Bring your own key; it reads, edits and runs in your project |
| 🔑 **Your machine** | Runs on your hardware, full host access like SSH |
[**Learn about Computer (cptr) →**](/features/computer)
---
## 🔌 Extensibility
<Banner slug="extensibility" alt="Extensibility" />
+1 -1
View File
@@ -1,5 +1,5 @@
{
"label": "📝 Notes",
"label": "Notes",
"position": 31,
"collapsible": true,
"collapsed": true
+1 -1
View File
@@ -6,7 +6,7 @@ title: "Notes"
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 📝 Notes
# Notes
<ThemedImage
alt="Notes: a two-pane note editor with an AI chat sidebar, selecting text in the note and asking the AI to edit it in place"
+1 -1
View File
@@ -1,5 +1,5 @@
{
"label": "💻 Open Terminal",
"label": "Open Terminal",
"position": 35,
"collapsible": true,
"collapsed": true
+1 -1
View File
@@ -115,5 +115,5 @@ If you have more than one terminal connected, switching between them in the drop
- **[Build & preview websites →](./use-cases/web-development)**: the files the AI creates appear in the browser
:::tip
Want to browse and edit your real files from any device? [**cptr**](https://github.com/open-webui/computer) puts your entire machine in a browser tab, with a full file browser, terminal, git, and editor.
Want to browse and edit your real files from any device? [**Open WebUI Computer**](/ecosystem/computer) puts your entire machine in a browser tab, with a full file browser, terminal, git, and editor.
:::
+3 -3
View File
@@ -6,7 +6,7 @@ title: "Open Terminal"
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# Open Terminal
# Open Terminal
<ThemedImage
alt="Open Terminal: the Open WebUI core driving a real terminal session in a loop, running commands and reading the output"
@@ -26,7 +26,7 @@ This is where ideas become working software. Ask a question, get a running scrip
![Open WebUI with Open Terminal, file browser sidebar and chat](/images/open-terminal-file-browser.png)
:::tip Looking for "your computer in a browser" instead?
Open Terminal is a tool the **chat AI** drives. If you instead want to operate your own machine from any browser (files, editor, terminal and git, mobile-first), with AI as an optional helper, see [**Computer (cptr)**](/features/computer), a separate Open WebUI project. [Compare the two](/features/computer#cptr-vs-open-terminal).
Open Terminal is a tool the **chat AI** drives. If you instead want to operate your own machine from any browser (files, editor, terminal and git, mobile-first), with AI as an optional helper, see [**Open WebUI Computer**](/ecosystem/computer), a separate Open WebUI project. [Compare the two](/ecosystem/computer#open-webui-computer-vs-open-terminal).
:::
---
@@ -105,4 +105,4 @@ Need isolated, per-user terminal containers for your team? **[Terminals](./termi
## Your Whole Machine
Open Terminal adds a computing environment to Open WebUI. [**cptr**](https://github.com/open-webui/computer) (Open WebUI Computer) is the computer itself: files, terminal, git, editor, and AI in a browser tab, accessible from any device.
Open Terminal adds a computing environment to Open WebUI. [**Open WebUI Computer**](/ecosystem/computer) is the computer itself: files, terminal, git, editor, and AI in a browser tab, accessible from any device.
@@ -195,7 +195,7 @@ The `--config` (path to a TOML config file) and `--cwd` (working directory for t
---
:::tip Looking for the whole machine?
[**cptr**](https://github.com/open-webui/computer) (Open WebUI Computer) is your entire computer in a browser tab: files, terminal, git, editor, and AI, accessible from any device. It also connects to Open WebUI via its gateway API.
[**Open WebUI Computer**](/ecosystem/computer) is your entire computer in a browser tab: files, terminal, git, editor, and AI, accessible from any device. It also connects to Open WebUI via its gateway API.
:::
## Next step
@@ -3,7 +3,7 @@ sidebar_position: 9
title: "App Builder"
---
# 🏗️ Build a Complete Application
# Build a Complete Application
Describe what you want and get a working app with frontend, backend, and database.
@@ -3,7 +3,7 @@ sidebar_position: 10
title: "Code Review"
---
# 🔍 Automated Code Review
# Automated Code Review
Point the AI at a pull request, a branch diff, or a file, and get a detailed code review: security issues, performance problems, style violations, and suggestions for improvement.
@@ -3,7 +3,7 @@ sidebar_position: 8
title: "Competitive Analysis"
---
# 🌐 Competitive Analysis
# Competitive Analysis
Scrape competitor pricing pages and build a comparison.
@@ -3,7 +3,7 @@ sidebar_position: 1
title: "Data Reports"
---
# 📊 Turn Raw Data into a Polished Report
# Turn Raw Data into a Polished Report
Upload messy data, and the AI cleans it, analyzes it, builds charts, and produces a downloadable PDF report.
@@ -3,7 +3,7 @@ sidebar_position: 2
title: "Database Analysis"
---
# 🗄️ Connect to a Database and Analyze It
# Connect to a Database and Analyze It
Connect to your PostgreSQL, MySQL, or SQLite database directly and let the AI explore the schema, run queries, and produce insights, all without writing SQL yourself.
@@ -3,7 +3,7 @@ sidebar_position: 5
title: "Document Comparison"
---
# 📑 Compare Two Versions of a Document
# Compare Two Versions of a Document
Upload two versions of a contract or proposal and get a clear summary of what changed.
@@ -3,7 +3,7 @@ sidebar_position: 4
title: "Email Processing"
---
# 📧 Process a Folder of Emails
# Process a Folder of Emails
Drop a batch of `.eml` files and get a structured spreadsheet with action items and deadlines.
@@ -3,7 +3,7 @@ sidebar_position: 6
title: "Finance Dashboard"
---
# 💰 Personal Finance Dashboard
# Personal Finance Dashboard
Upload bank statements and get a spending analysis with charts.
@@ -3,7 +3,7 @@ sidebar_position: 7
title: "Image Processing"
---
# 📸 Batch Process Images
# Batch Process Images
Resize, watermark, convert, or generate thumbnails for a folder of images.
@@ -3,7 +3,7 @@ sidebar_position: 3
title: "Research Assistant"
---
# 🔍 Research and Summarize Any Topic
# Research and Summarize Any Topic
Give the AI a question, and it gathers information from the web, organizes it, and writes a structured briefing.
@@ -90,5 +90,5 @@ Additional languages (Rust, Go, Java, etc.) can be installed on the fly.
- **[System automation →](./system-automation)**: file management, backups, batch operations
:::tip
Want a persistent environment on your real machine? [**cptr**](https://github.com/open-webui/computer) puts your computer in a browser tab, accessible from any device.
Want a persistent environment on your real machine? [**Open WebUI Computer**](/ecosystem/computer) puts your computer in a browser tab, accessible from any device.
:::
@@ -8,7 +8,7 @@ title: "Software Development"
Open Terminal enables the AI to interact with real codebases: cloning repos, running tests, reading errors, installing dependencies, and iterating on fixes.
:::tip
For a full development environment accessible from any device, see [**cptr**](https://github.com/open-webui/computer). Your computer in a browser tab.
For a full development environment accessible from any device, see [**Open WebUI Computer**](/ecosystem/computer). Your computer in a browser tab.
:::
---
@@ -87,5 +87,5 @@ If a tool isn't installed, the AI can install it on the fly (`sudo apt install .
- **[Build & preview websites →](./web-development)**: create and iterate on web pages
:::tip
Want to automate tasks on your real machine from anywhere? [**cptr**](https://github.com/open-webui/computer) puts your computer in a browser tab, accessible from any device.
Want to automate tasks on your real machine from anywhere? [**Open WebUI Computer**](/ecosystem/computer) puts your computer in a browser tab, accessible from any device.
:::
@@ -88,5 +88,5 @@ If the AI starts more than one server (say, a frontend on port 3000 and a backen
- **[Automate tasks →](./system-automation)**: file management, backups, batch operations
:::tip
Want to preview and iterate on websites from your phone? [**cptr**](https://github.com/open-webui/computer) gives you your whole machine in a browser tab, accessible from any device.
Want to preview and iterate on websites from your phone? [**Open WebUI Computer**](/ecosystem/computer) gives you your whole machine in a browser tab, accessible from any device.
:::
+1 -1
View File
@@ -1,5 +1,5 @@
{
"label": "🧠 Workspace",
"label": "Workspace",
"position": 30,
"collapsible": true,
"collapsed": true
+1 -1
View File
@@ -6,7 +6,7 @@ sidebar_position: 0
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 🧠 Workspace
# Workspace
<ThemedImage
alt="Workspace: the five building blocks (Models, Knowledge, Prompts, Skills, Tools) composing into the Open WebUI core"
+4 -4
View File
@@ -6,7 +6,7 @@ title: "Knowledge"
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 📚 Knowledge
# Knowledge
<ThemedImage
alt="Workspace map with the Knowledge cell highlighted: Models, Knowledge, Prompts, Skills and Tools around the Open WebUI core"
@@ -55,7 +55,7 @@ Attach specific knowledge bases to a model so it only searches what's relevant.
| 🤖 **Agentic retrieval** | Models browse, search, and read your documents autonomously |
| 📄 **Full context mode** | Inject entire documents with no chunking |
| 🗂️ **Nested directories** | Organize files into subdirectories with drag-and-drop reordering |
| 🔄 **Incremental directory sync** | Mirror a local folder into the KB, only new and modified files upload, deletions are removed, folder structure preserved. Mirror remote sources too (Git, Confluence, S3 and more) with [oikb](/features/knowledge-base-sync) |
| 🔄 **Incremental directory sync** | Mirror a local folder into the KB, only new and modified files upload, deletions are removed, folder structure preserved. Mirror remote sources too (Git, Confluence, S3 and more) with [oikb](/ecosystem/knowledge-base-sync) |
| 📦 **Export and API** | Back up knowledge bases as zip files, manage via REST API |
---
@@ -252,7 +252,7 @@ Individual files can be renamed in place from the workspace via the file's item
The **Add Content → Sync Directory** action mirrors a local folder into the knowledge base **incrementally**: the client hashes each local file (SHA-256), the server compares hashes and paths against what is already stored, and only **new**, **modified**, and **deleted** files are touched. Unmodified files (the typical majority) are left alone: no re-upload, no re-embedding. The local folder's subdirectory structure is mirrored in the KB; missing subdirectories are created, and subdirectories that no longer exist locally are removed.
:::tip Syncing a lot of files? Use oikb instead
The in-app **Sync Directory** runs in your browser: it enumerates, hashes and uploads every file client-side. That is fine for a modest folder, but on a **large** set (thousands of files or a multi-gigabyte vault) it gets slow and gives little progress feedback, often sitting for a long time before it even reports the file count. For large or frequently-changing libraries we **strongly recommend** the official [**Knowledge Base Sync (oikb)**](/features/knowledge-base-sync) tool instead: it runs natively with progress bars, parallel uploads and retries, built for exactly this. Point it at the top of your folder and it syncs the entire tree (every subdirectory, recursively) into one Knowledge Base.
The in-app **Sync Directory** runs in your browser: it enumerates, hashes and uploads every file client-side. That is fine for a modest folder, but on a **large** set (thousands of files or a multi-gigabyte vault) it gets slow and gives little progress feedback, often sitting for a long time before it even reports the file count. For large or frequently-changing libraries we **strongly recommend** the official [**Knowledge Base Sync (oikb)**](/ecosystem/knowledge-base-sync) tool instead: it runs natively with progress bars, parallel uploads and retries, built for exactly this. Point it at the top of your folder and it syncs the entire tree (every subdirectory, recursively) into one Knowledge Base.
:::
Behavior to be aware of:
@@ -265,7 +265,7 @@ Behavior to be aware of:
For programmatic use, the same workflow is exposed as two endpoints under [API access](#api-access) below.
:::tip Sync remote sources, or on a schedule
The in-app **Sync Directory** action handles a local folder on your machine. To mirror a **remote** source instead (a GitHub repo, a Confluence space, an S3 bucket and [dozens more](/features/knowledge-base-sync#sources-and-connectors)), or to keep a Knowledge Base current **automatically** on a schedule or on every push, use the official [**Knowledge Base Sync (oikb)**](/features/knowledge-base-sync) companion tool. It drives these same endpoints for you.
The in-app **Sync Directory** action handles a local folder on your machine. To mirror a **remote** source instead (a GitHub repo, a Confluence space, an S3 bucket and [dozens more](/ecosystem/knowledge-base-sync#sources-and-connectors)), or to keep a Knowledge Base current **automatically** on a schedule or on every push, use the official [**Knowledge Base Sync (oikb)**](/ecosystem/knowledge-base-sync) companion tool. It drives these same endpoints for you.
:::
### Exporting
+1 -1
View File
@@ -7,7 +7,7 @@ sidebar_label: "Models"
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 🤖 Models
# Models
<ThemedImage
alt="Workspace map with the Models cell highlighted: Models, Knowledge, Prompts, Skills and Tools around the Open WebUI core"
+1 -1
View File
@@ -6,7 +6,7 @@ title: "Prompts"
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 📝 Prompts
# Prompts
<ThemedImage
alt="Workspace map with the Prompts cell highlighted: Models, Knowledge, Prompts, Skills and Tools around the Open WebUI core"
+1 -1
View File
@@ -7,7 +7,7 @@ sidebar_label: "Skills"
import ThemedImage from '@theme/ThemedImage';
import useBaseUrl from '@docusaurus/useBaseUrl';
# 🧩 Skills
# Skills
<ThemedImage
alt="Workspace map with the Skills cell highlighted: Models, Knowledge, Prompts, Skills and Tools around the Open WebUI core"
+8 -8
View File
@@ -15,7 +15,7 @@ Work through in order, or jump to the section you need:
4. [**Basic RAG**](#basic-rag)
5. [**Web Search**](#web-search)
6. [**Open Terminal**](#open-terminal)
7. [**Computer (cptr)**](#computer-cptr)
7. [**Open WebUI Computer**](#open-webui-computer)
8. [**Troubleshooting**](#troubleshooting)
:::tip Deploying for a team?
@@ -217,24 +217,24 @@ More detail:
- [Use cases: software development, data reports, app builder, research assistant, and more](/features/open-terminal/use-cases/advanced-workflows/)
:::info
[**cptr**](https://github.com/open-webui/computer) (Open WebUI Computer) by the Open WebUI team is your entire computer in a browser tab: files, terminal, git, editor, and AI, accessible from any device. It connects to Open WebUI via its gateway API.
[**Open WebUI Computer**](https://github.com/open-webui/computer) by the Open WebUI team is your entire computer in a browser tab: files, terminal, git, editor, and AI, accessible from any device. It connects to Open WebUI via its gateway API.
:::
---
## Computer (cptr)
## Open WebUI Computer
Open Terminal hands the chat model a quick toolbox to run a task for you inside Open WebUI. **[cptr](/features/computer)** ("computer") is a different thing entirely: a full-blown agentic cowork and coding app in its own right. It is a self-hosted workspace with a terminal, file browser, editor, git and a capable AI agent living in it, that you can reach from anywhere once you have set it up to be reachable.
Open Terminal hands the chat model a quick toolbox to run a task for you inside Open WebUI. **[Open WebUI Computer](/ecosystem/computer)** is a different thing entirely: a full-blown agentic cowork and coding app in its own right. It is a self-hosted workspace with a terminal, file browser, editor, git and a capable AI agent living in it, that you can reach from anywhere once you have set it up to be reachable.
It is a **separate Open WebUI project**, but a first-class, fully integratable one. cptr's OpenAI-compatible gateway exposes each workspace as a model, so you plug a cptr workspace straight into Open WebUI as a connection and drive the whole agentic coding loop (branching and all) from your normal chat UI. The same workspaces are reachable from Telegram, Discord, Slack and other apps too, so a project follows you onto whatever device you happen to be on.
It is a **separate Open WebUI project**, but a first-class, fully integratable one. Open WebUI Computer's OpenAI-compatible gateway exposes each workspace as a model, so you plug an Open WebUI Computer workspace straight into Open WebUI as a connection and drive the whole agentic coding loop (branching and all) from your normal chat UI. The same workspaces are reachable from Telegram, Discord, Slack and other apps too, so a project follows you onto whatever device you happen to be on.
:::tip Use both, they do different jobs
Open Terminal is the model's scratchpad for one-off tasks inside an Open WebUI chat. cptr is a standing coding workspace you own and operate from anywhere, and you can run both at once: Open Terminal for quick in-chat jobs, a connected cptr workspace when you want a real project environment with the agent set up in it.
Open Terminal is the model's scratchpad for one-off tasks inside an Open WebUI chat. Open WebUI Computer is a standing coding workspace you own and operate from anywhere, and you can run both at once: Open Terminal for quick in-chat jobs, a connected Open WebUI Computer workspace when you want a real project environment with the agent set up in it.
:::
More detail:
- [Computer (cptr): your computer in a browser](/features/computer)
- [Connect a cptr workspace to Open WebUI](/features/computer/open-webui)
- [Open WebUI Computer: your computer in a browser](/ecosystem/computer)
- [Connect an Open WebUI Computer workspace to Open WebUI](/ecosystem/computer/open-webui)
---
+1 -1
View File
@@ -1,6 +1,6 @@
---
sidebar_position: 100
title: "🚀 Getting Started"
title: "Getting Started"
---
# Getting Started with Open WebUI
@@ -3,7 +3,7 @@ sidebar_position: 0
title: "Connect a Provider"
---
# 🔌 Connect a Provider
# Connect a Provider
**Connect Open WebUI to your model provider and start chatting in minutes.**
@@ -1,28 +1,28 @@
---
sidebar_position: 0
title: "Open WebUI Computer (cptr)"
sidebar_label: "Open WebUI Computer (cptr)"
title: "Open WebUI Computer"
sidebar_label: "Open WebUI Computer"
---
# Open WebUI Computer (cptr)
# Open WebUI Computer
**Open WebUI Computer. Connect `cptr` to Open WebUI.**
**Connect Open WebUI Computer to Open WebUI.**
[**cptr**](https://github.com/open-webui/computer) puts your computer in a browser tab. Files, terminal, git, editor, AI, accessible from any device. It runs on your machine and serves it to you over HTTP.
[**Open WebUI Computer**](https://github.com/open-webui/computer) puts your computer in a browser tab. Files, terminal, git, editor, AI, accessible from any device. It runs on your machine and serves it to you over HTTP.
cptr exposes an **OpenAI-compatible gateway API** (`/v1/chat/completions`). Each workspace appears as a model in Open WebUI with full tool access: file operations, terminal commands, web search, and more.
Open WebUI Computer exposes an **OpenAI-compatible gateway API** (`/v1/chat/completions`). Each workspace appears as a model in Open WebUI with full tool access: file operations, terminal commands, web search, and more.
:::info What You'll Need
- **cptr** installed on your machine (`pip install cptr` or `uvx cptr@latest run`)
- The `cptr` package installed on your machine (`pip install cptr` or `uvx cptr@latest run`)
- **Open WebUI** running (via Docker, pip, or desktop app)
- **~5 minutes** to complete this setup
:::
---
## Step 1: Install and Start cptr
## Step 1: Install and Start Open WebUI Computer
If you haven't installed cptr yet:
If you haven't installed the `cptr` package yet:
```bash
pip install cptr
@@ -35,7 +35,7 @@ Or with [uv](https://docs.astral.sh/uv/):
uvx cptr@latest run
```
cptr starts on port **8000** by default and opens in your browser.
Open WebUI Computer starts on port **8000** by default and opens in your browser.
To allow access from other devices on the network:
@@ -47,7 +47,7 @@ cptr run --host 0.0.0.0
## Step 2: Create an API Key
1. Open cptr in your browser.
1. Open Open WebUI Computer in your browser.
2. Go to **Settings > Gateway**.
3. Enter a name for the key and click **Create Key**.
4. Copy the key (`sk-cptr-...`). You will only see it once.
@@ -82,10 +82,10 @@ http://host.docker.internal:8000/v1
## Step 4: Configure Custom Headers (Recommended)
For the best experience, set up custom request headers so that Open WebUI passes conversation metadata to cptr. This enables proper session mapping (conversations stay in sync between both interfaces) and ensures background tasks like title generation are handled efficiently.
For the best experience, set up custom request headers so that Open WebUI passes conversation metadata to Open WebUI Computer. This enables proper session mapping (conversations stay in sync between both interfaces) and ensures background tasks like title generation are handled efficiently.
1. In Open WebUI, go to **Admin Settings > Connections**.
2. Find the cptr connection and click the **⋮** menu, then **Custom Headers**.
2. Find the Open WebUI Computer connection and click the **⋮** menu, then **Custom Headers**.
3. Paste the following:
```json
@@ -99,24 +99,24 @@ For the best experience, set up custom request headers so that Open WebUI passes
```
:::tip
You can copy these headers directly from cptr's **Settings > Gateway** page.
You can copy these headers directly from Open WebUI Computer's **Settings > Gateway** page.
:::
---
## Step 5: Start Chatting
Your cptr workspaces should now appear in the model dropdown as `cptr/<workspace-name>`. Select one and start chatting. The AI has full access to that workspace: files, terminal, web search, and any configured tools.
Your Open WebUI Computer workspaces should now appear in the model dropdown as `cptr/<workspace-name>`. Select one and start chatting. The AI has full access to that workspace: files, terminal, web search, and any configured tools.
Conversations are synced. Work done through Open WebUI appears in cptr's sidebar, and vice versa.
Conversations are synced. Work done through Open WebUI appears in Open WebUI Computer's sidebar, and vice versa.
---
## Choosing a Gateway Model
By default, cptr uses the first available model connection for gateway requests. To use a specific model:
By default, Open WebUI Computer uses the first available model connection for gateway requests. To use a specific model:
1. In cptr, go to **Settings > Gateway**.
1. In Open WebUI Computer, go to **Settings > Gateway**.
2. Select a model from the dropdown.
3. Click **Save**.
@@ -133,7 +133,7 @@ echo "anthropic/claude-sonnet-4-20250514" > /path/to/workspace/.cptr/model
### No models appear in the dropdown
- Verify the URL includes `/v1`: `http://localhost:8000/v1` (not just `:8000`)
- Check that cptr is running and accessible
- Check that Open WebUI Computer is running and accessible
- Confirm the API key is correct
### Connection test passes but no models load
@@ -150,11 +150,11 @@ docker run --add-host=host.docker.internal:host-gateway ...
### Conversations not syncing
Make sure the custom headers from Step 4 are configured. Without them, cptr creates a new chat for each request instead of continuing the existing conversation.
Make sure the custom headers from Step 4 are configured. Without them, Open WebUI Computer creates a new chat for each request instead of continuing the existing conversation.
---
## Learn More
- [cptr on GitHub](https://github.com/open-webui/computer)
- [Open WebUI Computer on GitHub](https://github.com/open-webui/computer)
- [Open WebUI Connections](/getting-started/quick-start/connect-a-provider/starting-with-openai-compatible)
@@ -3,7 +3,7 @@ sidebar_position: 0
title: "Connect an Agent"
---
# 🤖 Connect an Agent
# Connect an Agent
**Use Open WebUI as the chat frontend for autonomous AI agents.**
@@ -32,7 +32,7 @@ The agent decides when and how to use these tools based on your message, and Ope
| Agent | Description | Guide |
|-------|-------------|-------|
| **cptr** (Open WebUI Computer) | Your computer in a browser tab, by the Open WebUI team. Each workspace connects to Open WebUI as a model with full tool access via an OpenAI-compatible gateway. | [Set up cptr →](/getting-started/quick-start/connect-an-agent/cptr) |
| **Open WebUI Computer** | Your computer in a browser tab, by the Open WebUI team. Each workspace connects to Open WebUI as a model with full tool access via an OpenAI-compatible gateway. | [Set up Open WebUI Computer →](/getting-started/quick-start/connect-an-agent/cptr) |
| **Hermes Agent** | Autonomous agent by Nous Research with terminal, file ops, web search, memory, and extensible skills | [Set up Hermes Agent →](/getting-started/quick-start/connect-an-agent/hermes-agent) |
| **OpenClaw** | Open-source self-hosted agent framework with shell access, file operations, web browsing, and messaging channel integrations | [Set up OpenClaw →](/getting-started/quick-start/connect-an-agent/openclaw) |
+3 -3
View File
@@ -1,7 +1,7 @@
---
sidebar_position: 0
slug: /
title: 🏡 Home
title: Home
hide_title: true
---
@@ -78,7 +78,7 @@ Installed Open WebUI but not sure where to start? The [**Essentials for Open Web
- [**Quick Start**](/getting-started/quick-start): Docker, Python, Kubernetes install options
- [**Connect a Provider**](/getting-started/quick-start/connect-a-provider): Ollama, OpenAI, Anthropic, vLLM, and more
- [**Essentials for Open WebUI**](/getting-started/essentials): Start here after your first install. Plugins, tool calling, task models, context management, RAG, Open Terminal.
- [**Connect an Agent**](/getting-started/quick-start/connect-an-agent): Open WebUI Computer (`cptr`), Hermes Agent, OpenClaw, and other autonomous AI agents
- [**Connect an Agent**](/getting-started/quick-start/connect-an-agent): Open WebUI Computer, Hermes Agent, OpenClaw, and other autonomous AI agents
- [**Updating**](/getting-started/updating): Keep your instance current
- [**Development Branch**](/getting-started/quick-start): Help test the latest changes before stable release
- [**Advanced Topics**](/getting-started/advanced-topics): Scaling, logging, and advanced configuration
@@ -97,7 +97,7 @@ Installed Open WebUI but not sure where to start? The [**Essentials for Open Web
## Also by Open WebUI
- [**cptr**](https://github.com/open-webui/computer) (Open WebUI Computer): Your computer in a browser tab. Files, terminal, git, editor, and AI, accessible from any device. [Connect it to Open WebUI →](/getting-started/quick-start/connect-an-agent/cptr)
- [**Open WebUI Computer**](https://github.com/open-webui/computer): Your computer in a browser tab. Files, terminal, git, editor, and AI, accessible from any device. [Connect it to Open WebUI →](/getting-started/quick-start/connect-an-agent/cptr)
- [**open-terminal**](https://github.com/open-webui/open-terminal): Give your AI a real computer. Sandboxed terminal, file browser, and code execution for Open WebUI.
- [**oikb**](https://github.com/open-webui/oikb): Keep your Open WebUI knowledge bases in sync. Watches local folders, GitHub repos, S3 buckets, Confluence, and 40+ other sources.
- [**mcpo**](https://github.com/open-webui/mcpo): MCP-to-OpenAPI proxy. Use any MCP tool server with Open WebUI (or any OpenAPI client) without custom glue code.
+3 -3
View File
@@ -1,6 +1,6 @@
---
sidebar_position: 1900
title: "⚖️ Open WebUI License"
title: "Open WebUI License"
---
@@ -19,7 +19,7 @@ As a small, independent team building mission-critical AI tooling, we rely on fa
And for those who prefer a fully permissive path, **[anyone can still fork from v0.6.5 with zero restrictions and build from there however they choose](https://github.com/open-webui/open-webui/blob/main/LICENSE_HISTORY)**. Its a simple, balanced step that protects the ecosystem, strengthens the project, and **ensures we can sustain our mission of empowering everyone**.
:::
If you've been following Open WebUIs journey, you know our goal has always been: empower everyone with cutting-edge AI, with as few barriers as possible. Open WebUI is an independent project, built and maintained by a small, dedicated core team. Over the last year, weve poured **countless hours, late nights, and real financial resources** into making this the best tool we can, **and we trust our users enough to keep it free and open**.
If you've been following Open WebUIs journey, you know our goal has always been: empower everyone with cutting-edge AI, with as few barriers as possible. Open WebUI is an independent project, built and maintained by a small, dedicated core team. Over the years, weve poured **countless hours, late nights, and real financial resources** into making this the best tool we can, **and we trust our users enough to keep it free and open**.
But with Open WebUIs rapid growth, we began seeing a pattern that put real pressure on the projects **long-term sustainability**: some groups were stripping out the branding, repackaging our work as their own, and monetizing it without any acknowledgment or participation. This wasnt just about credit, it created confusion for end users, **obscured the projects availability as free software**, and made it harder for people to understand where the software came from. Worse, these same groups often came back to us for fixes, support, and updates, placing extreme strain on a small, independent team for products they were profiting from, quietly shifting the burden of their commercial offerings. That dynamic ultimately drained time, focus, our limited bandwidth and resources away from the people were actually here to serve: **the real community**.
@@ -296,4 +296,4 @@ If youre ever unsure, please feel free to contact us and share your planned d
*This page is provided for informational purposes only and does not constitute legal advice. For exact and legally binding terms, refer to the full text of the [LICENSE](https://github.com/open-webui/open-webui/blob/main/LICENSE).*
**Thank you for respecting the Open WebUI community, our contributors, and our projects future.**
**Thank you for respecting the Open WebUI community, our contributors, and our projects future.**
+1 -1
View File
@@ -1,6 +1,6 @@
---
sidebar_position: 2000
title: "🎯 Our Mission"
title: "Our Mission"
---
## Bring Intelligence Home
+1 -1
View File
@@ -1,4 +1,4 @@
{
"label": "📖 Reference",
"label": "Reference",
"position": 150
}
+1 -1
View File
@@ -32,7 +32,7 @@ Please note that `ConfigVar` environment variables are clearly marked as such in
To disable this behavior and force Open WebUI to always use your environment variables (ignoring the database), set `ENABLE_PERSISTENT_CONFIG` to `False`.
**CRITICAL WARNING:** When `ENABLE_PERSISTENT_CONFIG` is `False`, you may still be able to edit settings in the Admin UI. However, these changes are **NOT saved permanently**. They will persist only for the current session and will be **lost** when you restart the container, as the system will revert to the values defined in your environment variables.
**CRITICAL WARNING:** When `ENABLE_PERSISTENT_CONFIG` is `False`, you may still be able to edit settings in the Admin UI. However, these changes are **NOT saved**.
:::
+1 -1
View File
@@ -1,6 +1,6 @@
---
sidebar_position: 150
title: "📖 Reference"
title: "Reference"
---
# Reference
+1 -1
View File
@@ -3,7 +3,7 @@ sidebar_position: 6
title: "Monitoring"
---
# 📊 Monitoring
# Monitoring
**Know when something breaks before your users do.**
+3 -3
View File
@@ -1,9 +1,9 @@
---
sidebar_position: 1400
title: "🛣️ Roadmap"
title: "Roadmap"
---
# 🛣️ Roadmap
# Roadmap
Open WebUI is building the AI interface that aims to be the only one you need on your desktop. Here's where we're going.
@@ -72,4 +72,4 @@ Everything on this page is a step toward that goal.
Want to help us ship faster? Run the [dev branch](https://github.com/open-webui/open-webui), test upcoming features, and report what you find. Every bug caught early lets us tackle more.
For discussion and real-time progress, join us on [Discord](https://discord.gg/5rJgQTnV4s) or follow development on [GitHub](https://github.com/open-webui/open-webui).
For discussion and real-time progress, join us on [Discord](https://discord.gg/5rJgQTnV4s) or follow development on [GitHub](https://github.com/open-webui/open-webui).
+1 -1
View File
@@ -1,4 +1,4 @@
{
"label": "⚖️ Accepted Risks",
"label": "Accepted Risks",
"position": 101
}
+1 -1
View File
@@ -1,6 +1,6 @@
---
sidebar_position: 0
title: "⚖️ Accepted Risks"
title: "Accepted Risks"
---
# Known &amp; Accepted Risks
+1 -1
View File
@@ -1,6 +1,6 @@
---
sidebar_position: 1500
title: "🛡️ Security"
title: "Security"
---
# Security
+1 -1
View File
@@ -1,6 +1,6 @@
---
sidebar_position: 0
title: "📄 Vendor Dispositions"
title: "Vendor Dispositions"
---
# Vendor Dispositions
+2 -2
View File
@@ -1,11 +1,11 @@
---
sidebar_position: 1800
title: "💖 Sponsorships"
title: "Sponsorships"
---
## The Impact of Your Support
[![Image Description](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/tjbck)
[![Image Description](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/open-webui)
As Open WebUI grows, the tasks and challenges we face expand as well. [Tim](/team) is at the heart of this project, tirelessly working to ensure all aspects of Open WebUI not only function but thrive. Yet, imagine the additional improvements we could make with a little extra support.

Some files were not shown because too many files have changed in this diff Show More