diff --git a/docs/features/chat-conversations/chat-features/code-execution/index.md b/docs/features/chat-conversations/chat-features/code-execution/index.md index c9d40ee9..ce504682 100644 --- a/docs/features/chat-conversations/chat-features/code-execution/index.md +++ b/docs/features/chat-conversations/chat-features/code-execution/index.md @@ -49,19 +49,13 @@ If you are running a multi-user or organizational deployment, **Jupyter is not r ### Open Terminal -[Open Terminal](/features/extensibility/open-terminal) is a lightweight API for running shell commands remotely inside a Docker container. It provides full OS-level access — any language, any tool, any shell command — with container-level isolation. +[Open Terminal](https://github.com/open-webui/open-terminal) is a lightweight API for running shell commands remotely inside a Docker container. It provides full OS-level access — any language, any tool, any shell command — with container-level isolation. - **Full shell access** — models can install packages, run scripts in any language, use system tools like ffmpeg, git, curl, etc. - **Container isolation** — runs in its own Docker container, separate from Open WebUI and other services. - **Rich pre-installed toolset** — the Docker image comes with Python 3.12, data science libraries, build tools, networking utilities, and more. - **Built-in file browser** — browse, preview, create, delete, upload, and download files directly from the chat controls panel. -Open Terminal can be connected to Open WebUI as a [native integration](/features/extensibility/open-terminal#native-integration-recommended) via **Settings → Integrations** (recommended) or as a generic [OpenAPI Tool Server](/features/extensibility/plugin/tools/openapi-servers/open-webui). When using the native integration, Open Terminal endpoints are automatically injected as always-on tools into every chat. - -:::note -Open Terminal currently operates as a **single shared instance** — there is no automatic per-user container provisioning yet. Each user connects to the same container unless separate instances are deployed manually. -::: - ### Comparison | Consideration | Pyodide | Jupyter | Open Terminal | @@ -76,19 +70,3 @@ Open Terminal currently operates as a **single shared instance** — there is no | **Setup** | None (built-in) | Admin configures globally | Native integration via Settings → Integrations, or as a Tool Server | | **Recommended for orgs** | ✅ Safe default | ❌ Not without isolation | ✅ Per-user by design | | **Enterprise scalability** | ✅ Client-side, no server load | ❌ Single shared instance | ⚠️ Manual per-user instances | - -:::tip On the Roadmap: Terminal Manager for Multi-Tenant Deployments - -For organizational and enterprise deployments, a **Terminal Manager** service is being explored that could automatically provision and manage per-user Docker containers. This would potentially: - -- Spin up isolated Open Terminal containers on demand, one per user -- Route requests to the correct container based on user identity -- Enforce resource limits (CPU, memory) per container -- Automatically shut down idle containers (e.g., after 30 minutes of inactivity) -- Clean up containers that haven't been used for a configurable period (e.g., 1 week) - -The idea is to configure this in the admin panel by adding a connection to a Terminal Manager (URL + API key), similar to how Jupyter is configured today. Individual users and self-hosters would continue using Open Terminal directly as a tool without needing the manager. - -This feature is on the roadmap but no timeline has been announced. Follow the [Open Terminal repository](https://github.com/open-webui/open-terminal) for updates. - -:::