Skip to content

Give Agents a Safer Place to Run Code with Open Terminal

Open WebUI project logo representing Open Terminal
Open WebUI provider-family icon from selfh.st/icons, licensed under CC BY 4.0. Open Terminal is maintained by the Open WebUI project.

An agent can write a useful script, but code becomes consequential when something runs it. Open Terminal provides a self-hosted API for command execution, terminal sessions, file management, and search.

The value is not merely remote shell access. It is the ability to choose a deliberate execution environment instead of quietly giving an AI application access to the machine where it happens to run.

Docker and bare metal are different promises

Section titled “Docker and bare metal are different promises”

In Docker mode, commands run inside a container. The image, mounts, network access, credentials, and container privileges define what the agent can reach.

In bare-metal mode, commands run directly on the host with the permissions of the Open Terminal service account. That can be appropriate for personal automation, but it is not a sandbox.

Prefer a container for generated or uncertain code. Mount only the workspace the task requires, and use a smaller image when a stable workflow needs only a few tools.

Mounting /var/run/docker.sock lets the container control the host’s Docker daemon. That usually means effective root access to the host: it can start privileged containers, mount host paths, alter networks, and manage other workloads.

Do not describe that arrangement as isolated. If Docker control is unavoidable, use a dedicated host and treat every authorized terminal user as a host administrator.

File-browser roots are not access controls

Section titled “File-browser roots are not access controls”

Open Terminal can report a friendly root for client navigation. The project explicitly documents that this is a user-interface hint, not a restriction on terminal commands or file APIs.

Real restrictions come from operating-system permissions, container mounts, namespaces, network policy, and the identity running the service.

  • Set a strong API key and deliver it through a secrets manager.
  • Limit network access to intended clients.
  • Use protected transport across untrusted networks.
  • Mount one purpose-specific workspace rather than an entire home directory.
  • Avoid host credentials and unrestricted outbound access.
  • Run untrusted work in disposable containers.
  • Keep persistent volumes only when their contents are needed.
  • Review logs for sensitive command output.
  • Maintain an independent way to stop or replace the service.

Open Terminal integrates directly with Open WebUI. Personal connections can be reached from the browser, while system-level connections can be assigned to users or groups. That convenience makes access review especially important.

The built-in multi-user mode uses separate Linux accounts and permissions inside one container. Users still share a kernel, network, and system resources. The project positions this for small, trusted groups, not mutually untrusted production tenants.

Use separate containers or stronger workload isolation when one user’s process must not affect another.

Open Terminal is useful for bounded build, conversion, analysis, and automation work. It is dangerous when deployed as a broad, internet-accessible shell with sensitive mounts.

The right question is not “is it containerized?” The right question is “what can this identity reach if every command succeeds?”