From f4dffc6bdb6d401fe2316963f37149c0ce70394b Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 20:17:20 -0500 Subject: [PATCH 01/25] refac --- static/images/banners/administration-dark.svg | 55 ++++++++-------- .../images/banners/administration-light.svg | 55 ++++++++-------- .../banners/authentication-access-dark.svg | 56 ++++++++-------- .../banners/authentication-access-light.svg | 56 ++++++++-------- static/images/banners/calendar-dark.svg | 52 +++++++-------- static/images/banners/calendar-light.svg | 52 +++++++-------- static/images/banners/channels-dark.svg | 58 +++++++--------- static/images/banners/channels-light.svg | 58 +++++++--------- .../banners/chat-conversations-audio-dark.svg | 41 +++++++----- .../chat-conversations-audio-light.svg | 41 +++++++----- .../banners/chat-conversations-chat-dark.svg | 41 +++++++----- .../banners/chat-conversations-chat-light.svg | 41 +++++++----- .../chat-conversations-connections-dark.svg | 41 +++++++----- .../chat-conversations-connections-light.svg | 41 +++++++----- .../banners/chat-conversations-dark.svg | 41 +++++++----- .../banners/chat-conversations-data-dark.svg | 41 +++++++----- .../banners/chat-conversations-data-light.svg | 41 +++++++----- .../chat-conversations-documents-dark.svg | 41 +++++++----- .../chat-conversations-documents-light.svg | 41 +++++++----- .../chat-conversations-images-dark.svg | 41 +++++++----- .../chat-conversations-images-light.svg | 41 +++++++----- .../banners/chat-conversations-light.svg | 41 +++++++----- .../chat-conversations-memory-dark.svg | 41 +++++++----- .../chat-conversations-memory-light.svg | 41 +++++++----- .../chat-conversations-websearch-dark.svg | 41 +++++++----- .../chat-conversations-websearch-light.svg | 41 +++++++----- static/images/banners/community-dark.svg | 66 ++++++++----------- static/images/banners/community-light.svg | 66 ++++++++----------- static/images/banners/computer-dark.svg | 62 ++++++++--------- static/images/banners/computer-light.svg | 62 ++++++++--------- static/images/banners/event-function-dark.svg | 54 ++++++++------- .../images/banners/event-function-light.svg | 54 ++++++++------- static/images/banners/extensibility-dark.svg | 46 +++++++------ static/images/banners/extensibility-light.svg | 46 +++++++------ static/images/banners/features-dark.svg | 49 +++++++------- static/images/banners/features-light.svg | 49 +++++++------- static/images/banners/kbsync-dark.svg | 48 +++++++------- static/images/banners/kbsync-light.svg | 48 +++++++------- static/images/banners/knowledge-dark.svg | 39 +++++++---- static/images/banners/knowledge-light.svg | 39 +++++++---- static/images/banners/notes-dark.svg | 59 +++++++---------- static/images/banners/notes-light.svg | 59 +++++++---------- static/images/banners/terminal-dark.svg | 55 ++++++++-------- static/images/banners/terminal-light.svg | 55 ++++++++-------- static/images/banners/workspace-dark.svg | 41 +++++++----- .../banners/workspace-knowledge-dark.svg | 41 +++++++----- .../banners/workspace-knowledge-light.svg | 41 +++++++----- static/images/banners/workspace-light.svg | 41 +++++++----- .../images/banners/workspace-models-dark.svg | 41 +++++++----- .../images/banners/workspace-models-light.svg | 41 +++++++----- .../images/banners/workspace-prompts-dark.svg | 41 +++++++----- .../banners/workspace-prompts-light.svg | 41 +++++++----- .../images/banners/workspace-skills-dark.svg | 41 +++++++----- .../images/banners/workspace-skills-light.svg | 41 +++++++----- 54 files changed, 1394 insertions(+), 1152 deletions(-) diff --git a/static/images/banners/administration-dark.svg b/static/images/banners/administration-dark.svg index c7a816c13..a260ac1af 100644 --- a/static/images/banners/administration-dark.svg +++ b/static/images/banners/administration-dark.svg @@ -1,32 +1,29 @@ - + - - - - - - + - - - - - - - - - Admin Panel - DashboardUsersEvaluationsBannersSettings - - Overview - Last 30 days - Users1,284+12%Messages48.2k+8%Active now86 - - Messages over time - - - - + + + + + + OPEN WEBUI + ACCESS CONTROL + Administration + policy / roles / audit + 01POLICY MATRIX02ROLE SCOPES03AUDIT TRAIL + + + + + + + + VIEWWRITERUNADMINOWNEREDITORMEMBERGUESTSCOPE LOCKED - - \ No newline at end of file + + + + DOCS + ACCESS + diff --git a/static/images/banners/administration-light.svg b/static/images/banners/administration-light.svg index a1dc17320..f6bb5c139 100644 --- a/static/images/banners/administration-light.svg +++ b/static/images/banners/administration-light.svg @@ -1,32 +1,29 @@ - + - - - - - - + - - - - - - - - - Admin Panel - DashboardUsersEvaluationsBannersSettings - - Overview - Last 30 days - Users1,284+12%Messages48.2k+8%Active now86 - - Messages over time - - - - + + + + + + OPEN WEBUI + ACCESS CONTROL + Administration + policy / roles / audit + 01POLICY MATRIX02ROLE SCOPES03AUDIT TRAIL + + + + + + + + VIEWWRITERUNADMINOWNEREDITORMEMBERGUESTSCOPE LOCKED - - \ No newline at end of file + + + + DOCS + ACCESS + diff --git a/static/images/banners/authentication-access-dark.svg b/static/images/banners/authentication-access-dark.svg index af3b313d7..3b60c42d5 100644 --- a/static/images/banners/authentication-access-dark.svg +++ b/static/images/banners/authentication-access-dark.svg @@ -1,33 +1,29 @@ - + - - - - + - - - - - - - - Sign in to Open WebUI - you@company.com - Continue - or - Microsoft - Google - SSO - - Access & Roles - Groups - - AAlex Chen - AdminSSam Lee - UserPPriya N. - UserJJordan Kim - Pending + + + + + + OPEN WEBUI + IDENTITY LAYER + Authentication + keys / sessions / trust + 01IDENTITY02SESSION03BOUNDARY + + + + + + + + USERSESSIONTOKENACCESS - - \ No newline at end of file + + + + DOCS + IDENTITY + diff --git a/static/images/banners/authentication-access-light.svg b/static/images/banners/authentication-access-light.svg index 42587b8ec..7399581af 100644 --- a/static/images/banners/authentication-access-light.svg +++ b/static/images/banners/authentication-access-light.svg @@ -1,33 +1,29 @@ - + - - - - + - - - - - - - - Sign in to Open WebUI - you@company.com - Continue - or - Microsoft - Google - SSO - - Access & Roles - Groups - - AAlex Chen - AdminSSam Lee - UserPPriya N. - UserJJordan Kim - Pending + + + + + + OPEN WEBUI + IDENTITY LAYER + Authentication + keys / sessions / trust + 01IDENTITY02SESSION03BOUNDARY + + + + + + + + USERSESSIONTOKENACCESS - - \ No newline at end of file + + + + DOCS + IDENTITY + diff --git a/static/images/banners/calendar-dark.svg b/static/images/banners/calendar-dark.svg index bf2958ae4..64b6f98a5 100644 --- a/static/images/banners/calendar-dark.svg +++ b/static/images/banners/calendar-dark.svg @@ -1,29 +1,29 @@ - + - - - - - + - - - - - - March2026 - Today - - SMTWTFS12345678910111213141516171819202122232425262728293031 - - - - - - - “Standup every weekday - at 9am” - + + + + + + OPEN WEBUI + SCHEDULED OPERATIONS + Calendar + time / queue / handoff + 01SCHEDULE02QUEUE03HANDOFF + + + + + + + + T+00T+01T+02T+03HANDOFF WINDOW - - \ No newline at end of file + + + + DOCS + TIMELINE + diff --git a/static/images/banners/calendar-light.svg b/static/images/banners/calendar-light.svg index 685f6a8ed..a5cc43cdd 100644 --- a/static/images/banners/calendar-light.svg +++ b/static/images/banners/calendar-light.svg @@ -1,29 +1,29 @@ - + - - - - - + - - - - - - March2026 - Today - - SMTWTFS12345678910111213141516171819202122232425262728293031 - - - - - - - “Standup every weekday - at 9am” - + + + + + + OPEN WEBUI + SCHEDULED OPERATIONS + Calendar + time / queue / handoff + 01SCHEDULE02QUEUE03HANDOFF + + + + + + + + T+00T+01T+02T+03HANDOFF WINDOW - - \ No newline at end of file + + + + DOCS + TIMELINE + diff --git a/static/images/banners/channels-dark.svg b/static/images/banners/channels-dark.svg index c3f6fbe27..b18531bfa 100644 --- a/static/images/banners/channels-dark.svg +++ b/static/images/banners/channels-dark.svg @@ -1,43 +1,29 @@ - + - - - - + - - - - - + + + + - - #product-launch - SA - +6 - + OPEN WEBUI + CONVERSATION ROUTING + Channels + threads / teams / context + 01THREADS02TEAMS03CONTEXT - - S - Sarah10:24 - @gpt-5what stands out in the Q3 numbers? - - - gpt-5 - AI - + + + - - A - Alex10:25 - @claudeagree? anything missing? - 3 - - - - @Message #product-launch - + + TEAMOPSUSERBOTCHANNEL + - - \ No newline at end of file + + + DOCS + ROUTING + diff --git a/static/images/banners/channels-light.svg b/static/images/banners/channels-light.svg index d42598195..27926443a 100644 --- a/static/images/banners/channels-light.svg +++ b/static/images/banners/channels-light.svg @@ -1,43 +1,29 @@ - + - - - - + - - - - - + + + + - - #product-launch - SA - +6 - + OPEN WEBUI + CONVERSATION ROUTING + Channels + threads / teams / context + 01THREADS02TEAMS03CONTEXT - - S - Sarah10:24 - @gpt-5what stands out in the Q3 numbers? - - - gpt-5 - AI - + + + - - A - Alex10:25 - @claudeagree? anything missing? - 3 - - - - @Message #product-launch - + + TEAMOPSUSERBOTCHANNEL + - - \ No newline at end of file + + + DOCS + ROUTING + diff --git a/static/images/banners/chat-conversations-audio-dark.svg b/static/images/banners/chat-conversations-audio-dark.svg index 396a74a8d..8782acca0 100644 --- a/static/images/banners/chat-conversations-audio-dark.svg +++ b/static/images/banners/chat-conversations-audio-dark.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ChatDocumentsWeb SearchImagesMemoryData ControlsConnections - Audio - - + + + + + + OPEN WEBUI + VOICE INTERFACE + Audio + speech / playback / notes + 01SPEECH02PLAYBACK03NOTES + + + + + + + + TRANSCRIPT / 00:34 - - \ No newline at end of file + + + + DOCS + AUDIO + diff --git a/static/images/banners/chat-conversations-audio-light.svg b/static/images/banners/chat-conversations-audio-light.svg index 8a4ee7d51..a69db0e70 100644 --- a/static/images/banners/chat-conversations-audio-light.svg +++ b/static/images/banners/chat-conversations-audio-light.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ChatDocumentsWeb SearchImagesMemoryData ControlsConnections - Audio - - + + + + + + OPEN WEBUI + VOICE INTERFACE + Audio + speech / playback / notes + 01SPEECH02PLAYBACK03NOTES + + + + + + + + TRANSCRIPT / 00:34 - - \ No newline at end of file + + + + DOCS + AUDIO + diff --git a/static/images/banners/chat-conversations-chat-dark.svg b/static/images/banners/chat-conversations-chat-dark.svg index a9a8696ed..a356fb545 100644 --- a/static/images/banners/chat-conversations-chat-dark.svg +++ b/static/images/banners/chat-conversations-chat-dark.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - DocumentsWeb SearchAudioImagesMemoryData ControlsConnections - Chat - - + + + + + + OPEN WEBUI + LIVE EXECUTION + Chat + messages / tools / review + 01MESSAGE02TOOL CALL03REVIEW + + + + + + + + USER MESSAGETOOL CALLRESULTREVIEW - - \ No newline at end of file + + + + DOCS + CHAT + diff --git a/static/images/banners/chat-conversations-chat-light.svg b/static/images/banners/chat-conversations-chat-light.svg index f34eaec1b..0e6cbf663 100644 --- a/static/images/banners/chat-conversations-chat-light.svg +++ b/static/images/banners/chat-conversations-chat-light.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - DocumentsWeb SearchAudioImagesMemoryData ControlsConnections - Chat - - + + + + + + OPEN WEBUI + LIVE EXECUTION + Chat + messages / tools / review + 01MESSAGE02TOOL CALL03REVIEW + + + + + + + + USER MESSAGETOOL CALLRESULTREVIEW - - \ No newline at end of file + + + + DOCS + CHAT + diff --git a/static/images/banners/chat-conversations-connections-dark.svg b/static/images/banners/chat-conversations-connections-dark.svg index f93d8d7c3..dcd911cef 100644 --- a/static/images/banners/chat-conversations-connections-dark.svg +++ b/static/images/banners/chat-conversations-connections-dark.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ChatDocumentsWeb SearchAudioImagesMemoryData Controls - Connections - - + + + + + + OPEN WEBUI + MODEL FABRIC + Connections + providers / endpoints / keys + 01PROVIDERS02ENDPOINTS03KEYS + + + + + + + + PROVIDER APROVIDER BPROVIDER CPROVIDER DROUTER - - \ No newline at end of file + + + + DOCS + CONNECTIONS + diff --git a/static/images/banners/chat-conversations-connections-light.svg b/static/images/banners/chat-conversations-connections-light.svg index a174a944c..1196b9614 100644 --- a/static/images/banners/chat-conversations-connections-light.svg +++ b/static/images/banners/chat-conversations-connections-light.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ChatDocumentsWeb SearchAudioImagesMemoryData Controls - Connections - - + + + + + + OPEN WEBUI + MODEL FABRIC + Connections + providers / endpoints / keys + 01PROVIDERS02ENDPOINTS03KEYS + + + + + + + + PROVIDER APROVIDER BPROVIDER CPROVIDER DROUTER - - \ No newline at end of file + + + + DOCS + CONNECTIONS + diff --git a/static/images/banners/chat-conversations-dark.svg b/static/images/banners/chat-conversations-dark.svg index 1a6daf7c3..293dc09b0 100644 --- a/static/images/banners/chat-conversations-dark.svg +++ b/static/images/banners/chat-conversations-dark.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - - ChatDocumentsWeb SearchAudioImagesMemoryData ControlsConnections - - + + + + + + OPEN WEBUI + AGENT WORKSPACE + Conversations + chat / files / terminal + 01CHAT02FILES03TERMINAL + + + + + + + + $ run - - \ No newline at end of file + + + + DOCS + WORKSPACE + diff --git a/static/images/banners/chat-conversations-data-dark.svg b/static/images/banners/chat-conversations-data-dark.svg index fcb1fd681..451af7353 100644 --- a/static/images/banners/chat-conversations-data-dark.svg +++ b/static/images/banners/chat-conversations-data-dark.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ChatDocumentsWeb SearchAudioImagesMemoryConnections - Data Controls - - + + + + + + OPEN WEBUI + STATE SURFACE + Data + tables / records / lineage + 01TABLES02RECORDS03LINEAGE + + + + + + + + LINEAGE - - \ No newline at end of file + + + + DOCS + DATA + diff --git a/static/images/banners/chat-conversations-data-light.svg b/static/images/banners/chat-conversations-data-light.svg index d877bd835..41336e04d 100644 --- a/static/images/banners/chat-conversations-data-light.svg +++ b/static/images/banners/chat-conversations-data-light.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ChatDocumentsWeb SearchAudioImagesMemoryConnections - Data Controls - - + + + + + + OPEN WEBUI + STATE SURFACE + Data + tables / records / lineage + 01TABLES02RECORDS03LINEAGE + + + + + + + + LINEAGE - - \ No newline at end of file + + + + DOCS + DATA + diff --git a/static/images/banners/chat-conversations-documents-dark.svg b/static/images/banners/chat-conversations-documents-dark.svg index 94ab2862e..948fd5a59 100644 --- a/static/images/banners/chat-conversations-documents-dark.svg +++ b/static/images/banners/chat-conversations-documents-dark.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ChatWeb SearchAudioImagesMemoryData ControlsConnections - Documents - - + + + + + + OPEN WEBUI + FILE INTELLIGENCE + Documents + parse / cite / reuse + 01PARSE02CITE03REUSE + + + + + + + + - - \ No newline at end of file + + + + DOCS + DOCUMENTS + diff --git a/static/images/banners/chat-conversations-documents-light.svg b/static/images/banners/chat-conversations-documents-light.svg index 84aa7ce98..82647dfa4 100644 --- a/static/images/banners/chat-conversations-documents-light.svg +++ b/static/images/banners/chat-conversations-documents-light.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ChatWeb SearchAudioImagesMemoryData ControlsConnections - Documents - - + + + + + + OPEN WEBUI + FILE INTELLIGENCE + Documents + parse / cite / reuse + 01PARSE02CITE03REUSE + + + + + + + + - - \ No newline at end of file + + + + DOCS + DOCUMENTS + diff --git a/static/images/banners/chat-conversations-images-dark.svg b/static/images/banners/chat-conversations-images-dark.svg index dcec9a14c..26cc8b455 100644 --- a/static/images/banners/chat-conversations-images-dark.svg +++ b/static/images/banners/chat-conversations-images-dark.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ChatDocumentsWeb SearchAudioMemoryData ControlsConnections - Images - - + + + + + + OPEN WEBUI + VISUAL CONTEXT + Images + media / visual / review + 01MEDIA02CONTEXT03REVIEW + + + + + + + + - - \ No newline at end of file + + + + DOCS + IMAGES + diff --git a/static/images/banners/chat-conversations-images-light.svg b/static/images/banners/chat-conversations-images-light.svg index 6ddef0c50..5832348c2 100644 --- a/static/images/banners/chat-conversations-images-light.svg +++ b/static/images/banners/chat-conversations-images-light.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ChatDocumentsWeb SearchAudioMemoryData ControlsConnections - Images - - + + + + + + OPEN WEBUI + VISUAL CONTEXT + Images + media / visual / review + 01MEDIA02CONTEXT03REVIEW + + + + + + + + - - \ No newline at end of file + + + + DOCS + IMAGES + diff --git a/static/images/banners/chat-conversations-light.svg b/static/images/banners/chat-conversations-light.svg index 434080283..d357a9658 100644 --- a/static/images/banners/chat-conversations-light.svg +++ b/static/images/banners/chat-conversations-light.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - - ChatDocumentsWeb SearchAudioImagesMemoryData ControlsConnections - - + + + + + + OPEN WEBUI + AGENT WORKSPACE + Conversations + chat / files / terminal + 01CHAT02FILES03TERMINAL + + + + + + + + $ run - - \ No newline at end of file + + + + DOCS + WORKSPACE + diff --git a/static/images/banners/chat-conversations-memory-dark.svg b/static/images/banners/chat-conversations-memory-dark.svg index 896354996..65a102ee1 100644 --- a/static/images/banners/chat-conversations-memory-dark.svg +++ b/static/images/banners/chat-conversations-memory-dark.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ChatDocumentsWeb SearchAudioImagesData ControlsConnections - Memory - - + + + + + + OPEN WEBUI + RECALL LAYER + Memory + workspace / user / history + 01WORKSPACE02USER03HISTORY + + + + + + + + RECALL PATH - - \ No newline at end of file + + + + DOCS + MEMORY + diff --git a/static/images/banners/chat-conversations-memory-light.svg b/static/images/banners/chat-conversations-memory-light.svg index a925875b3..b173ce6ad 100644 --- a/static/images/banners/chat-conversations-memory-light.svg +++ b/static/images/banners/chat-conversations-memory-light.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ChatDocumentsWeb SearchAudioImagesData ControlsConnections - Memory - - + + + + + + OPEN WEBUI + RECALL LAYER + Memory + workspace / user / history + 01WORKSPACE02USER03HISTORY + + + + + + + + RECALL PATH - - \ No newline at end of file + + + + DOCS + MEMORY + diff --git a/static/images/banners/chat-conversations-websearch-dark.svg b/static/images/banners/chat-conversations-websearch-dark.svg index 63ec3efad..9c9aeca90 100644 --- a/static/images/banners/chat-conversations-websearch-dark.svg +++ b/static/images/banners/chat-conversations-websearch-dark.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ChatDocumentsAudioImagesMemoryData ControlsConnections - Web Search - - + + + + + + OPEN WEBUI + EXTERNAL SIGNAL + Web Search + search / verify / cite + 01SEARCH02VERIFY03CITE + + + + + + + + - - \ No newline at end of file + + + + DOCS + SEARCH + diff --git a/static/images/banners/chat-conversations-websearch-light.svg b/static/images/banners/chat-conversations-websearch-light.svg index e010a094d..109ca14bd 100644 --- a/static/images/banners/chat-conversations-websearch-light.svg +++ b/static/images/banners/chat-conversations-websearch-light.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ChatDocumentsAudioImagesMemoryData ControlsConnections - Web Search - - + + + + + + OPEN WEBUI + EXTERNAL SIGNAL + Web Search + search / verify / cite + 01SEARCH02VERIFY03CITE + + + + + + + + - - \ No newline at end of file + + + + DOCS + SEARCH + diff --git a/static/images/banners/community-dark.svg b/static/images/banners/community-dark.svg index 58d480d33..4ef06ec5d 100644 --- a/static/images/banners/community-dark.svg +++ b/static/images/banners/community-dark.svg @@ -1,43 +1,29 @@ - + - - - - - - - + - - - - - - + + + + + + OPEN WEBUI + SHARED NETWORK + Community + models / prompts / tools + 01MODELS02PROMPTS03TOOLS + + + + + + + + SHARED REGISTRY - - - - - - - - - - Pipe - - - Tool - - - Action - - - Event - - - Filter - - - MCP - \ No newline at end of file + + + + DOCS + NETWORK + diff --git a/static/images/banners/community-light.svg b/static/images/banners/community-light.svg index 05eb11490..a7524c63b 100644 --- a/static/images/banners/community-light.svg +++ b/static/images/banners/community-light.svg @@ -1,43 +1,29 @@ - + - - - - - - - + - - - - - - + + + + + + OPEN WEBUI + SHARED NETWORK + Community + models / prompts / tools + 01MODELS02PROMPTS03TOOLS + + + + + + + + SHARED REGISTRY - - - - - - - - - - Pipe - - - Tool - - - Action - - - Event - - - Filter - - - MCP - \ No newline at end of file + + + + DOCS + NETWORK + diff --git a/static/images/banners/computer-dark.svg b/static/images/banners/computer-dark.svg index 8cf6b3411..f18a61164 100644 --- a/static/images/banners/computer-dark.svg +++ b/static/images/banners/computer-dark.svg @@ -1,39 +1,29 @@ - + - - - - + - - - - - - - - - - - - - - - - $ - - - - - - - - $ - - - - - + + + + + + OPEN WEBUI + REMOTE MACHINE + Computer + files / shell / git + 01FILES02SHELL03GIT + + + + + + + + LOCAL MACHINE - - \ No newline at end of file + + + + DOCS + COMPUTER + diff --git a/static/images/banners/computer-light.svg b/static/images/banners/computer-light.svg index de40db884..c570fe1d5 100644 --- a/static/images/banners/computer-light.svg +++ b/static/images/banners/computer-light.svg @@ -1,39 +1,29 @@ - + - - - - + - - - - - - - - - - - - - - - - $ - - - - - - - - $ - - - - - + + + + + + OPEN WEBUI + REMOTE MACHINE + Computer + files / shell / git + 01FILES02SHELL03GIT + + + + + + + + LOCAL MACHINE - - \ No newline at end of file + + + + DOCS + COMPUTER + diff --git a/static/images/banners/event-function-dark.svg b/static/images/banners/event-function-dark.svg index 230328aeb..2255ec145 100644 --- a/static/images/banners/event-function-dark.svg +++ b/static/images/banners/event-function-dark.svg @@ -1,31 +1,29 @@ - + - - - + - - - - - - - - - - - auth.signup - - - - chat.deleted - - - - system.startup - - - - config.updated + + + + + + OPEN WEBUI + AUTOMATION HOOKS + Event Functions + events / functions / triggers + 01EVENTS02FUNCTIONS03TRIGGERS + + + + + + + + EVENTFILTERFUNCTIONACTION - \ No newline at end of file + + + + DOCS + PIPELINE + diff --git a/static/images/banners/event-function-light.svg b/static/images/banners/event-function-light.svg index 5d617fcf1..208b60f90 100644 --- a/static/images/banners/event-function-light.svg +++ b/static/images/banners/event-function-light.svg @@ -1,31 +1,29 @@ - + - - - + - - - - - - - - - - - auth.signup - - - - chat.deleted - - - - system.startup - - - - config.updated + + + + + + OPEN WEBUI + AUTOMATION HOOKS + Event Functions + events / functions / triggers + 01EVENTS02FUNCTIONS03TRIGGERS + + + + + + + + EVENTFILTERFUNCTIONACTION - \ No newline at end of file + + + + DOCS + PIPELINE + diff --git a/static/images/banners/extensibility-dark.svg b/static/images/banners/extensibility-dark.svg index a11b6c170..001ce4e8d 100644 --- a/static/images/banners/extensibility-dark.svg +++ b/static/images/banners/extensibility-dark.svg @@ -1,21 +1,29 @@ - + - - - - - - - - - - + - - - - - - - PipeToolActionEventFilter - \ No newline at end of file + + + + + + OPEN WEBUI + PLUGIN SURFACE + Extensibility + tools / functions / skills + 01TOOLS02FUNCTIONS03SKILLS + + + + + + + + CAPABILITY BUS + + + + + DOCS + MODULES + diff --git a/static/images/banners/extensibility-light.svg b/static/images/banners/extensibility-light.svg index e55ceb588..bfce3d8d5 100644 --- a/static/images/banners/extensibility-light.svg +++ b/static/images/banners/extensibility-light.svg @@ -1,21 +1,29 @@ - + - - - - - - - - - - + - - - - - - - PipeToolActionEventFilter - \ No newline at end of file + + + + + + OPEN WEBUI + PLUGIN SURFACE + Extensibility + tools / functions / skills + 01TOOLS02FUNCTIONS03SKILLS + + + + + + + + CAPABILITY BUS + + + + + DOCS + MODULES + diff --git a/static/images/banners/features-dark.svg b/static/images/banners/features-dark.svg index b37a13b41..796261b6b 100644 --- a/static/images/banners/features-dark.svg +++ b/static/images/banners/features-dark.svg @@ -1,24 +1,29 @@ - + - - - + - - ChatMulti-model, all your history.Q3 revenue analysisTrip to Japan itineraryDebug the API clientModelsAny provider, switch anytime. - OllamaOpenAIOpen ResponsesvLLM - Run two side by side and compare.Web SearchSearches the live web. - - cites sourcesPrivateSelf-hosted. Your data stays yours. - Self-hostedFree to useAir-gappedNo telemetry - Runs entirely on your hardware.WorkspaceKnowledge, prompts and custom models. - Knowledge Bases - Prompts - Custom ModelsImagesGenerate & edit, inline.VoiceTalk & listen.ChannelsTeam + AI, one timeline. - SA - @gpt-5 - Summon any model with @.ExtensibleBuild anything onto the platform. - ToolsFiltersActionsMCPOpenAPIPlugins - One-click community imports. - - \ No newline at end of file + + + + + + OPEN WEBUI + FULL STACK + Features + voice / vision / retrieval + 01VOICE02VISION03RETRIEVAL + + + + + + + + VOICEVISIONRETRIEVALTOOLS + + + + + DOCS + STACK + diff --git a/static/images/banners/features-light.svg b/static/images/banners/features-light.svg index 6075cfe9c..a1d826c26 100644 --- a/static/images/banners/features-light.svg +++ b/static/images/banners/features-light.svg @@ -1,24 +1,29 @@ - + - - - + - - ChatMulti-model, all your history.Q3 revenue analysisTrip to Japan itineraryDebug the API clientModelsAny provider, switch anytime. - OllamaOpenAIOpen ResponsesvLLM - Run two side by side and compare.Web SearchSearches the live web. - - cites sourcesPrivateSelf-hosted. Your data stays yours. - Self-hostedFree to useAir-gappedNo telemetry - Runs entirely on your hardware.WorkspaceKnowledge, prompts and custom models. - Knowledge Bases - Prompts - Custom ModelsImagesGenerate & edit, inline.VoiceTalk & listen.ChannelsTeam + AI, one timeline. - SA - @gpt-5 - Summon any model with @.ExtensibleBuild anything onto the platform. - ToolsFiltersActionsMCPOpenAPIPlugins - One-click community imports. - - \ No newline at end of file + + + + + + OPEN WEBUI + FULL STACK + Features + voice / vision / retrieval + 01VOICE02VISION03RETRIEVAL + + + + + + + + VOICEVISIONRETRIEVALTOOLS + + + + + DOCS + STACK + diff --git a/static/images/banners/kbsync-dark.svg b/static/images/banners/kbsync-dark.svg index d9e5ac866..acc5ce6c5 100644 --- a/static/images/banners/kbsync-dark.svg +++ b/static/images/banners/kbsync-dark.svg @@ -1,25 +1,29 @@ - + - - - - - - - + - - - - - - - - - - - - oikb + + + + + + OPEN WEBUI + KNOWLEDGE PIPELINE + Knowledge Sync + sync / index / retrieve + 01SYNC02INDEX03RETRIEVE + + + + + + + + SOURCECHUNKINDEXQUERY - - \ No newline at end of file + + + + DOCS + SYNC + diff --git a/static/images/banners/kbsync-light.svg b/static/images/banners/kbsync-light.svg index 6a0b0dd6d..7d75f258e 100644 --- a/static/images/banners/kbsync-light.svg +++ b/static/images/banners/kbsync-light.svg @@ -1,25 +1,29 @@ - + - - - - - - - + - - - - - - - - - - - - oikb + + + + + + OPEN WEBUI + KNOWLEDGE PIPELINE + Knowledge Sync + sync / index / retrieve + 01SYNC02INDEX03RETRIEVE + + + + + + + + SOURCECHUNKINDEXQUERY - - \ No newline at end of file + + + + DOCS + SYNC + diff --git a/static/images/banners/knowledge-dark.svg b/static/images/banners/knowledge-dark.svg index f3168d0d7..844f7f2ea 100644 --- a/static/images/banners/knowledge-dark.svg +++ b/static/images/banners/knowledge-dark.svg @@ -1,14 +1,29 @@ - + - - - + - - - - - - - - \ No newline at end of file + + + + + + OPEN WEBUI + RETRIEVAL CORE + Knowledge + docs / chunks / citations + 01DOCS02CHUNKS03CITATIONS + + + + + + + + CITATION TRACE + + + + + DOCS + KNOWLEDGE + diff --git a/static/images/banners/knowledge-light.svg b/static/images/banners/knowledge-light.svg index 122637759..73bb14e8c 100644 --- a/static/images/banners/knowledge-light.svg +++ b/static/images/banners/knowledge-light.svg @@ -1,14 +1,29 @@ - + - - - + - - - - - - - - \ No newline at end of file + + + + + + OPEN WEBUI + RETRIEVAL CORE + Knowledge + docs / chunks / citations + 01DOCS02CHUNKS03CITATIONS + + + + + + + + CITATION TRACE + + + + + DOCS + KNOWLEDGE + diff --git a/static/images/banners/notes-dark.svg b/static/images/banners/notes-dark.svg index 65cb35059..75476c1b4 100644 --- a/static/images/banners/notes-dark.svg +++ b/static/images/banners/notes-dark.svg @@ -1,44 +1,29 @@ - + - - - - - + - - - - - - - Q3 Launch Brief - - Access + + + + - Goals - Ship the new onboarding flow - Announce broadly to all users - Draft the announcement - Loop in design and support + OPEN WEBUI + PLAIN FILES + Notes + capture / edit / search + 01CAPTURE02EDIT03SEARCH - - - Chat - - - Add specific channels and a date + + + - - gpt-5 - Announce via email, in-app and X - on launch day, Mar 14. - - Announce broadly to all users - - Ask to editโ€ฆ - + + PLAIN TEXT - - \ No newline at end of file + + + + DOCS + NOTES + diff --git a/static/images/banners/notes-light.svg b/static/images/banners/notes-light.svg index 650278170..773577976 100644 --- a/static/images/banners/notes-light.svg +++ b/static/images/banners/notes-light.svg @@ -1,44 +1,29 @@ - + - - - - - + - - - - - - - Q3 Launch Brief - - Access + + + + - Goals - Ship the new onboarding flow - Announce broadly to all users - Draft the announcement - Loop in design and support + OPEN WEBUI + PLAIN FILES + Notes + capture / edit / search + 01CAPTURE02EDIT03SEARCH - - - Chat - - - Add specific channels and a date + + + - - gpt-5 - Announce via email, in-app and X - on launch day, Mar 14. - - Announce broadly to all users - - Ask to editโ€ฆ - + + PLAIN TEXT - - \ No newline at end of file + + + + DOCS + NOTES + diff --git a/static/images/banners/terminal-dark.svg b/static/images/banners/terminal-dark.svg index 71b4ac0d6..5bd1f7177 100644 --- a/static/images/banners/terminal-dark.svg +++ b/static/images/banners/terminal-dark.svg @@ -1,32 +1,29 @@ - + - - - - - + - - - - - - - - - - - - open-terminal - - - $python report.py - 1,240 rows, chart.png written - $npm run dev - ready on localhost:3000 - $ - - + + + + + + OPEN WEBUI + SHELL ACCESS + Terminal + commands / logs / sessions + 01COMMANDS02LOGS03SESSIONS + + + + + + + + $ open-webui runok session ready$ open-webui runok session ready$ open-webui runok session ready - - \ No newline at end of file + + + + DOCS + TERMINAL + diff --git a/static/images/banners/terminal-light.svg b/static/images/banners/terminal-light.svg index af7ea516c..27fc1b078 100644 --- a/static/images/banners/terminal-light.svg +++ b/static/images/banners/terminal-light.svg @@ -1,32 +1,29 @@ - + - - - - - + - - - - - - - - - - - - open-terminal - - - $python report.py - 1,240 rows, chart.png written - $npm run dev - ready on localhost:3000 - $ - - + + + + + + OPEN WEBUI + SHELL ACCESS + Terminal + commands / logs / sessions + 01COMMANDS02LOGS03SESSIONS + + + + + + + + $ open-webui runok session ready$ open-webui runok session ready$ open-webui runok session ready - - \ No newline at end of file + + + + DOCS + TERMINAL + diff --git a/static/images/banners/workspace-dark.svg b/static/images/banners/workspace-dark.svg index 3d65340cf..d37a4ea8a 100644 --- a/static/images/banners/workspace-dark.svg +++ b/static/images/banners/workspace-dark.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - - ModelsKnowledgePromptsSkillsTools - - + + + + + + OPEN WEBUI + LOCAL CONTEXT + Workspace + repo / state / environment + 01REPO02STATE03ENVIRONMENT + + + + + + + + $ run - - \ No newline at end of file + + + + DOCS + WORKSPACE + diff --git a/static/images/banners/workspace-knowledge-dark.svg b/static/images/banners/workspace-knowledge-dark.svg index 9a229d98d..35dbde39b 100644 --- a/static/images/banners/workspace-knowledge-dark.svg +++ b/static/images/banners/workspace-knowledge-dark.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ModelsPromptsSkillsTools - Knowledge - - + + + + + + OPEN WEBUI + PROJECT MEMORY + WorkspaceKnowledge + repo / docs / decisions + 01REPO02DOCS03DECISIONS + + + + + + + + CITATION TRACE - - \ No newline at end of file + + + + DOCS + KNOWLEDGE + diff --git a/static/images/banners/workspace-knowledge-light.svg b/static/images/banners/workspace-knowledge-light.svg index 2c158142b..2621d7b2b 100644 --- a/static/images/banners/workspace-knowledge-light.svg +++ b/static/images/banners/workspace-knowledge-light.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ModelsPromptsSkillsTools - Knowledge - - + + + + + + OPEN WEBUI + PROJECT MEMORY + WorkspaceKnowledge + repo / docs / decisions + 01REPO02DOCS03DECISIONS + + + + + + + + CITATION TRACE - - \ No newline at end of file + + + + DOCS + KNOWLEDGE + diff --git a/static/images/banners/workspace-light.svg b/static/images/banners/workspace-light.svg index 49a1ce3fe..a0ea8cf29 100644 --- a/static/images/banners/workspace-light.svg +++ b/static/images/banners/workspace-light.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - - ModelsKnowledgePromptsSkillsTools - - + + + + + + OPEN WEBUI + LOCAL CONTEXT + Workspace + repo / state / environment + 01REPO02STATE03ENVIRONMENT + + + + + + + + $ run - - \ No newline at end of file + + + + DOCS + WORKSPACE + diff --git a/static/images/banners/workspace-models-dark.svg b/static/images/banners/workspace-models-dark.svg index 6974fad7d..bd7960335 100644 --- a/static/images/banners/workspace-models-dark.svg +++ b/static/images/banners/workspace-models-dark.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - KnowledgePromptsSkillsTools - Models - - + + + + + + OPEN WEBUI + MODEL SELECTION + Workspace Models + routing / params / control + 01ROUTING02PARAMS03CONTROL + + + + + + + + LOCALFASTVISIONLONGROUTING POLICY - - \ No newline at end of file + + + + DOCS + MODELS + diff --git a/static/images/banners/workspace-models-light.svg b/static/images/banners/workspace-models-light.svg index 83ce2f77c..bab0872c1 100644 --- a/static/images/banners/workspace-models-light.svg +++ b/static/images/banners/workspace-models-light.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - KnowledgePromptsSkillsTools - Models - - + + + + + + OPEN WEBUI + MODEL SELECTION + Workspace Models + routing / params / control + 01ROUTING02PARAMS03CONTROL + + + + + + + + LOCALFASTVISIONLONGROUTING POLICY - - \ No newline at end of file + + + + DOCS + MODELS + diff --git a/static/images/banners/workspace-prompts-dark.svg b/static/images/banners/workspace-prompts-dark.svg index 91a81450b..055b1d6ec 100644 --- a/static/images/banners/workspace-prompts-dark.svg +++ b/static/images/banners/workspace-prompts-dark.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ModelsKnowledgeSkillsTools - Prompts - - + + + + + + OPEN WEBUI + SYSTEM INTENT + WorkspacePrompts + templates / roles / policy + 01TEMPLATES02ROLES03POLICY + + + + + + + + SYSTEM:ROLE BOUNDARY - - \ No newline at end of file + + + + DOCS + PROMPTS + diff --git a/static/images/banners/workspace-prompts-light.svg b/static/images/banners/workspace-prompts-light.svg index 6ff312532..4bac7a893 100644 --- a/static/images/banners/workspace-prompts-light.svg +++ b/static/images/banners/workspace-prompts-light.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ModelsKnowledgeSkillsTools - Prompts - - + + + + + + OPEN WEBUI + SYSTEM INTENT + WorkspacePrompts + templates / roles / policy + 01TEMPLATES02ROLES03POLICY + + + + + + + + SYSTEM:ROLE BOUNDARY - - \ No newline at end of file + + + + DOCS + PROMPTS + diff --git a/static/images/banners/workspace-skills-dark.svg b/static/images/banners/workspace-skills-dark.svg index ae51e31d7..731e85399 100644 --- a/static/images/banners/workspace-skills-dark.svg +++ b/static/images/banners/workspace-skills-dark.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ModelsKnowledgePromptsTools - Skills - - + + + + + + OPEN WEBUI + CAPABILITY PACKS + Workspace Skills + instructions / tools / reuse + 01INSTRUCTIONS02TOOLS03REUSE + + + + + + + + INSTRUCTTOOLREUSERUN - - \ No newline at end of file + + + + DOCS + SKILLS + diff --git a/static/images/banners/workspace-skills-light.svg b/static/images/banners/workspace-skills-light.svg index 867a35b9b..b2dea44d9 100644 --- a/static/images/banners/workspace-skills-light.svg +++ b/static/images/banners/workspace-skills-light.svg @@ -1,18 +1,29 @@ - + - - - - + - - - - - ModelsKnowledgePromptsTools - Skills - - + + + + + + OPEN WEBUI + CAPABILITY PACKS + Workspace Skills + instructions / tools / reuse + 01INSTRUCTIONS02TOOLS03REUSE + + + + + + + + INSTRUCTTOOLREUSERUN - - \ No newline at end of file + + + + DOCS + SKILLS + From db1735592356d1e8473ebffbb11f2232a1cd8052 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 20:28:01 -0500 Subject: [PATCH 02/25] refac --- docs/ecosystem/_category_.json | 6 +++ .../computer/_category_.json | 2 +- .../computer/capabilities.md} | 14 +++---- .../{features => ecosystem}/computer/index.md | 40 +++++++++--------- docs/ecosystem/computer/open-webui.md | 42 +++++++++++++++++++ docs/ecosystem/index.md | 12 ++++++ docs/features/computer/open-webui.md | 42 ------------------- docs/features/index.mdx | 21 +--------- docs/features/open-terminal/file-browser.md | 2 +- docs/features/open-terminal/index.md | 4 +- .../open-terminal/setup/installation.mdx | 2 +- .../open-terminal/use-cases/code-execution.md | 2 +- .../use-cases/software-development.md | 2 +- .../use-cases/system-automation.md | 2 +- .../use-cases/web-development.md | 2 +- docs/getting-started/essentials.mdx | 16 +++---- .../quick-start/connect-an-agent/cptr.mdx | 42 +++++++++---------- .../quick-start/connect-an-agent/index.md | 2 +- docs/intro.mdx | 4 +- 19 files changed, 129 insertions(+), 130 deletions(-) create mode 100644 docs/ecosystem/_category_.json rename docs/{features => ecosystem}/computer/_category_.json (60%) rename docs/{features/computer/features.md => ecosystem/computer/capabilities.md} (79%) rename docs/{features => ecosystem}/computer/index.md (54%) create mode 100644 docs/ecosystem/computer/open-webui.md create mode 100644 docs/ecosystem/index.md delete mode 100644 docs/features/computer/open-webui.md diff --git a/docs/ecosystem/_category_.json b/docs/ecosystem/_category_.json new file mode 100644 index 000000000..708b10449 --- /dev/null +++ b/docs/ecosystem/_category_.json @@ -0,0 +1,6 @@ +{ + "label": "๐ŸŒ Ecosystem", + "position": 36, + "collapsible": true, + "collapsed": false +} diff --git a/docs/features/computer/_category_.json b/docs/ecosystem/computer/_category_.json similarity index 60% rename from docs/features/computer/_category_.json rename to docs/ecosystem/computer/_category_.json index f10afeceb..b8b8d7f79 100644 --- a/docs/features/computer/_category_.json +++ b/docs/ecosystem/computer/_category_.json @@ -1,5 +1,5 @@ { - "label": "๐Ÿ–ฅ๏ธ Computer (cptr)", + "label": "๐Ÿ–ฅ๏ธ Open WebUI Computer", "position": 36, "collapsible": true, "collapsed": true diff --git a/docs/features/computer/features.md b/docs/ecosystem/computer/capabilities.md similarity index 79% rename from docs/features/computer/features.md rename to docs/ecosystem/computer/capabilities.md index 240d1db26..a61a7f9e2 100644 --- a/docs/features/computer/features.md +++ b/docs/ecosystem/computer/capabilities.md @@ -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. diff --git a/docs/features/computer/index.md b/docs/ecosystem/computer/index.md similarity index 54% rename from docs/features/computer/index.md rename to docs/ecosystem/computer/index.md index d8c357d7b..3a5ae5a0d 100644 --- a/docs/features/computer/index.md +++ b/docs/ecosystem/computer/index.md @@ -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 `. 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/`. 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. +::: diff --git a/docs/ecosystem/index.md b/docs/ecosystem/index.md new file mode 100644 index 000000000..17be1e3c0 --- /dev/null +++ b/docs/ecosystem/index.md @@ -0,0 +1,12 @@ +--- +title: "Ecosystem" +sidebar_position: 1 +--- + +# Ecosystem + +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 + +- [**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. diff --git a/docs/features/computer/open-webui.md b/docs/features/computer/open-webui.md deleted file mode 100644 index 7c68250c4..000000000 --- a/docs/features/computer/open-webui.md +++ /dev/null @@ -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/`. 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/`. 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. -::: diff --git a/docs/features/index.mdx b/docs/features/index.mdx index a2ecbf746..308d40aa1 100644 --- a/docs/features/index.mdx +++ b/docs/features/index.mdx @@ -147,30 +147,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) - - - -**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 diff --git a/docs/features/open-terminal/file-browser.md b/docs/features/open-terminal/file-browser.md index 4d134f61c..b4744107d 100644 --- a/docs/features/open-terminal/file-browser.md +++ b/docs/features/open-terminal/file-browser.md @@ -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. ::: diff --git a/docs/features/open-terminal/index.md b/docs/features/open-terminal/index.md index af545bbf3..3c56d8b99 100644 --- a/docs/features/open-terminal/index.md +++ b/docs/features/open-terminal/index.md @@ -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. diff --git a/docs/features/open-terminal/setup/installation.mdx b/docs/features/open-terminal/setup/installation.mdx index b1c51cfb1..15cbbb43a 100644 --- a/docs/features/open-terminal/setup/installation.mdx +++ b/docs/features/open-terminal/setup/installation.mdx @@ -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 diff --git a/docs/features/open-terminal/use-cases/code-execution.md b/docs/features/open-terminal/use-cases/code-execution.md index db46d8a4c..f7755fcbd 100644 --- a/docs/features/open-terminal/use-cases/code-execution.md +++ b/docs/features/open-terminal/use-cases/code-execution.md @@ -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. ::: diff --git a/docs/features/open-terminal/use-cases/software-development.md b/docs/features/open-terminal/use-cases/software-development.md index e6bc20a48..e2cdee465 100644 --- a/docs/features/open-terminal/use-cases/software-development.md +++ b/docs/features/open-terminal/use-cases/software-development.md @@ -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. ::: --- diff --git a/docs/features/open-terminal/use-cases/system-automation.md b/docs/features/open-terminal/use-cases/system-automation.md index 5b65728b2..499a2ed94 100644 --- a/docs/features/open-terminal/use-cases/system-automation.md +++ b/docs/features/open-terminal/use-cases/system-automation.md @@ -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. ::: diff --git a/docs/features/open-terminal/use-cases/web-development.md b/docs/features/open-terminal/use-cases/web-development.md index 3be3b42b3..9c756baf5 100644 --- a/docs/features/open-terminal/use-cases/web-development.md +++ b/docs/features/open-terminal/use-cases/web-development.md @@ -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. ::: diff --git a/docs/getting-started/essentials.mdx b/docs/getting-started/essentials.mdx index fee8dcf00..20ed785c6 100644 --- a/docs/getting-started/essentials.mdx +++ b/docs/getting-started/essentials.mdx @@ -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) --- diff --git a/docs/getting-started/quick-start/connect-an-agent/cptr.mdx b/docs/getting-started/quick-start/connect-an-agent/cptr.mdx index e88c404a3..0bcc22fbf 100644 --- a/docs/getting-started/quick-start/connect-an-agent/cptr.mdx +++ b/docs/getting-started/quick-start/connect-an-agent/cptr.mdx @@ -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/`. 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/`. 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) diff --git a/docs/getting-started/quick-start/connect-an-agent/index.md b/docs/getting-started/quick-start/connect-an-agent/index.md index 71ef61aad..5344ac868 100644 --- a/docs/getting-started/quick-start/connect-an-agent/index.md +++ b/docs/getting-started/quick-start/connect-an-agent/index.md @@ -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) | diff --git a/docs/intro.mdx b/docs/intro.mdx index 5c613c813..60100a313 100644 --- a/docs/intro.mdx +++ b/docs/intro.mdx @@ -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. From fbf947a88c33521e74b70b748b58d43781437177 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 20:31:59 -0500 Subject: [PATCH 03/25] refac --- docs/ecosystem/_category_.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ecosystem/_category_.json b/docs/ecosystem/_category_.json index 708b10449..7f8f5326b 100644 --- a/docs/ecosystem/_category_.json +++ b/docs/ecosystem/_category_.json @@ -1,6 +1,6 @@ { "label": "๐ŸŒ Ecosystem", - "position": 36, + "position": 201, "collapsible": true, "collapsed": false } From b3ba324435a28655dbbc3a0a801faee0589c9a06 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 20:47:26 -0500 Subject: [PATCH 04/25] refac --- docusaurus.config.ts | 2 +- src/css/custom.css | 65 ++++++++++++++----- .../images/banners/administration-light.svg | 22 +++---- .../banners/authentication-access-light.svg | 22 +++---- static/images/banners/calendar-light.svg | 22 +++---- static/images/banners/channels-light.svg | 22 +++---- .../chat-conversations-audio-light.svg | 22 +++---- .../banners/chat-conversations-chat-light.svg | 22 +++---- .../chat-conversations-connections-light.svg | 22 +++---- .../banners/chat-conversations-data-light.svg | 22 +++---- .../chat-conversations-documents-light.svg | 22 +++---- .../chat-conversations-images-light.svg | 22 +++---- .../banners/chat-conversations-light.svg | 22 +++---- .../chat-conversations-memory-light.svg | 22 +++---- .../chat-conversations-websearch-light.svg | 22 +++---- static/images/banners/community-light.svg | 22 +++---- static/images/banners/computer-light.svg | 22 +++---- .../images/banners/event-function-light.svg | 22 +++---- static/images/banners/extensibility-light.svg | 22 +++---- static/images/banners/features-light.svg | 22 +++---- static/images/banners/kbsync-light.svg | 22 +++---- static/images/banners/knowledge-light.svg | 22 +++---- static/images/banners/notes-light.svg | 22 +++---- static/images/banners/terminal-light.svg | 22 +++---- .../banners/workspace-knowledge-light.svg | 22 +++---- static/images/banners/workspace-light.svg | 22 +++---- .../images/banners/workspace-models-light.svg | 22 +++---- .../banners/workspace-prompts-light.svg | 22 +++---- .../images/banners/workspace-skills-light.svg | 22 +++---- 29 files changed, 347 insertions(+), 314 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 4a807c58c..c0a369385 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -181,7 +181,7 @@ const config: Config = { styles: [], }, darkTheme: { - plain: { color: "#ccc", backgroundColor: "#1a1a1a" }, + plain: { color: "#ccc", backgroundColor: "#000" }, styles: [], }, }, diff --git a/src/css/custom.css b/src/css/custom.css index 32de435e5..ca1ca0795 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -69,10 +69,19 @@ --ifm-link-color: #ccc; --ifm-heading-color: #eee; --ifm-font-color-base: #bbb; - --ifm-background-color: #0a0a0a; - --ifm-navbar-background-color: #0a0a0a; - --ifm-footer-background-color: #0a0a0a; + --ifm-background-color: #000; + --ifm-background-surface-color: #000; + --ifm-code-background: #000; + --ifm-pre-background: #000; + --ifm-card-background-color: #000; + --ifm-dropdown-background-color: #000; + --ifm-hero-background-color: #000; + --ifm-menu-color-background-active: #000; + --ifm-menu-color-background-hover: #000; + --ifm-navbar-background-color: #000; + --ifm-footer-background-color: #000; --ifm-footer-color: #555; + --ifm-hover-overlay: rgb(255 255 255 / 4%); --ifm-menu-color: #888; --docusaurus-highlighted-code-line-bg: rgb(255 255 255 / 8%); } @@ -141,7 +150,7 @@ nav.menu::-webkit-scrollbar { [data-theme="dark"] .menu__link--active { color: #fff; - background-color: #1a1a1a; + background-color: var(--ifm-menu-color-background-active); } /* โ”€โ”€โ”€ Hide breadcrumbs โ”€โ”€โ”€ */ @@ -167,7 +176,7 @@ code { [data-theme="dark"] code { color: #ccc; - background-color: #222; + background-color: var(--ifm-code-background); } [data-theme="light"] code { @@ -176,7 +185,7 @@ code { /* stylelint-disable-next-line no-duplicate-selectors */ [data-theme="dark"] code { - background-color: #222; + background-color: var(--ifm-code-background); } .theme-code-block { @@ -220,7 +229,7 @@ code { /* stylelint-disable-next-line no-duplicate-selectors */ [data-theme="dark"] .shiki-code-block pre { - background-color: var(--shiki-dark-bg, #1a1a1a) !important; + background-color: var(--ifm-pre-background) !important; } .shiki-code-block-content { @@ -251,7 +260,7 @@ code { } [data-theme="dark"] .shiki-copy-button { - background: #1a1a1a; + background: var(--ifm-pre-background); color: #ccc; } @@ -287,7 +296,7 @@ blockquote { } [data-theme="dark"] blockquote { - border-left-color: #333; + border-left-color: #000; color: #999; } @@ -550,7 +559,7 @@ div.special_table + table tr:nth-child(even) { } [data-theme="dark"] .custom-tag { - background-color: #1a1a1a; + background-color: var(--ifm-background-surface-color); color: #ccc; } @@ -559,7 +568,7 @@ div.special_table + table tr:nth-child(even) { } [data-theme="dark"] .custom-tag:hover { - background-color: #222; + background-color: var(--ifm-menu-color-background-active); } .navbar__link:has(div.custom-tag) { @@ -625,12 +634,12 @@ a.footer__link-item:hover { } [data-theme="dark"] .footer--dark { - background-color: #0a0a0a; + background-color: var(--ifm-footer-background-color); } /* โ”€โ”€โ”€ Hiring link โ”€โ”€โ”€ */ .hiring-link { - background-color: #111; + background-color: #000; color: #fff; font-weight: 500; padding: 4px 10px; @@ -714,6 +723,30 @@ a.footer__link-item:hover { border-right-width: 0 !important; } +html[data-theme="dark"], +html[data-theme="dark"] body, +html[data-theme="dark"] [id="__docusaurus"], +html[data-theme="dark"] .main-wrapper, +html[data-theme="dark"] main, +html[data-theme="dark"] .container, +html[data-theme="dark"] .row, +html[data-theme="dark"] .col, +html[data-theme="dark"] div[class*="docsWrapper"], +html[data-theme="dark"] div[class*="docRoot"], +html[data-theme="dark"] main[class*="docMainContainer"], +html[data-theme="dark"] div[class*="docItemWrapper"], +html[data-theme="dark"] div[class*="docItemCol"], +html[data-theme="dark"] div[class*="docItemContainer"], +html[data-theme="dark"] article, +html[data-theme="dark"] .theme-doc-markdown, +html[data-theme="dark"] .theme-doc-sidebar-container { + background-color: #000 !important; +} + +html[data-theme="dark"] .navbar { + background-color: var(--ifm-navbar-background-color) !important; +} + /* โ”€โ”€โ”€ Misc โ”€โ”€โ”€ */ .small-text { @@ -743,7 +776,7 @@ a.footer__link-item:hover { } [data-theme="dark"] .homepage-svg svg { - background-color: #111 !important; + background-color: #000 !important; color: #fff !important; } @@ -804,11 +837,11 @@ a.footer__link-item:hover { } [data-theme="dark"] .hero--bg { - background-color: #111 !important; + background-color: #000 !important; } .btn--black { - background-color: #111; + background-color: #000; color: #fff; border-radius: 2px; } diff --git a/static/images/banners/administration-light.svg b/static/images/banners/administration-light.svg index f6bb5c139..21bd3201b 100644 --- a/static/images/banners/administration-light.svg +++ b/static/images/banners/administration-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI ACCESS CONTROL Administration policy / roles / audit - 01POLICY MATRIX02ROLE SCOPES03AUDIT TRAIL + 01POLICY MATRIX02ROLE SCOPES03AUDIT TRAIL - + - + - VIEWWRITERUNADMINOWNEREDITORMEMBERGUESTSCOPE LOCKED + VIEWWRITERUNADMINOWNEREDITORMEMBERGUESTSCOPE LOCKED - + - DOCS - ACCESS + DOCS + ACCESS diff --git a/static/images/banners/authentication-access-light.svg b/static/images/banners/authentication-access-light.svg index 7399581af..73654fa49 100644 --- a/static/images/banners/authentication-access-light.svg +++ b/static/images/banners/authentication-access-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI IDENTITY LAYER Authentication keys / sessions / trust - 01IDENTITY02SESSION03BOUNDARY + 01IDENTITY02SESSION03BOUNDARY - + - + - USERSESSIONTOKENACCESS + USERSESSIONTOKENACCESS - + - DOCS - IDENTITY + DOCS + IDENTITY diff --git a/static/images/banners/calendar-light.svg b/static/images/banners/calendar-light.svg index a5cc43cdd..4cc6c6b34 100644 --- a/static/images/banners/calendar-light.svg +++ b/static/images/banners/calendar-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI SCHEDULED OPERATIONS Calendar time / queue / handoff - 01SCHEDULE02QUEUE03HANDOFF + 01SCHEDULE02QUEUE03HANDOFF - + - + - T+00T+01T+02T+03HANDOFF WINDOW + T+00T+01T+02T+03HANDOFF WINDOW - + - DOCS - TIMELINE + DOCS + TIMELINE diff --git a/static/images/banners/channels-light.svg b/static/images/banners/channels-light.svg index 27926443a..c4abfa7e3 100644 --- a/static/images/banners/channels-light.svg +++ b/static/images/banners/channels-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI CONVERSATION ROUTING Channels threads / teams / context - 01THREADS02TEAMS03CONTEXT + 01THREADS02TEAMS03CONTEXT - + - + - TEAMOPSUSERBOTCHANNEL + TEAMOPSUSERBOTCHANNEL - + - DOCS - ROUTING + DOCS + ROUTING diff --git a/static/images/banners/chat-conversations-audio-light.svg b/static/images/banners/chat-conversations-audio-light.svg index a69db0e70..b714b7220 100644 --- a/static/images/banners/chat-conversations-audio-light.svg +++ b/static/images/banners/chat-conversations-audio-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI VOICE INTERFACE Audio speech / playback / notes - 01SPEECH02PLAYBACK03NOTES + 01SPEECH02PLAYBACK03NOTES - + - + - TRANSCRIPT / 00:34 + TRANSCRIPT / 00:34 - + - DOCS - AUDIO + DOCS + AUDIO diff --git a/static/images/banners/chat-conversations-chat-light.svg b/static/images/banners/chat-conversations-chat-light.svg index 0e6cbf663..74ebaceb9 100644 --- a/static/images/banners/chat-conversations-chat-light.svg +++ b/static/images/banners/chat-conversations-chat-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI LIVE EXECUTION Chat messages / tools / review - 01MESSAGE02TOOL CALL03REVIEW + 01MESSAGE02TOOL CALL03REVIEW - + - + - USER MESSAGETOOL CALLRESULTREVIEW + USER MESSAGETOOL CALLRESULTREVIEW - + - DOCS - CHAT + DOCS + CHAT diff --git a/static/images/banners/chat-conversations-connections-light.svg b/static/images/banners/chat-conversations-connections-light.svg index 1196b9614..dad9dd432 100644 --- a/static/images/banners/chat-conversations-connections-light.svg +++ b/static/images/banners/chat-conversations-connections-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI MODEL FABRIC Connections providers / endpoints / keys - 01PROVIDERS02ENDPOINTS03KEYS + 01PROVIDERS02ENDPOINTS03KEYS - + - + - PROVIDER APROVIDER BPROVIDER CPROVIDER DROUTER + PROVIDER APROVIDER BPROVIDER CPROVIDER DROUTER - + - DOCS - CONNECTIONS + DOCS + CONNECTIONS diff --git a/static/images/banners/chat-conversations-data-light.svg b/static/images/banners/chat-conversations-data-light.svg index 41336e04d..f6536b314 100644 --- a/static/images/banners/chat-conversations-data-light.svg +++ b/static/images/banners/chat-conversations-data-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI STATE SURFACE Data tables / records / lineage - 01TABLES02RECORDS03LINEAGE + 01TABLES02RECORDS03LINEAGE - + - + - LINEAGE + LINEAGE - + - DOCS - DATA + DOCS + DATA diff --git a/static/images/banners/chat-conversations-documents-light.svg b/static/images/banners/chat-conversations-documents-light.svg index 82647dfa4..1322a17b1 100644 --- a/static/images/banners/chat-conversations-documents-light.svg +++ b/static/images/banners/chat-conversations-documents-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI FILE INTELLIGENCE Documents parse / cite / reuse - 01PARSE02CITE03REUSE + 01PARSE02CITE03REUSE - + - + - + - + - DOCS - DOCUMENTS + DOCS + DOCUMENTS diff --git a/static/images/banners/chat-conversations-images-light.svg b/static/images/banners/chat-conversations-images-light.svg index 5832348c2..4f206a4a3 100644 --- a/static/images/banners/chat-conversations-images-light.svg +++ b/static/images/banners/chat-conversations-images-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI VISUAL CONTEXT Images media / visual / review - 01MEDIA02CONTEXT03REVIEW + 01MEDIA02CONTEXT03REVIEW - + - + - + - + - DOCS - IMAGES + DOCS + IMAGES diff --git a/static/images/banners/chat-conversations-light.svg b/static/images/banners/chat-conversations-light.svg index d357a9658..be0882374 100644 --- a/static/images/banners/chat-conversations-light.svg +++ b/static/images/banners/chat-conversations-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI AGENT WORKSPACE Conversations chat / files / terminal - 01CHAT02FILES03TERMINAL + 01CHAT02FILES03TERMINAL - + - + - $ run + $ run - + - DOCS - WORKSPACE + DOCS + WORKSPACE diff --git a/static/images/banners/chat-conversations-memory-light.svg b/static/images/banners/chat-conversations-memory-light.svg index b173ce6ad..5f8c2c7c9 100644 --- a/static/images/banners/chat-conversations-memory-light.svg +++ b/static/images/banners/chat-conversations-memory-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI RECALL LAYER Memory workspace / user / history - 01WORKSPACE02USER03HISTORY + 01WORKSPACE02USER03HISTORY - + - + - RECALL PATH + RECALL PATH - + - DOCS - MEMORY + DOCS + MEMORY diff --git a/static/images/banners/chat-conversations-websearch-light.svg b/static/images/banners/chat-conversations-websearch-light.svg index 109ca14bd..e17a29f2d 100644 --- a/static/images/banners/chat-conversations-websearch-light.svg +++ b/static/images/banners/chat-conversations-websearch-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI EXTERNAL SIGNAL Web Search search / verify / cite - 01SEARCH02VERIFY03CITE + 01SEARCH02VERIFY03CITE - + - + - + - + - DOCS - SEARCH + DOCS + SEARCH diff --git a/static/images/banners/community-light.svg b/static/images/banners/community-light.svg index a7524c63b..6242a7bf9 100644 --- a/static/images/banners/community-light.svg +++ b/static/images/banners/community-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI SHARED NETWORK Community models / prompts / tools - 01MODELS02PROMPTS03TOOLS + 01MODELS02PROMPTS03TOOLS - + - + - SHARED REGISTRY + SHARED REGISTRY - + - DOCS - NETWORK + DOCS + NETWORK diff --git a/static/images/banners/computer-light.svg b/static/images/banners/computer-light.svg index c570fe1d5..3c5aee244 100644 --- a/static/images/banners/computer-light.svg +++ b/static/images/banners/computer-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI REMOTE MACHINE Computer files / shell / git - 01FILES02SHELL03GIT + 01FILES02SHELL03GIT - + - + - LOCAL MACHINE + LOCAL MACHINE - + - DOCS - COMPUTER + DOCS + COMPUTER diff --git a/static/images/banners/event-function-light.svg b/static/images/banners/event-function-light.svg index 208b60f90..aecdcc2f7 100644 --- a/static/images/banners/event-function-light.svg +++ b/static/images/banners/event-function-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI AUTOMATION HOOKS Event Functions events / functions / triggers - 01EVENTS02FUNCTIONS03TRIGGERS + 01EVENTS02FUNCTIONS03TRIGGERS - + - + - EVENTFILTERFUNCTIONACTION + EVENTFILTERFUNCTIONACTION - + - DOCS - PIPELINE + DOCS + PIPELINE diff --git a/static/images/banners/extensibility-light.svg b/static/images/banners/extensibility-light.svg index bfce3d8d5..c6a330a82 100644 --- a/static/images/banners/extensibility-light.svg +++ b/static/images/banners/extensibility-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI PLUGIN SURFACE Extensibility tools / functions / skills - 01TOOLS02FUNCTIONS03SKILLS + 01TOOLS02FUNCTIONS03SKILLS - + - + - CAPABILITY BUS + CAPABILITY BUS - + - DOCS - MODULES + DOCS + MODULES diff --git a/static/images/banners/features-light.svg b/static/images/banners/features-light.svg index a1d826c26..4c895290f 100644 --- a/static/images/banners/features-light.svg +++ b/static/images/banners/features-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI FULL STACK Features voice / vision / retrieval - 01VOICE02VISION03RETRIEVAL + 01VOICE02VISION03RETRIEVAL - + - + - VOICEVISIONRETRIEVALTOOLS + VOICEVISIONRETRIEVALTOOLS - + - DOCS - STACK + DOCS + STACK diff --git a/static/images/banners/kbsync-light.svg b/static/images/banners/kbsync-light.svg index 7d75f258e..eb0c15dc9 100644 --- a/static/images/banners/kbsync-light.svg +++ b/static/images/banners/kbsync-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI KNOWLEDGE PIPELINE Knowledge Sync sync / index / retrieve - 01SYNC02INDEX03RETRIEVE + 01SYNC02INDEX03RETRIEVE - + - + - SOURCECHUNKINDEXQUERY + SOURCECHUNKINDEXQUERY - + - DOCS - SYNC + DOCS + SYNC diff --git a/static/images/banners/knowledge-light.svg b/static/images/banners/knowledge-light.svg index 73bb14e8c..2d0a0d8f7 100644 --- a/static/images/banners/knowledge-light.svg +++ b/static/images/banners/knowledge-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI RETRIEVAL CORE Knowledge docs / chunks / citations - 01DOCS02CHUNKS03CITATIONS + 01DOCS02CHUNKS03CITATIONS - + - + - CITATION TRACE + CITATION TRACE - + - DOCS - KNOWLEDGE + DOCS + KNOWLEDGE diff --git a/static/images/banners/notes-light.svg b/static/images/banners/notes-light.svg index 773577976..3abbd4960 100644 --- a/static/images/banners/notes-light.svg +++ b/static/images/banners/notes-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI PLAIN FILES Notes capture / edit / search - 01CAPTURE02EDIT03SEARCH + 01CAPTURE02EDIT03SEARCH - + - + - PLAIN TEXT + PLAIN TEXT - + - DOCS - NOTES + DOCS + NOTES diff --git a/static/images/banners/terminal-light.svg b/static/images/banners/terminal-light.svg index 27fc1b078..931310c82 100644 --- a/static/images/banners/terminal-light.svg +++ b/static/images/banners/terminal-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI SHELL ACCESS Terminal commands / logs / sessions - 01COMMANDS02LOGS03SESSIONS + 01COMMANDS02LOGS03SESSIONS - + - + - $ open-webui runok session ready$ open-webui runok session ready$ open-webui runok session ready + $ open-webui runok session ready$ open-webui runok session ready$ open-webui runok session ready - + - DOCS - TERMINAL + DOCS + TERMINAL diff --git a/static/images/banners/workspace-knowledge-light.svg b/static/images/banners/workspace-knowledge-light.svg index 2621d7b2b..cb7f2a0c2 100644 --- a/static/images/banners/workspace-knowledge-light.svg +++ b/static/images/banners/workspace-knowledge-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI PROJECT MEMORY WorkspaceKnowledge repo / docs / decisions - 01REPO02DOCS03DECISIONS + 01REPO02DOCS03DECISIONS - + - + - CITATION TRACE + CITATION TRACE - + - DOCS - KNOWLEDGE + DOCS + KNOWLEDGE diff --git a/static/images/banners/workspace-light.svg b/static/images/banners/workspace-light.svg index a0ea8cf29..dbbd1aade 100644 --- a/static/images/banners/workspace-light.svg +++ b/static/images/banners/workspace-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI LOCAL CONTEXT Workspace repo / state / environment - 01REPO02STATE03ENVIRONMENT + 01REPO02STATE03ENVIRONMENT - + - + - $ run + $ run - + - DOCS - WORKSPACE + DOCS + WORKSPACE diff --git a/static/images/banners/workspace-models-light.svg b/static/images/banners/workspace-models-light.svg index bab0872c1..d029e2dff 100644 --- a/static/images/banners/workspace-models-light.svg +++ b/static/images/banners/workspace-models-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI MODEL SELECTION Workspace Models routing / params / control - 01ROUTING02PARAMS03CONTROL + 01ROUTING02PARAMS03CONTROL - + - + - LOCALFASTVISIONLONGROUTING POLICY + LOCALFASTVISIONLONGROUTING POLICY - + - DOCS - MODELS + DOCS + MODELS diff --git a/static/images/banners/workspace-prompts-light.svg b/static/images/banners/workspace-prompts-light.svg index 4bac7a893..5ccc5375d 100644 --- a/static/images/banners/workspace-prompts-light.svg +++ b/static/images/banners/workspace-prompts-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI SYSTEM INTENT WorkspacePrompts templates / roles / policy - 01TEMPLATES02ROLES03POLICY + 01TEMPLATES02ROLES03POLICY - + - + - SYSTEM:ROLE BOUNDARY + SYSTEM:ROLE BOUNDARY - + - DOCS - PROMPTS + DOCS + PROMPTS diff --git a/static/images/banners/workspace-skills-light.svg b/static/images/banners/workspace-skills-light.svg index b2dea44d9..116196b60 100644 --- a/static/images/banners/workspace-skills-light.svg +++ b/static/images/banners/workspace-skills-light.svg @@ -2,28 +2,28 @@ - - - - + + + + OPEN WEBUI CAPABILITY PACKS Workspace Skills instructions / tools / reuse - 01INSTRUCTIONS02TOOLS03REUSE + 01INSTRUCTIONS02TOOLS03REUSE - + - + - INSTRUCTTOOLREUSERUN + INSTRUCTTOOLREUSERUN - + - DOCS - SKILLS + DOCS + SKILLS From 21f689468ba67167868e1a84fa4941a177962a95 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 20:52:15 -0500 Subject: [PATCH 05/25] refac --- src/css/custom.css | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index ca1ca0795..3f3a9b268 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -80,6 +80,7 @@ --ifm-menu-color-background-hover: #000; --ifm-navbar-background-color: #000; --ifm-footer-background-color: #000; + --ifm-toc-border-color: #101010; --ifm-footer-color: #555; --ifm-hover-overlay: rgb(255 255 255 / 4%); --ifm-menu-color: #888; @@ -117,10 +118,6 @@ p { transition: transform var(--ifm-transition-fast) ease-in-out; } -.theme-doc-sidebar-menu.menu__list { - margin-top: 16px; -} - nav.menu { margin-right: 1px; padding: 0; @@ -296,10 +293,19 @@ blockquote { } [data-theme="dark"] blockquote { - border-left-color: #000; + border-left-color: #333; color: #999; } +[data-theme="dark"] .table-of-contents__left-border { + border-left-color: #101010; +} + +.table-of-contents.table-of-contents__left-border { + padding-top: 0; + padding-bottom: 0; +} + /* โ”€โ”€โ”€ Navbar โ”€โ”€โ”€ */ [data-theme="light"] .navbar__brand:hover { color: #000; @@ -389,7 +395,6 @@ article p a { max-width: 700px; margin-left: auto; margin-right: auto; - padding-top: 20px; } } @@ -747,6 +752,11 @@ html[data-theme="dark"] .navbar { background-color: var(--ifm-navbar-background-color) !important; } +.container.padding-top--md.padding-bottom--lg { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + /* โ”€โ”€โ”€ Misc โ”€โ”€โ”€ */ .small-text { From 099e116702c463ca1c814c35d5a5d1ca4cfb66ab Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 20:54:07 -0500 Subject: [PATCH 06/25] refac --- src/css/custom.css | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/css/custom.css b/src/css/custom.css index 3f3a9b268..15f431e6a 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -600,6 +600,27 @@ div.special_table + table tr:nth-child(even) { display: none; } +.theme-doc-sidebar-menu .menu__link--sublist-caret::after, +.theme-doc-sidebar-menu .menu__caret::before { + background: none; + border-color: currentcolor; + border-style: solid; + border-width: 0 1px 1px 0; + filter: none; + height: 0.35rem; + min-width: 0.35rem; + opacity: 0.28; + transform: rotate(45deg); + width: 0.35rem; +} + +.theme-doc-sidebar-menu + .menu__list-item--collapsed + .menu__link--sublist-caret::after, +.theme-doc-sidebar-menu .menu__list-item--collapsed .menu__caret::before { + transform: rotate(-45deg); +} + .category-link a::after { content: "\2192"; font-size: 16px; From f90f2f0d16b81fa741df60939d95b48cac896c0c Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 21:01:37 -0500 Subject: [PATCH 07/25] refac --- docs/ecosystem/computer/_category_.json | 2 +- docs/ecosystem/index.md | 1 + .../knowledge-base-sync/_category_.json | 2 +- .../knowledge-base-sync/daemon.md | 6 ++--- .../knowledge-base-sync/index.md | 26 +++++++++---------- .../plugin/tools/openapi-servers/index.mdx | 2 +- docs/features/index.mdx | 3 +-- docs/features/workspace/knowledge.mdx | 6 ++--- 8 files changed, 24 insertions(+), 24 deletions(-) rename docs/{features => ecosystem}/knowledge-base-sync/_category_.json (57%) rename docs/{features => ecosystem}/knowledge-base-sync/daemon.md (95%) rename docs/{features => ecosystem}/knowledge-base-sync/index.md (91%) diff --git a/docs/ecosystem/computer/_category_.json b/docs/ecosystem/computer/_category_.json index b8b8d7f79..725bd50e1 100644 --- a/docs/ecosystem/computer/_category_.json +++ b/docs/ecosystem/computer/_category_.json @@ -1,5 +1,5 @@ { - "label": "๐Ÿ–ฅ๏ธ Open WebUI Computer", + "label": "๐Ÿ–ฅ๏ธ Open WebUI Computer (cptr)", "position": 36, "collapsible": true, "collapsed": true diff --git a/docs/ecosystem/index.md b/docs/ecosystem/index.md index 17be1e3c0..28af283d0 100644 --- a/docs/ecosystem/index.md +++ b/docs/ecosystem/index.md @@ -9,4 +9,5 @@ Open WebUI is the core AI interface. The ecosystem is the set of separate Open W ## 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. diff --git a/docs/features/knowledge-base-sync/_category_.json b/docs/ecosystem/knowledge-base-sync/_category_.json similarity index 57% rename from docs/features/knowledge-base-sync/_category_.json rename to docs/ecosystem/knowledge-base-sync/_category_.json index e7ea40728..4c92c9fd2 100644 --- a/docs/features/knowledge-base-sync/_category_.json +++ b/docs/ecosystem/knowledge-base-sync/_category_.json @@ -1,5 +1,5 @@ { - "label": "๐Ÿ”„ Knowledge Base Sync", + "label": "๐Ÿ”„ Knowledge Base Sync (oikb)", "position": 34, "collapsible": true, "collapsed": true diff --git a/docs/features/knowledge-base-sync/daemon.md b/docs/ecosystem/knowledge-base-sync/daemon.md similarity index 95% rename from docs/features/knowledge-base-sync/daemon.md rename to docs/ecosystem/knowledge-base-sync/daemon.md index 7a69de581..04f89cd9e 100644 --- a/docs/features/knowledge-base-sync/daemon.md +++ b/docs/ecosystem/knowledge-base-sync/daemon.md @@ -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. diff --git a/docs/features/knowledge-base-sync/index.md b/docs/ecosystem/knowledge-base-sync/index.md similarity index 91% rename from docs/features/knowledge-base-sync/index.md rename to docs/ecosystem/knowledge-base-sync/index.md index 4caf72794..99d4154dd 100644 --- a/docs/features/knowledge-base-sync/index.md +++ b/docs/ecosystem/knowledge-base-sync/index.md @@ -1,7 +1,7 @@ --- sidebar_position: 1 title: "Knowledge Base Sync (oikb)" -slug: /features/knowledge-base-sync +slug: /ecosystem/knowledge-base-sync --- import ThemedImage from '@theme/ThemedImage'; @@ -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 ` | Incremental sync from a source to a KB (`--kb-id`). Omit `` to sync every entry in [`.oikb.yaml`](/features/knowledge-base-sync/daemon#the-oikbyaml-config-file). | +| `oikb sync ` | Incremental sync from a source to a KB (`--kb-id`). Omit `` 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 --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. diff --git a/docs/features/extensibility/plugin/tools/openapi-servers/index.mdx b/docs/features/extensibility/plugin/tools/openapi-servers/index.mdx index 6c87de69c..3fc0ab36e 100644 --- a/docs/features/extensibility/plugin/tools/openapi-servers/index.mdx +++ b/docs/features/extensibility/plugin/tools/openapi-servers/index.mdx @@ -11,7 +11,7 @@ This repository provides reference OpenAPI Tool Server implementations making it 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? diff --git a/docs/features/index.mdx b/docs/features/index.mdx index 308d40aa1..2b4776e41 100644 --- a/docs/features/index.mdx +++ b/docs/features/index.mdx @@ -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) --- diff --git a/docs/features/workspace/knowledge.mdx b/docs/features/workspace/knowledge.mdx index 8368cbc9e..743b30155 100644 --- a/docs/features/workspace/knowledge.mdx +++ b/docs/features/workspace/knowledge.mdx @@ -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 From 350bc35e1f95ce7d0dd136a1cd74266c6407ff3e Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 21:07:39 -0500 Subject: [PATCH 08/25] Update custom.css --- src/css/custom.css | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/css/custom.css b/src/css/custom.css index 15f431e6a..6955168f8 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -297,6 +297,28 @@ blockquote { color: #999; } +/* โ”€โ”€โ”€ Admonitions โ”€โ”€โ”€ */ +.alert { + background: transparent; + border-width: 0 0 0 1px; + border-radius: 0; + box-shadow: none; + padding: 0.85rem 0 0.85rem 1rem; +} + +.alert .admonition-heading, +.alert [class*="admonitionHeading"] { + font-family: "IBM Plex Mono", monospace; + font-size: 0.72rem; + font-weight: 600; + letter-spacing: 0.06em; + text-transform: uppercase; +} + +.alert p:last-child { + margin-bottom: 0; +} + [data-theme="dark"] .table-of-contents__left-border { border-left-color: #101010; } From c66a50282c0866dcc3f8489c965f519527109c5d Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 21:15:57 -0500 Subject: [PATCH 09/25] refac --- docusaurus.config.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index c0a369385..bf0f21735 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -89,8 +89,8 @@ const config: Config = { navbar: { title: "Open WebUI", logo: { - src: "images/logo.png", - srcDark: "images/logo-dark.png", + src: "images/favicon.png", + srcDark: "images/favicon.png", }, items: [ { From 3ba723163315c44aa8b69621c6f9ca167ac75f45 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 21:19:01 -0500 Subject: [PATCH 10/25] refac --- docs/enterprise/index.mdx | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/enterprise/index.mdx b/docs/enterprise/index.mdx index d28e8b1d9..cf9667b37 100644 --- a/docs/enterprise/index.mdx +++ b/docs/enterprise/index.mdx @@ -13,7 +13,6 @@ Open WebUI is one of the **fastest-growing AI platforms** in the world. Designed 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) ### See Open WebUI in Action From e5a9dbe019e95371f105c8d27cb6f54e41eaa231 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 21:26:06 -0500 Subject: [PATCH 11/25] refac --- docs/enterprise/index.mdx | 12 ++++- src/css/custom.css | 62 +++++++++++++++++----- static/images/banners/enterprise-dark.svg | 29 ++++++++++ static/images/banners/enterprise-light.svg | 29 ++++++++++ 4 files changed, 119 insertions(+), 13 deletions(-) create mode 100644 static/images/banners/enterprise-dark.svg create mode 100644 static/images/banners/enterprise-light.svg diff --git a/docs/enterprise/index.mdx b/docs/enterprise/index.mdx index cf9667b37..624d967ba 100644 --- a/docs/enterprise/index.mdx +++ b/docs/enterprise/index.mdx @@ -4,7 +4,17 @@ 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 diff --git a/src/css/custom.css b/src/css/custom.css index 6955168f8..9265b9049 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -4,8 +4,7 @@ * Brutal minimalism theme for Open WebUI docs. * Inspired by benji.app โ€” typography-first, zero chrome. */ -@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap"); -@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap"); +@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono&display=swap"); /* Tailwind base styles */ @tailwind base; @@ -30,12 +29,14 @@ --ifm-global-shadow-md: none; --ifm-footer-background-color: #fff; --ifm-font-family-base: - "Inter", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, + "IBM Plex Sans", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif; + --ifm-heading-font-family: var(--ifm-font-family-base); --ifm-font-size-base: 15px; --ifm-line-height-base: 1.65; --ifm-font-weight-base: 400; - --ifm-heading-font-weight: 600; + --ifm-font-weight-bold: 600; + --ifm-heading-font-weight: 500; --ifm-navbar-shadow: none; --ifm-toc-border-color: transparent; --ifm-menu-link-padding-horizontal: 0.75rem; @@ -137,7 +138,7 @@ nav.menu::-webkit-scrollbar { } .menu__link--active { - font-weight: 600; + font-weight: 500; } [data-theme="light"] .menu__link--active { @@ -310,11 +311,48 @@ blockquote { .alert [class*="admonitionHeading"] { font-family: "IBM Plex Mono", monospace; font-size: 0.72rem; - font-weight: 600; + font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; } +.alert [class*="admonitionIcon"] { + align-items: center; + border: 1px solid currentcolor; + display: inline-flex; + font-family: "IBM Plex Mono", monospace; + font-size: 0.62rem; + height: 1rem; + justify-content: center; + line-height: 1; + margin-right: 0.55rem; + opacity: 0.78; + vertical-align: 0.05rem; + width: 1rem; +} + +.alert [class*="admonitionIcon"] :where(svg) { + display: none; +} + +.theme-admonition-note [class*="admonitionIcon"]::before, +.theme-admonition-info [class*="admonitionIcon"]::before { + content: "i"; +} + +.theme-admonition-tip [class*="admonitionIcon"]::before { + content: "+"; +} + +.theme-admonition-warning [class*="admonitionIcon"]::before, +.theme-admonition-caution [class*="admonitionIcon"]::before { + content: "!"; +} + +.theme-admonition-danger [class*="admonitionIcon"]::before { + content: "x"; +} + .alert p:last-child { margin-bottom: 0; } @@ -424,7 +462,7 @@ article p a { @media screen and (width <= 996px) { h1 { font-size: 1.5rem !important; - font-weight: 600; + font-weight: 500; } .hero .hero__title { @@ -556,7 +594,7 @@ div.special_table + table { div.special_table + table tr th { background: transparent; color: #333; - font-weight: 600; + font-weight: 500; padding: 6px 20px; } @@ -581,7 +619,7 @@ div.special_table + table tr:nth-child(even) { margin-right: 4px; border-radius: 3px; font-size: 0.7em; - font-weight: 600; + font-weight: 500; color: #333; } @@ -612,7 +650,7 @@ div.special_table + table tr:nth-child(even) { .category-header .menu__link--sublist { text-transform: uppercase; font-size: 11px; - font-weight: 600; + font-weight: 500; letter-spacing: 0.05em; margin-top: 32px; color: #999; @@ -658,7 +696,7 @@ div.special_table + table tr:nth-child(even) { font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; - font-weight: 600; + font-weight: 500; } [data-theme="light"] a.footer__link-item { @@ -812,7 +850,7 @@ html[data-theme="dark"] .navbar { .select-language { font-size: 1em; - font-weight: 600; + font-weight: 500; margin-bottom: 8px; } diff --git a/static/images/banners/enterprise-dark.svg b/static/images/banners/enterprise-dark.svg new file mode 100644 index 000000000..cd5f5fdf3 --- /dev/null +++ b/static/images/banners/enterprise-dark.svg @@ -0,0 +1,29 @@ + + + + + + + + + + OPEN WEBUI + CONTROLLED AI PLATFORM + Enterprise + security / scale / support + 01SECURITY02DEPLOYMENT03INTEGRATION + + + + + + + + IDENTITYDATADEPLOYSUPPORTOPEN WEBUIFULL CONTROLSELF-HOSTED / PRIVATE CLOUD / AIR-GAPPED + + + + + DOCS + ENTERPRISE + diff --git a/static/images/banners/enterprise-light.svg b/static/images/banners/enterprise-light.svg new file mode 100644 index 000000000..cbf7695cf --- /dev/null +++ b/static/images/banners/enterprise-light.svg @@ -0,0 +1,29 @@ + + + + + + + + + + OPEN WEBUI + CONTROLLED AI PLATFORM + Enterprise + security / scale / support + 01SECURITY02DEPLOYMENT03INTEGRATION + + + + + + + + IDENTITYDATADEPLOYSUPPORTOPEN WEBUIFULL CONTROLSELF-HOSTED / PRIVATE CLOUD / AIR-GAPPED + + + + + DOCS + ENTERPRISE + From 2f1422352be8aa1efd353c6fd9231732b2c30afe Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 21:26:56 -0500 Subject: [PATCH 12/25] refac --- src/css/custom.css | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index 9265b9049..ea7638c01 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -317,42 +317,9 @@ blockquote { } .alert [class*="admonitionIcon"] { - align-items: center; - border: 1px solid currentcolor; - display: inline-flex; - font-family: "IBM Plex Mono", monospace; - font-size: 0.62rem; - height: 1rem; - justify-content: center; - line-height: 1; - margin-right: 0.55rem; - opacity: 0.78; - vertical-align: 0.05rem; - width: 1rem; -} - -.alert [class*="admonitionIcon"] :where(svg) { display: none; } -.theme-admonition-note [class*="admonitionIcon"]::before, -.theme-admonition-info [class*="admonitionIcon"]::before { - content: "i"; -} - -.theme-admonition-tip [class*="admonitionIcon"]::before { - content: "+"; -} - -.theme-admonition-warning [class*="admonitionIcon"]::before, -.theme-admonition-caution [class*="admonitionIcon"]::before { - content: "!"; -} - -.theme-admonition-danger [class*="admonitionIcon"]::before { - content: "x"; -} - .alert p:last-child { margin-bottom: 0; } From 9999ec44136a2416a8dede9741f5c5bd9483e477 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 21:33:14 -0500 Subject: [PATCH 13/25] refac --- docs/alternatives/index.mdx | 2 +- docs/brand.mdx | 4 ++-- docs/contributing.mdx | 4 ++-- docs/ecosystem/_category_.json | 2 +- docs/ecosystem/computer/_category_.json | 2 +- docs/ecosystem/computer/index.md | 2 +- docs/ecosystem/knowledge-base-sync/_category_.json | 2 +- docs/ecosystem/knowledge-base-sync/index.md | 2 +- docs/enterprise/index.mdx | 2 +- docs/faq.mdx | 2 +- docs/features/administration/_category_.json | 2 +- docs/features/administration/index.mdx | 2 +- docs/features/authentication-access/_category_.json | 2 +- docs/features/authentication-access/api-keys.md | 2 +- docs/features/authentication-access/index.mdx | 2 +- docs/features/calendar/_category_.json | 2 +- docs/features/calendar/index.md | 2 +- docs/features/channels/_category_.json | 2 +- docs/features/channels/index.md | 2 +- docs/features/chat-conversations/_category_.json | 2 +- docs/features/chat-conversations/audio/index.mdx | 2 +- .../audio/text-to-speech/openai-edge-tts-integration.md | 2 +- .../chat-conversations/chat-features/autocomplete.md | 2 +- .../chat-features/code-execution/python.md | 2 +- .../chat-conversations/data-controls/archived-chats.md | 2 +- docs/features/chat-conversations/data-controls/files.md | 2 +- .../chat-conversations/data-controls/import-export.md | 2 +- .../chat-conversations/data-controls/shared-chats.md | 2 +- .../image-generation-and-editing/index.mdx | 2 +- docs/features/chat-conversations/index.mdx | 2 +- docs/features/chat-conversations/memory.mdx | 2 +- .../chat-conversations/web-search/agentic-search.mdx | 2 +- docs/features/chat-conversations/web-search/index.mdx | 2 +- .../chat-conversations/web-search/save-to-knowledge.mdx | 2 +- docs/features/extensibility/_category_.json | 2 +- docs/features/extensibility/community.mdx | 2 +- docs/features/extensibility/index.mdx | 2 +- docs/features/extensibility/plugin/development/events.mdx | 2 +- .../extensibility/plugin/development/reserved-args.mdx | 2 +- .../extensibility/plugin/development/under-the-hood.mdx | 2 +- docs/features/extensibility/plugin/functions/action.mdx | 2 +- docs/features/extensibility/plugin/functions/event.mdx | 2 +- docs/features/extensibility/plugin/functions/index.mdx | 2 +- docs/features/extensibility/plugin/functions/pipe.mdx | 2 +- docs/features/extensibility/plugin/index.mdx | 2 +- docs/features/extensibility/plugin/migration/index.mdx | 2 +- docs/features/extensibility/plugin/migration/to-0.5.0.mdx | 2 +- docs/features/extensibility/plugin/migration/to-0.9.0.mdx | 2 +- docs/features/extensibility/plugin/tools/development.mdx | 2 +- .../extensibility/plugin/tools/openapi-servers/index.mdx | 2 +- docs/features/index.mdx | 2 +- docs/features/notes/_category_.json | 2 +- docs/features/notes/index.md | 2 +- docs/features/open-terminal/_category_.json | 2 +- docs/features/open-terminal/index.md | 2 +- .../use-cases/advanced-workflows/app-builder.md | 2 +- .../use-cases/advanced-workflows/code-review.md | 2 +- .../use-cases/advanced-workflows/competitive-analysis.md | 2 +- .../use-cases/advanced-workflows/data-reports.md | 2 +- .../use-cases/advanced-workflows/database-analysis.md | 2 +- .../use-cases/advanced-workflows/document-comparison.md | 2 +- .../use-cases/advanced-workflows/email-processing.md | 2 +- .../use-cases/advanced-workflows/finance-dashboard.md | 2 +- .../use-cases/advanced-workflows/image-processing.md | 2 +- .../use-cases/advanced-workflows/research-assistant.md | 2 +- docs/features/workspace/_category_.json | 2 +- docs/features/workspace/index.mdx | 2 +- docs/features/workspace/knowledge.mdx | 2 +- docs/features/workspace/models.md | 2 +- docs/features/workspace/prompts.md | 2 +- docs/features/workspace/skills.md | 2 +- docs/getting-started/index.md | 2 +- .../getting-started/quick-start/connect-a-provider/index.md | 2 +- docs/getting-started/quick-start/connect-an-agent/index.md | 2 +- docs/intro.mdx | 2 +- docs/license.mdx | 4 ++-- docs/mission.mdx | 2 +- docs/reference/_category_.json | 2 +- docs/reference/index.md | 2 +- docs/reference/monitoring/index.md | 2 +- docs/roadmap.mdx | 6 +++--- docs/security/accepted-risks/_category_.json | 2 +- docs/security/accepted-risks/index.mdx | 2 +- docs/security/index.mdx | 2 +- docs/security/vendor-dispositions/index.mdx | 2 +- docs/sponsorships.mdx | 2 +- docs/team.mdx | 2 +- docs/troubleshooting/context-window.mdx | 2 +- docs/troubleshooting/index.mdx | 4 ++-- docs/troubleshooting/startup.mdx | 2 +- docs/tutorials/_category_.json | 2 +- docs/tutorials/auth-sso/dual-oauth-configuration.mdx | 2 +- docs/tutorials/auth-sso/index.md | 2 +- docs/tutorials/auth-sso/okta-oidc-sso.md | 2 +- docs/tutorials/index.md | 2 +- docs/tutorials/integrations/index.md | 2 +- docs/tutorials/integrations/monitoring/langfuse.md | 2 +- docs/tutorials/integrations/redis.md | 2 +- docs/tutorials/integrations/valkey.md | 2 +- docs/tutorials/maintenance/index.md | 2 +- docs/tutorials/maintenance/offline-mode.mdx | 2 +- docs/tutorials/maintenance/s3-storage.md | 2 +- 102 files changed, 108 insertions(+), 108 deletions(-) diff --git a/docs/alternatives/index.mdx b/docs/alternatives/index.mdx index 5885810a3..1bb5f38a8 100644 --- a/docs/alternatives/index.mdx +++ b/docs/alternatives/index.mdx @@ -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"] --- diff --git a/docs/brand.mdx b/docs/brand.mdx index 6d4ce8fa5..e5bd0ccf9 100644 --- a/docs/brand.mdx +++ b/docs/brand.mdx @@ -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. \ No newline at end of file +Thank you for helping maintain a consistent and clear brand identity for Open WebUI. diff --git a/docs/contributing.mdx b/docs/contributing.mdx index 74425e000..6fa987012 100644 --- a/docs/contributing.mdx +++ b/docs/contributing.mdx @@ -1,9 +1,9 @@ --- sidebar_position: 1600 -title: "๐Ÿค Contributing" +title: "Contributing" --- -# ๐Ÿค Contributing +# Contributing **Help build the AI interface everyone deserves.** diff --git a/docs/ecosystem/_category_.json b/docs/ecosystem/_category_.json index 7f8f5326b..a1457bf6a 100644 --- a/docs/ecosystem/_category_.json +++ b/docs/ecosystem/_category_.json @@ -1,5 +1,5 @@ { - "label": "๐ŸŒ Ecosystem", + "label": "Ecosystem", "position": 201, "collapsible": true, "collapsed": false diff --git a/docs/ecosystem/computer/_category_.json b/docs/ecosystem/computer/_category_.json index 725bd50e1..dcd32489b 100644 --- a/docs/ecosystem/computer/_category_.json +++ b/docs/ecosystem/computer/_category_.json @@ -1,5 +1,5 @@ { - "label": "๐Ÿ–ฅ๏ธ Open WebUI Computer (cptr)", + "label": "Open WebUI Computer (cptr)", "position": 36, "collapsible": true, "collapsed": true diff --git a/docs/ecosystem/computer/index.md b/docs/ecosystem/computer/index.md index 3a5ae5a0d..cf260d0b9 100644 --- a/docs/ecosystem/computer/index.md +++ b/docs/ecosystem/computer/index.md @@ -6,7 +6,7 @@ sidebar_position: 1 import ThemedImage from '@theme/ThemedImage'; import useBaseUrl from '@docusaurus/useBaseUrl'; -# ๐Ÿ–ฅ๏ธ Open WebUI Computer +# Open WebUI Computer Date: Tue, 30 Jun 2026 21:41:41 -0500 Subject: [PATCH 14/25] refac --- .../audio/text-to-speech/openai-edge-tts-integration.md | 2 +- docs/features/extensibility/plugin/development/events.mdx | 2 +- src/components/SponsorList.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/features/chat-conversations/audio/text-to-speech/openai-edge-tts-integration.md b/docs/features/chat-conversations/audio/text-to-speech/openai-edge-tts-integration.md index baca57a45..c5a270191 100644 --- a/docs/features/chat-conversations/audio/text-to-speech/openai-edge-tts-integration.md +++ b/docs/features/chat-conversations/audio/text-to-speech/openai-edge-tts-integration.md @@ -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`? diff --git a/docs/features/extensibility/plugin/development/events.mdx b/docs/features/extensibility/plugin/development/events.mdx index ffc94aa89..01f558d6f 100644 --- a/docs/features/extensibility/plugin/development/events.mdx +++ b/docs/features/extensibility/plugin/development/events.mdx @@ -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. diff --git a/src/components/SponsorList.tsx b/src/components/SponsorList.tsx index 7e8b25a83..64c6da2d1 100644 --- a/src/components/SponsorList.tsx +++ b/src/components/SponsorList.tsx @@ -25,7 +25,7 @@ export const SponsorList = () => { const sponsors = [ { - imgSrc: "/sponsors/sponsor.png", + imgSrc: "/images/favicon.png", url: "https://openwebui.com", name: "Open WebUI", description: "On a mission to build the best AI user interface.", From 2407e4173e238270f88a13dce8cef92ccfadf737 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 22:03:28 -0500 Subject: [PATCH 15/25] Update custom.css --- src/css/custom.css | 113 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 92 insertions(+), 21 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index ea7638c01..f77a2668e 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -537,47 +537,118 @@ article p a { } /* โ”€โ”€โ”€ Tables โ”€โ”€โ”€ */ -div.special_table + table { - border: none; +/* stylelint-disable no-descending-specificity */ +.theme-doc-markdown > table { + margin: 1.1rem 0 1.35rem; } -div.special_table + table thead { - background: rgb(120 120 120 / 6%); - overflow: hidden; +.markdown table { + display: table; + width: 100%; + min-width: 100%; + border-collapse: separate; + border-spacing: 0; + border-width: 1px 0 !important; + border-style: solid; + font-size: 0.92rem; + line-height: 1.55; } -div.special_table + table thead tr { +[data-theme="light"] .markdown table { + border-color: rgb(17 17 17 / 12%); +} + +[data-theme="dark"] .markdown table { + border-color: rgb(255 255 255 / 14%); +} + +.markdown thead, +.markdown thead tr, +.markdown tr, +.markdown tr:nth-child(even) { background: transparent; - border-top: 0; - border-bottom: 0; + border: 0; } -th, -td, -div.special_table + table { +.markdown th, +.markdown td { border-width: 0 !important; + padding: 0.72rem 1rem; + text-align: left; + vertical-align: top; } -div.special_table + table tr th { - background: transparent; - color: #333; +.markdown th { + font-family: "IBM Plex Mono", monospace; + font-size: 0.7rem; font-weight: 500; - padding: 6px 20px; + letter-spacing: 0.04em; + line-height: 1.35; + text-transform: uppercase; + white-space: nowrap; } -[data-theme="dark"] div.special_table + table tr th { +[data-theme="light"] .markdown th { + background: rgb(17 17 17 / 3.5%); + color: #333; +} + +[data-theme="dark"] .markdown th { + background: rgb(255 255 255 / 5%); color: #ccc; } -div.special_table + table tr td { - padding: 6px 20px; - text-align: left; +.markdown table:has(thead th:empty):not(:has(thead th:not(:empty))) thead { + display: none; } -div.special_table + table tr:nth-child(even) { - background: transparent; +.markdown + table:has(thead th:empty):not(:has(thead th:not(:empty))) + tbody + tr:first-child + td { + border-top-width: 0 !important; +} + +.markdown td { + border-top-width: 1px !important; + border-top-style: solid; +} + +[data-theme="light"] .markdown td { + border-top-color: rgb(17 17 17 / 8%); + color: #333; } +[data-theme="dark"] .markdown td { + border-top-color: rgb(255 255 255 / 10%); + color: #bbb; +} + +[data-theme="light"] .markdown tbody tr:hover { + background: rgb(17 17 17 / 2.5%); +} + +[data-theme="dark"] .markdown tbody tr:hover { + background: rgb(255 255 255 / 4%); +} + +.markdown td code, +.markdown th code { + white-space: nowrap; +} + +div.special_table + table { + border: none !important; +} + +div.special_table + table tr th, +div.special_table + table tr td { + padding-top: 0.45rem; + padding-bottom: 0.45rem; +} +/* stylelint-enable no-descending-specificity */ + /* โ”€โ”€โ”€ Custom tags โ”€โ”€โ”€ */ .custom-tag { display: inline; From 0a53e8f9d64be0d12121c3cd3656f9a0504c2c41 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 22:14:59 -0500 Subject: [PATCH 16/25] refac --- docs/enterprise/index.mdx | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/docs/enterprise/index.mdx b/docs/enterprise/index.mdx index 0c07a5e45..dfbdee99a 100644 --- a/docs/enterprise/index.mdx +++ b/docs/enterprise/index.mdx @@ -7,6 +7,12 @@ 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**. + -### 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**. - - ### See Open WebUI in Action Organizations across industries are using Open WebUI to deploy secure, scalable AI platforms. Here are a few of their stories: From 1f9f903aba71baa954b0280ca41b01340b5e9a63 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 22:31:26 -0500 Subject: [PATCH 17/25] Update custom.css --- src/css/custom.css | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/css/custom.css b/src/css/custom.css index f77a2668e..5edd54698 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -546,8 +546,10 @@ article p a { display: table; width: 100%; min-width: 100%; + max-width: 100%; border-collapse: separate; border-spacing: 0; + table-layout: fixed; border-width: 1px 0 !important; border-style: solid; font-size: 0.92rem; @@ -562,6 +564,13 @@ article p a { border-color: rgb(255 255 255 / 14%); } +.markdown details > table { + width: calc(100% - 3rem); + min-width: 0; + margin-right: auto; + margin-left: auto; +} + .markdown thead, .markdown thead tr, .markdown tr, @@ -635,7 +644,9 @@ article p a { .markdown td code, .markdown th code { - white-space: nowrap; + overflow-wrap: anywhere; + white-space: normal; + word-break: break-word; } div.special_table + table { From 4bd5e3a40d55f3cd0693c54a0ccb9e132c2c7a77 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 22:34:47 -0500 Subject: [PATCH 18/25] refac --- src/css/custom.css | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index 5edd54698..af458b9d0 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -564,11 +564,10 @@ article p a { border-color: rgb(255 255 255 / 14%); } -.markdown details > table { +.markdown details table { width: calc(100% - 3rem); min-width: 0; - margin-right: auto; - margin-left: auto; + margin-inline: auto; } .markdown thead, From 1dc1c30577f69a3025992134f6b340aac94aa9dd Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 22:52:19 -0500 Subject: [PATCH 19/25] refac --- src/theme/Icon/Menu/index.tsx | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/theme/Icon/Menu/index.tsx diff --git a/src/theme/Icon/Menu/index.tsx b/src/theme/Icon/Menu/index.tsx new file mode 100644 index 000000000..719d5c261 --- /dev/null +++ b/src/theme/Icon/Menu/index.tsx @@ -0,0 +1,30 @@ +import React, { type ReactNode } from "react"; +import type { Props } from "@theme/Icon/Menu"; + +export default function IconMenu({ + width = 24, + height = 24, + className, + ...restProps +}: Props): ReactNode { + return ( + + ); +} From 918f90acdd0b592b24a93015299ea8bdc686436a Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 22:55:01 -0500 Subject: [PATCH 20/25] refac --- src/css/custom.css | 29 +++++++++++++++++++++++++---- src/theme/Icon/Menu/index.tsx | 1 - 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index af458b9d0..b436c7cdd 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -342,6 +342,27 @@ blockquote { color: #fff; } +.navbar__toggle, +[class*="toggleButton"] { + color: var(--ifm-navbar-link-color); + transition: color var(--ifm-transition-fast) + var(--ifm-transition-timing-default); +} + +.navbar__toggle:hover, +[class*="toggleButton"]:hover { + color: var(--ifm-navbar-link-hover-color); +} + +.navbar__toggle svg { + display: block; +} + +[class*="toggleButton"] svg { + height: 18px; + width: 18px; +} + /* โ”€โ”€โ”€ Pagination โ”€โ”€โ”€ */ .pagination-nav__link { border-radius: 0; @@ -809,8 +830,8 @@ a.footer__link-item:hover { .header-github-link::before { content: ""; - width: 20px; - height: 20px; + width: 18px; + height: 18px; display: flex; background-color: var(--ifm-navbar-link-color); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E"); @@ -824,8 +845,8 @@ a.footer__link-item:hover { .header-discord-link::before { content: ""; - width: 20px; - height: 20px; + width: 18px; + height: 18px; display: flex; background-color: var(--ifm-navbar-link-color); mask-image: url("data:image/svg+xml,%3Csvg aria-hidden='true' role='img' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M19.73 4.87a18.2 18.2 0 0 0-4.6-1.44c-.21.4-.4.8-.58 1.21-1.69-.25-3.4-.25-5.1 0-.18-.41-.37-.82-.59-1.2-1.6.27-3.14.75-4.6 1.43A19.04 19.04 0 0 0 .96 17.7a18.43 18.43 0 0 0 5.63 2.87c.46-.62.86-1.28 1.2-1.98-.65-.25-1.29-.55-1.9-.92.17-.12.32-.24.47-.37 3.58 1.7 7.7 1.7 11.28 0l.46.37c-.6.36-1.25.67-1.9.92.35.7.75 1.35 1.2 1.98 2.03-.63 3.94-1.6 5.64-2.87.47-4.87-.78-9.09-3.3-12.83ZM8.3 15.12c-1.1 0-2-1.02-2-2.27 0-1.24.88-2.26 2-2.26s2.02 1.02 2 2.26c0 1.25-.89 2.27-2 2.27Zm7.4 0c-1.1 0-2-1.02-2-2.27 0-1.24.88-2.26 2-2.26s2.02 1.02 2 2.26c0 1.25-.88 2.27-2 2.27Z' %3E%3C/path%3E%3C/svg%3E"); diff --git a/src/theme/Icon/Menu/index.tsx b/src/theme/Icon/Menu/index.tsx index 719d5c261..6eeb0e745 100644 --- a/src/theme/Icon/Menu/index.tsx +++ b/src/theme/Icon/Menu/index.tsx @@ -23,7 +23,6 @@ export default function IconMenu({ strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.35" - opacity="0.42" /> ); From 27787494ddeb453c58a08ba14027a88b55976f64 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 22:55:43 -0500 Subject: [PATCH 21/25] refac --- docs/license.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/license.mdx b/docs/license.mdx index 2b135c8df..085d57267 100644 --- a/docs/license.mdx +++ b/docs/license.mdx @@ -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)**. Itโ€™s 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 WebUIโ€™s 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, weโ€™ve 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 WebUIโ€™s 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 years, weโ€™ve 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 WebUIโ€™s rapid growth, we began seeing a pattern that put real pressure on the projectโ€™s **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 wasnโ€™t just about credit, it created confusion for end users, **obscured the projectโ€™s 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 weโ€™re actually here to serve: **the real community**. From 14ab9a407a01b4e63fdb7d260a8a324c02b11f60 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Tue, 30 Jun 2026 22:55:54 -0500 Subject: [PATCH 22/25] refac --- docs/license.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/license.mdx b/docs/license.mdx index 085d57267..be4eb7541 100644 --- a/docs/license.mdx +++ b/docs/license.mdx @@ -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)**. Itโ€™s 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 WebUIโ€™s 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 years, weโ€™ve 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 WebUIโ€™s 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, weโ€™ve 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 WebUIโ€™s rapid growth, we began seeing a pattern that put real pressure on the projectโ€™s **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 wasnโ€™t just about credit, it created confusion for end users, **obscured the projectโ€™s 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 weโ€™re actually here to serve: **the real community**. From b54e0d8cad0893a847d3afe79629157012d776f3 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 1 Jul 2026 00:29:13 -0500 Subject: [PATCH 23/25] refac --- docs/enterprise/index.mdx | 2 +- docs/sponsorships.mdx | 2 +- src/css/custom.css | 9 +++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/enterprise/index.mdx b/docs/enterprise/index.mdx index dfbdee99a..51970fec3 100644 --- a/docs/enterprise/index.mdx +++ b/docs/enterprise/index.mdx @@ -126,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)** diff --git a/docs/sponsorships.mdx b/docs/sponsorships.mdx index d56f6ae09..bd3519494 100644 --- a/docs/sponsorships.mdx +++ b/docs/sponsorships.mdx @@ -5,7 +5,7 @@ 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. diff --git a/src/css/custom.css b/src/css/custom.css index b436c7cdd..683df1323 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -345,6 +345,7 @@ blockquote { .navbar__toggle, [class*="toggleButton"] { color: var(--ifm-navbar-link-color); + line-height: 0; transition: color var(--ifm-transition-fast) var(--ifm-transition-timing-default); } @@ -828,6 +829,14 @@ a.footer__link-item:hover { margin-right: 12px; } +.header-github-link::before, +.header-discord-link::before { + flex: 0 0 18px; + mask-position: center; + mask-repeat: no-repeat; + mask-size: contain; +} + .header-github-link::before { content: ""; width: 18px; From dc1fb08f23f7863222e32d2a8c20c296789bb8cf Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 1 Jul 2026 01:09:04 -0500 Subject: [PATCH 24/25] refac --- docs/ecosystem/index.md | 12 ++++++++++ static/images/banners/ecosystem-dark.svg | 29 +++++++++++++++++++++++ static/images/banners/ecosystem-light.svg | 29 +++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 static/images/banners/ecosystem-dark.svg create mode 100644 static/images/banners/ecosystem-light.svg diff --git a/docs/ecosystem/index.md b/docs/ecosystem/index.md index 28af283d0..77d1bc372 100644 --- a/docs/ecosystem/index.md +++ b/docs/ecosystem/index.md @@ -3,8 +3,20 @@ title: "Ecosystem" sidebar_position: 1 --- +import ThemedImage from '@theme/ThemedImage'; +import useBaseUrl from '@docusaurus/useBaseUrl'; + # Ecosystem + + 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 diff --git a/static/images/banners/ecosystem-dark.svg b/static/images/banners/ecosystem-dark.svg new file mode 100644 index 000000000..29520b109 --- /dev/null +++ b/static/images/banners/ecosystem-dark.svg @@ -0,0 +1,29 @@ + + + + + + + + + + OPEN WEBUI + MADE BY OPEN WEBUI + Ecosystem + projects / connectors / tools + 01PROJECTS02CONNECTORS03AGENTS + + + + + + + + PROJECTSCONNECTAGENTSTOOLSOPEN WEBUIECOSYSTEMEXPANDING SURFACE + + + + + DOCS + ECOSYSTEM + diff --git a/static/images/banners/ecosystem-light.svg b/static/images/banners/ecosystem-light.svg new file mode 100644 index 000000000..83790dc6c --- /dev/null +++ b/static/images/banners/ecosystem-light.svg @@ -0,0 +1,29 @@ + + + + + + + + + + OPEN WEBUI + MADE BY OPEN WEBUI + Ecosystem + projects / connectors / tools + 01PROJECTS02CONNECTORS03AGENTS + + + + + + + + PROJECTSCONNECTAGENTSTOOLSOPEN WEBUIECOSYSTEMEXPANDING SURFACE + + + + + DOCS + ECOSYSTEM + From 6a350f3d0cf18dfcfe1a05ba042c960ed584ab33 Mon Sep 17 00:00:00 2001 From: Classic298 <27028174+Classic298@users.noreply.github.com> Date: Wed, 1 Jul 2026 08:58:28 +0200 Subject: [PATCH 25/25] Update env-configuration.mdx --- docs/reference/env-configuration.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference/env-configuration.mdx b/docs/reference/env-configuration.mdx index 3c2b81e1e..7fb2d7aee 100644 --- a/docs/reference/env-configuration.mdx +++ b/docs/reference/env-configuration.mdx @@ -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**. :::