All articles

November 4, 2026 / 16 MINUTES READ

Open WebUI v0.13.0: your model gets a computer

Open WebUI v0.13.0: your model gets a computer
SUMMARY

v0.13.0 gives your model a computer. It can work on a desktop and in a browser in tabs beside your chat while you watch and step in, and a Git panel lets you review what it changed. Models can hand work to sub-agents on other models and write their own tools, and MCP servers can show interactive apps in the chat. Teams get comment threads, a notification inbox, and side chats. The release includes security fixes and a database migration.

Open WebUI v0.13.0 gives your model a computer. It opens apps on a real desktop, tests its work in a real browser, and leaves its changes in Git for you to review, all in tabs beside your chat. You can watch it work, take the mouse, or make every step wait for your approval.

That's the headline, and there's plenty around it. Each section below shows a feature, then walks you through trying it yourself. Most of the clips follow one demo project, date-parser, on its way to v2.4.

The short version #

  • A computer for your model. With Open Terminal connected, a model works on a real desktop and in a real browser while you watch, step in, or approve each action.
  • Git in the side panel. Review what the model changed, then stage, commit, push, and work with pull requests without leaving the chat.
  • Tabs beside your chat. Files, terminals, artifacts, previews, voice calls, and comments sit next to the conversation, and they can fill the whole window.
  • Built for teams. Comment on the exact words, catch everything in one inbox, and ask questions in a side chat.
  • More capable models. Sub-agents can run on other models, a model can write its own tools, and MCP servers can show interactive apps in the chat.

Update as soon as you can. v0.13.0 includes security fixes, and we'll publish the advisories once CVE numbers are assigned. It also includes a database migration, so back up first. A few changes need a decision, and Before you upgrade covers them.

Give your model a computer #

Hand a model work that lives in apps, not only in text. It works on a desktop in a tab beside your chat, and every click happens in front of you.

The model double-clicks an import log, reads it in LibreOffice Calc, and names the format that keeps failing

Take the mouse whenever you want, work the same apps yourself, check a document it made, or handle a step that needs manual input. Keyboard, clipboard, and audio come through too, where they're available.

Try it. The desktop runs through Open Terminal, a self-hosted environment where a model can run commands and manage files. You set it up once, and the next two sections use it too.

Start it with Docker, and swap in your own key. Use the default image, about 4 GB, because the slim and alpine images don't include the desktop.

bash
docker run -d --name open-terminal --restart unless-stopped -p 8000:8000 -v open-terminal:/home/user -e OPEN_TERMINAL_API_KEY=your-secret-key ghcr.io/open-webui/open-terminal

Then, in Open WebUI:

Open Terminal added in Settings, switched on, and picked in the message box, and the desktop appears

  1. Click your name at the bottom of the sidebar, and go to Settings > Admin > Integrations.
  2. In the Open Terminal section, click +, enter http://localhost:8000 and your key, and save. The connection guide covers other setups.
  3. Turn on the switch next to your new connection. It starts off, and the Terminal menu won't appear until it's on.
  4. Start a new chat with a model that has tool calling and image input, because desktop tools send screenshots.
  5. In the message box, pick your terminal from the Terminal menu.
  6. Click the Tabs button at the top of the chat, and open the Desktop tab from the + menu.
  7. Send your request. We used this one:

On the desktop, double-click failed-dates.csv to open it in LibreOffice Calc and read it the way I would. Then tell me which date format keeps failing.

You'll see the mouse move on the desktop, and the answer arrives in the chat. If it doesn't go that way:

  • Ask the model to work the desktop itself, such as "double-click the file". A program it starts from the shell has no display, so it won't appear on the desktop.
  • If a local model clicks in the wrong spot, tell it in the system prompt that clicks take pixel coordinates from the latest screenshot, and give the screenshot's size. Some local models answer on a 0 to 1000 grid until you say so.
  • If nothing happens at all, check the model's tool-calling mode, which should be Native.

