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。
如何开始
- 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-terminalhttp://localhost:8000访问,其 OpenAPI 文档位于/docs。 - 裸机
(或者使用pip install open-terminal open-terminal run --host 0.0.0.0 --port 8000 --api-key your-secret-keyuvx进行一次性运行,无需安装。)
自定义
- 通过三个
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
- 项目