open-webui/open-terminal

A computer you can curl ⚡

Open Terminal – 面向 AI 代理的远程 Shell

它是什么 – Open Terminal 是一项自托管服务,通过简单的 REST API 暴露类 Unix shell、文件浏览器和代码执行能力。它允许基于 LLM 的助手(或任何自动化工具)发送命令、读写文件,甚至在同一环境中运行 Docker。

为什么对 AI 很重要 – 大型语言模型可以生成代码,但它们需要一个安全的地方来运行这些代码。Open Terminal 提供了一个沙盒(Docker)或直接(裸机)执行主机,可以从 Open WebUI 等 AI 界面调用,实现端到端的“写代码-运行-检查”循环。

主要功能

  • 两种部署模式 – Docker(隔离,预装工具链)或 Python 包(在主机上运行)。
  • 丰富的工具集 – Python、Node.js、git、ffmpeg、LibreOffice、LaTeX、Docker CLI、数据科学库等。
  • 可配置镜像变体 – latest(完整)、slim(约 430 MB)、alpine(约 230 MB)、openshift(受限)。
  • 运行时包安装 – 通过环境变量(OPEN_TERMINAL_PACKAGES、*_PIP_PACKAGES、*_NPM_PACKAGES)。
  • 多用户模式 – 可选地在单个容器内为每个用户创建 Linux 账户(不是安全边界)。
  • Docker 套接字访问 – 挂载 /var/run/docker.sock 让代理构建/运行容器(完全控制主机,请谨慎使用)。
  • 文件浏览器根目录提示 – UI 可以显示友好的起始目录,而不限制 shell 访问。
  • Office 预览 – LibreOffice 可以即时将 DOCX/PPTX 转换为 PDF。

如何开始

  1. Docker(推荐)
    docker run -d --name open-terminal -p 8000:8000 \
      -v open-terminal:/home/user \
      -e OPEN_TERMINAL_API_KEY=your-secret-key \
      ghcr.io/open-webui/open-terminal
    
    服务将在 http://localhost:8000 访问,其 OpenAPI 文档位于 /docs。
  2. 裸机
    pip install open-terminal
    open-terminal run --host 0.0.0.0 --port 8000 --api-key your-secret-key
    
    (或者使用 uvx 进行一次性运行,无需安装。)

自定义

  • 通过三个 OPEN_TERMINAL_*_PACKAGES 环境变量添加额外的 apt/pip/npm 包,或使用提供的 Dockerfile 构建自定义 Docker 镜像。
  • 使用 TOML 配置文件(~/.config/open-terminal/config.toml)或环境变量调整设置;CLI 标志覆盖所有设置。
  • 对于生产环境的多用户隔离,单独的 Terminals 项目(企业版)为每个用户创建专用容器。

集成 – Open Terminal 直接插入 Open WebUI。在 UI 中,您可以在 Integrations → Open Terminal 下添加终端 URL 和 API 密钥。然后 UI 会显示文件浏览器侧边栏,并允许您从聊天中执行命令。

安全说明

  • Docker 模式隔离主机;裸机模式以您的用户权限运行命令。
  • 挂载 Docker 套接字使容器对主机具有根级控制。
  • 内置多用户模式共享单个内核,仅对可信用户安全。

许可证 – MIT。


所有细节均来自仓库的 README;未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • Dispatch
  • 项目