Where it runs. In the default Docker image, it's a Linux desktop inside the container, apart from your own machine. Installed with pip on macOS or Windows, it's your own logged-in screen, so the model works as you.

Where screenshots go. They go to the model you pick. A local model keeps them on your hardware, and a cloud model sends them to its provider.

We recorded these clips on the Docker image with Open Terminal v0.16.0, with gpt-6.1-sol as the main model and gpt-6-luna running the sub-agents.

Tabs that hold everything #

We rebuilt the space beside your chat around tabs. Files, terminal sessions, artifacts, previews, voice calls, and comments now sit next to the conversation. Drag tabs into any order, and create new files that save straight into the selected terminal.

Tabs take the whole window, then go back beside the conversation

Try it. On a larger screen, click Use full-width tabs to give the tabs the whole chat area, with the conversation as a tab of its own. Click Use side tabs to go back. Open WebUI remembers your choice.

Let it fix the code #

You don't have to take a model's word for what it changed. From here we follow date-parser, a small demo project with one failing test between it and v2.4. Hand the model that test, and the Git panel fills in as it works.

The Changes list fills in as the model fixes a failing test, then a diff opens

Try it.

  1. With your terminal picked, open the Files tab and click into a folder that's a Git repository.
  2. Open the Git panel at the bottom of the Files tab.
  3. Give the model a job in that folder. We used this one:

A test in the date-parser folder fails. Fix it and run python3 -m unittest. Don't commit.

Your changes appear in the panel as the model makes them, and clicking one opens its diff. From the same panel, you can stage, discard, and commit changes, manage branches and worktrees, push and pull, browse history, and work with GitHub pull requests. Open files can show their changes with Show diff. On terminals that support it, the panel, the list of open ports, and running processes update as soon as something changes.

Let it test in a browser #

A model can now check what it builds the way you would. With the fix in, we asked for the v2.4 announcement page, and the model built it, served it, and opened it in a browser you share.

The model builds a small page on the terminal, serves it, and checks it in the shared browser

Try it.

  1. Make sure you're on Open Terminal v0.16.0 or later, with your terminal picked in the message box.
  2. Open the Browser tab from the + menu.
  3. Ask the model to build something and check it. We used this:

Make a one-page site in a release-notes folder in my home folder announcing date-parser v2.4: ISO dates like 2026-11-02 now parse. Serve it on port 5173, then open it in the browser and check it.

The page opens in the tab, and you can use it at the same time as the model. We added the Browser tab with navigation controls, multiple tabs, and a mobile viewport, and it opens websites and local development servers. Chrome mode gives you and the model one shared browser session, so it can navigate sites, fill in forms, and test web apps. Proxy mode is still there for previews. The browser tools need Chrome, and the README lists the settings.

On the open web, a page can carry instructions aimed at the model, local or not. For sites you don't control, run Open Terminal in Docker, keep Ask for approval on, and stay signed out of accounts you care about. The model can use whatever you're signed in to in that shared session. Published Docker images turn off Chromium's own sandbox so it can start under Docker's default restrictions. If your runtime allows it, set OPEN_TERMINAL_BROWSER_NO_SANDBOX=false to turn it back on.

Bring your team in #

Your team can review a model's work right where it happened, on the exact words.

A comment on one sentence mentions a teammate, whose window opens the highlighted passage

Try it.

  1. Turn on Comments in Settings > Admin > General, or set ENABLE_COMMENTS.
  2. Select a passage in a chat message or a note page, and click Comment.
  3. Type your comment, and use @ to mention a teammate.

The passage stays highlighted, and your teammate lands on it. The Comments tab in the side panel, which /comments opens, holds the thread, with replies and reactions. Comments work on chats, notes, models, knowledge bases, prompts, skills, and tools.

Ask something on the side #

Ask a quick question without derailing the conversation.

/btw opens a side chat that answers outside the main conversation

Try it. Type /side or /btw in a chat, or choose Side chat in the side panel, and a temporary conversation opens with the chat so far as context. Nothing from it is added to the main chat, and it disappears when you close its tab. Side chats are for administrators and people with the new Allow Side Chat permission, which is off by default.

One inbox for what needs you #

Mentions, replies, and failed automation runs all land in one place, the Inbox we added to the sidebar.

A mention arrives, and the inbox lists it beside a failed automation run

Try it. It's already on. Click the bell at the top of the sidebar to see comments on your items, replies, mentions in comments and channels, failed automation runs, and upcoming calendar events. Administrators can turn it off in Settings > Admin > General, or with ENABLE_NOTIFICATIONS.

Stay in control #

You don't have to sit and watch while a model works. Turn on approvals, and every tool call waits for you, including the desktop and browser tools. We put a "Waiting for approval" marker in the sidebar, so you can work in another chat and come back when you're needed.

A tool call waits in one chat while the sidebar shows its marker from another

Try it.

  1. An administrator turns on Tool Permissions in Settings > Admin > Interface, or sets ENABLE_TOOL_PERMISSIONS.
  2. Open the + menu in the message box, and pick Ask for approval.
  3. Ask the model to use a tool, then click Allow when it stops.

The default is Full access, where tool calls run straight away.

Run apps in your chat #

A reply can now be a working app. We added MCP apps, so a tool from an MCP server can show an interactive app right in the conversation after it runs. MCP servers are outside tools that a model can call. For date-parser, that's a release board where the fix moves to Done.

A release board drawn by an MCP server, and the confirmation before it moves a card

Try it.

  1. Connect an MCP server that comes with an app in Settings > Admin > Integrations.
  2. In the message box, open Integrations, then Tools, and switch it on.
  3. Ask for it. We typed "Show me the v2.4 release board."

The app sits in a sandboxed frame that can only reach the sites the server declares, and every tool call it wants to make waits for you to confirm it.

More for everyone #

Sub-agents on other models #

Put a large model in charge, and let small ones take the simple questions. We made sub-agents work across models, so you can assign research, coding, and review to different models.

A small model picked in the Sub-agents list, then sub-agents on it reading three vendor notes

Try it.

  1. Turn on Enable sub-agents in Settings > Admin > Sub-agents, or set ENABLE_SUBAGENTS. They're off by default, and they have no limits unless you set them.
  2. Edit a model in the model editor, and pick the models it can hand work to in its Sub-agents list.
  3. Ask it to split up a job. The parent chooses among the models the user can access.

To give a sub-agent a terminal file, have the model put the file's path or its text in the task.

Models that write their own tools #

Ask a model for a tool it doesn't have, and it writes one. With native function calling, it can create a private Python tool in your workspace, ready to use again.

The model writes a temperature converter, which then opens from Workspace > Tools

Try it. Ask for the tool in plain words, then find it in Workspace > Tools. It's there for administrators and for people allowed to create workspace tools, and you can turn it off for a model under Tool Creation in its builtin tools.

Controls beside the message box #

Everything you set for one chat now sits next to where you type.

Setting a chat's system prompt from Controls beside the message box

Try it. Open Controls from the model controls menu next to the message input. We moved a chat's files, valves, system prompt, and advanced parameters there. The button at the top of the chat opens the tabbed side panel instead.

Models in 3D #

Open a 3D file without leaving Open WebUI. We built a viewer you can rotate and zoom.

An STL file from the terminal in the 3D viewer

Try it. Click a GLB, glTF, STL, OBJ, or PLY file in a terminal's file browser, or in a file shown in a reply.

Small things you'll notice #

  • Every block in a note has a handle, so you can drag it or move it up or down.
  • Code blocks in notes have a Copy button.
  • The rename field at the top of a chat has the sparkle button that generates a title.
  • From 768 pixels wide, channel threads and a note's pages and chat open beside the content, not over it.
  • The PowerPoint preview draws pie, doughnut, and horizontal bar charts.
  • Terminal files show their size in the toolbar, and the file browser can sort by date added.
  • Hovering a reaction in a channel shows who reacted.

More accessibility work #

We kept going after the last release's work. Screen readers now hear a name for every window, form field, setting, and icon button, and keyboard users can answer tool approvals, dismiss notifications, resize the sidebar, and reach every event on the calendar. Closing a window opened from a menu returns focus to the menu button.

A tool approval answered with the keyboard alone

More for administrators #

A switch for every tool #

You can now take a tool out of use without deleting it. Every tool in Workspace > Tools has an on and off switch, for everyone who can edit it. A tool that's switched off can't be picked or run in any chat, including chats where it was already selected.

Switching a tool off takes it out of the chat's Tools menu

Limits for knowledge bases #

You can now cap how many files a knowledge base holds, how large each file may be, and how many go in with one upload. Set them for all knowledge bases in Settings > Admin > Documents, or with KNOWLEDGE_MAX_FILE_COUNT, KNOWLEDGE_MAX_FILE_SIZE, and KNOWLEDGE_MAX_UPLOAD_COUNT. A knowledge base's owner can set tighter file count and size limits under Advanced, and the global limits always apply.

A file count limit set for every knowledge base, then an upload stopped at the limit

Open WebUI Desktop 0.1 #

We refocused the separately installed app for macOS, Windows, and Linux on setting up and running Open WebUI on your own computer, with optional llama.cpp local models. It has a slimmer interface, searchable settings, startup logs, and optional automatic updates. Download v0.1.4.

Other smaller changes #

  • System prompts, saved prompts, and API chat requests can use {{USER_ROLE}}, which becomes the signed-in user's role.
  • When the same model handles a conversation and its compaction summary, eligible requests reuse the conversation's prompt structure, so the provider can use its prompt cache.
  • Chat Completions API clients get the expected streaming format when the upstream model uses the Responses API.

Before you upgrade #

Back up your database and data first. v0.13.0 changes the database schema, so going back to an earlier version means restoring that backup. Read the first three rows below before you start the new version.

What changedWhat to do
Database schema changes. Mixing versions across workers, servers, or load-balanced instances causes failuresBack up, then update all instances at the same time
Sub-agent limits now default to no limit. They were 20 at once, 20 in the background, 30 tool loops each, and 30,000 characters of outputIf you use sub-agents and want limits, set them in Settings > Admin > Sub-agents, or with SUBAGENTS_MAX_CONCURRENT, SUBAGENTS_MAX_ASYNC, SUBAGENTS_MAX_ITERATIONS, and SUBAGENTS_MAX_OUTPUT
Models with native function calling can create private Python tools, for administrators and people allowed to create workspace toolsTo stop this for a model, turn off Tool Creation in its builtin tools in the model editor
One response can run up to 1,024 rounds of tool calls, up from 256Set CHAT_RESPONSE_MAX_TOOL_CALL_ITERATIONS to 256 to keep the old limit
Controls moved from the top of the chat to the model controls menu next to the message inputLet your users know. The top button now opens the side panel
The chat Overview now opens as a full-screen window from the chat's menuNothing
The Inbox is on by defaultTurn it off in Settings > Admin > General, or with ENABLE_NOTIFICATIONS, if you don't want it
Personal notifications no longer offer "Retrieval Content process failed", so webhooks don't get that alertIf you rely on it, watch file processing another way
Open WebUI Desktop no longer switches between remote servers, bundles Open Terminal, or has the old Spotlight and global voice overlaysSee the Desktop 0.1.0 release notes. The Desktop and Browser tabs use a separately configured Open Terminal

When you're ready, the updating guide has the steps, and the release notes list every change.

Where to start #

Give your model a computer: follow the steps above, and hand it something real to do. Then open the Git panel and review what it changed. Tell us what you build, and what you'd like next, on the issue tracker.

The Open WebUI Team

AI on your terms.

Your models. Your data. Your infrastructure.