open-terminal
open-terminal 是一个轻量级、可自托管的远程终端服务,专为 AI 智能体和自动化工具打造。它通过简洁的 REST API,让 AI 能够安全地执行命令、管理文件及运行代码,完美解决了大模型“只会写代码却无法直接运行”的痛点。
该工具提供两种灵活的部署模式:一是基于 Docker 的沙箱环境,预装了 Python、Node.js、Git 及各类数据科学库,将 AI 操作隔离在容器内,确保宿主机系统安全;二是“裸金属”模式,可直接安装在任意 Python 环境中,让 AI 拥有对本机文件和工具的完全访问权,适合本地开发或个人自动化场景。
open-terminal 特别适合开发者、AI 研究人员以及希望构建自主 Agent 的技术用户。其独特亮点在于丰富的镜像变体选择(从功能齐全的完整版到极小的 Alpine 版),支持通过环境变量动态安装 apt、pip 或 npm 包,并内置出口防火墙和多用户模式。无论是作为 AI 的安全试验场,还是个人项目的自动化助手,open-terminal 都能以极低门槛提供强大的执行环境。
使用场景
某全栈开发者希望让本地 AI 助手自动完成从数据清洗、代码生成到环境验证的完整开发闭环,而不仅仅是提供代码片段。
没有 open-terminal 时
- 执行断层:AI 生成的 Python 数据处理脚本或 Node.js 构建命令只能停留在对话框中,开发者需手动复制粘贴到本地终端运行,效率低下且易出错。
- 环境冲突风险:若直接让 AI 操作本地主机,一旦执行错误的删除命令或安装不兼容的依赖库,极易污染宿主机环境甚至破坏现有项目。
- 工具链缺失:本地机器可能未预装 ffmpeg、LaTeX 或特定的数据科学库,导致 AI 规划的任务因缺少基础工具而无法启动,需人工介入配置。
- 反馈滞后:无法通过 API 实时获取命令执行的 stdout/stderr 日志,AI 难以根据运行结果自动修正代码,必须依靠人工反复传达错误信息。
使用 open-terminal 后
- 自动化闭环:开发者通过 REST API 将任务指派给 open-terminal,AI 可直接在隔离容器中编写并立即执行代码,实现“生成 - 运行 - 调试”全自动流转。
- 安全沙箱隔离:利用 Docker 模式运行,所有命令被限制在独立容器内,即使 AI 执行危险操作也不会影响宿主机的文件系统和核心环境。
- 开箱即用的工具箱:启动时通过环境变量一键预装
polars、typescript等特定依赖,确保 AI 拥有的运行环境与任务需求完美匹配,无需手动配置。 - 实时状态感知:open-terminal 通过 API 实时返回执行结果和日志,AI 能即时捕捉报错并自主迭代代码,大幅缩短问题解决周期。
open-terminal 将 AI 从单纯的“代码建议者”升级为具备独立执行能力的“虚拟开发工程师”,在保障系统安全的前提下实现了真正的端到端自动化。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明 (Docker 完整版镜像约 4GB,精简版约 230-430MB)

快速开始
⚡ Open Terminal
一款轻量级、自托管的终端,为 AI 助手和自动化工具提供了一个专用环境,用于运行命令、管理文件和执行代码——所有这些都通过一个简单的 API 完成。
为什么选择 Open Terminal?
AI 助手非常擅长编写代码,但它们需要一个地方来“运行”这些代码。Open Terminal 就是这样一个地方——一个带有文件管理、搜索等功能的远程 Shell,可以通过简单的 REST API 访问。
你可以通过两种方式运行它:
- Docker(沙箱化) — 在一个隔离的容器中运行,预装了完整的工具集:Python、Node.js、git、构建工具、数据科学库、ffmpeg 等。非常适合为 AI 助手提供一个安全的实验环境,而不会影响你的主机系统。
- 裸机 — 使用
pip安装并运行在任何支持 Python 的环境中。命令会直接在你的机器上执行,访问你的真实文件、真实工具和真实环境,非常适合本地开发、个人自动化,或者让 AI 助手完全访问你的实际项目。
快速开始
Docker(推荐)
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
仅此而已——你现在就可以在 http://localhost:8000 上使用它了。
[!TIP] 如果你不设置 API 密钥,系统会自动生成一个。你可以通过
docker logs open-terminal来获取它。
镜像变体
latest |
slim |
alpine |
|
|---|---|---|---|
| 最适合 | AI 助手沙箱 | 生产/加固 | 边缘/CI/极简占用 |
| 大小 | ~4 GB | ~430 MB | ~230 MB |
| 捆绑工具 | Node.js、gcc、ffmpeg、LaTeX、Docker CLI、数据科学库 | git、curl、jq | git、curl、jq |
| 运行时安装包 | ✔(有 sudo) |
✘ | ✘ |
| 多用户模式 | ✔ | ✘ | ✘ |
| 出站防火墙 | ✔ | ✔ | ✔ |
slim 和 alpine 具有相同的功能集。Slim 使用 Debian(glibc)以获得更广泛的二进制兼容性;Alpine 使用 musl libc,体积更小,但某些 C 扩展的 pip 包可能需要从源码编译。
docker run -d -p 8000:8000 -e OPEN_TERMINAL_API_KEY=secret ghcr.io/open-webui/open-terminal:slim
docker run -d -p 8000:8000 -e OPEN_TERMINAL_API_KEY=secret ghcr.io/open-webui/open-terminal:alpine
[!NOTE] Slim 和 Alpine 不支持
OPEN_TERMINAL_PACKAGES/OPEN_TERMINAL_PIP_PACKAGES/OPEN_TERMINAL_NPM_PACKAGES。要添加软件包,可以扩展 Dockerfile.slim 或 Dockerfile.alpine。
更新
docker pull ghcr.io/open-webui/open-terminal
docker rm -f open-terminal
然后重新运行上面的 docker run 命令。
裸机
没有 Docker?没关系。Open Terminal 是一个标准的 Python 包:
# 使用 uvx 的一行命令(无需安装)
uvx open-terminal run --host 0.0.0.0 --port 8000 --api-key your-secret-key
# 或者使用 pip 全局安装
pip install open-terminal
open-terminal run --host 0.0.0.0 --port 8000 --api-key your-secret-key
[!CAUTION] 在裸机环境下,命令会直接在你的机器上以你的用户权限执行。如果你希望实现沙箱化执行,请使用 Docker。
自定义 Docker 环境
添加额外软件包最简单的方式就是使用环境变量,无需分叉:
docker run -d --name open-terminal -p 8000:8000 \
-e OPEN_TERMINAL_PACKAGES="cowsay figlet" \
-e OPEN_TERMINAL_PIP_PACKAGES="httpx polars" \
-e OPEN_TERMINAL_NPM_PACKAGES="typescript tsx" \
ghcr.io/open-webui/open-terminal
| 变量 | 描述 |
|---|---|
OPEN_TERMINAL_PACKAGES |
启动时要安装的 apt 软件包列表,用空格分隔 |
OPEN_TERMINAL_PIP_PACKAGES |
启动时要安装的 pip 软件包列表,用空格分隔 |
OPEN_TERMINAL_NPM_PACKAGES |
启动时要全局安装的 npm 软件包列表,用空格分隔 |
[!NOTE] 每次容器启动时都会安装这些软件包,因此如果软件包列表较大,启动时间会更长。对于重度定制,建议构建自定义镜像。
Docker 访问权限
该镜像包含 Docker CLI、Compose 和 Buildx。要让助手能够构建镜像、运行容器等,可以挂载主机的 Docker socket:
docker run -d --name open-terminal -p 8000:8000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v open-terminal:/home/user \
ghcr.io/open-webui/open-terminal
[!CAUTION] 挂载 Docker socket 会使容器获得对主机 Docker 守护进程的完全控制权,这实际上等同于主机上的 root 权限。任何拥有终端访问权限的人都可以拉取/运行任意容器(包括
--privileged容器),挂载主机目录,访问主机网络,并管理主机上的所有容器。请仅在完全可信的环境中执行此操作。
若需完全控制,可以 fork 仓库,编辑 Dockerfile,然后构建自己的镜像:
docker build -t my-terminal .
docker run -d --name open-terminal -p 8000:8000 my-terminal
配置
Open Terminal 可以通过 TOML 配置文件、环境变量和 CLI 标志进行配置。设置的优先级顺序如下(优先级越高越有效):
- CLI 标志(
--host、--port、--api-key等) - 环境变量(
OPEN_TERMINAL_API_KEY等) - 用户配置 —
$XDG_CONFIG_HOME/open-terminal/config.toml(默认为~/.config/open-terminal/config.toml) - 系统配置 —
/etc/open-terminal/config.toml - 内置默认值
在上述任一位置创建配置文件,可以包含以下键(均为可选):
host = "0.0.0.0"
port = 8000
api_key = "sk-my-secret-key"
cors_allowed_origins = "*"
log_dir = "/var/log/open-terminal"
binary_mime_prefixes = "image,audio"
execute_timeout = 5 # 等待命令输出的最大时间(秒),默认未设置
[!TIP] 使用
/etc/open-terminal/config.toml设置站点范围内的主机和端口默认值,而将 API 密钥等个性化设置放在用户配置中——这样可以避免密钥出现在ps或htop中。
你也可以指定一个特定的配置文件:
open-terminal run --config /path/to/my-config.toml
与 Open WebUI 配合使用
Open Terminal 可以与 Open WebUI 集成,使你的 AI 助手能够直接从 AI 界面运行命令、管理文件并交互式地使用终端。请务必在集成设置中将其添加为 Open Terminal,而不是作为工具服务器。将其添加为 Open Terminal 连接后,你会获得一个内置的文件导航侧边栏,可以在其中浏览目录、上传、下载和编辑文件。连接方式有两种:
直接连接
用户可以从个人设置中连接自己的 Open Terminal 实例。当终端运行在本地机器上,或者仅限特定网络访问时,这种方式非常有用,因为请求会直接从 浏览器 发送。
- 前往 用户设置 → 集成 → Open Terminal
- 添加终端的 URL 和 API 密钥
- 启用连接
系统级连接(多用户)
管理员可以在管理面板中为所有用户配置 Open Terminal 连接,无需额外服务。可以设置多个终端,并按用户或用户组级别控制访问权限。请求会通过 Open WebUI 的 后端 代理转发,因此终端只需能被服务器访问即可。
- 前往 管理员设置 → 集成 → Open Terminal
- 添加终端的 URL 和 API 密钥
- 启用连接
内置多用户隔离
[!CAUTION] 单容器多用户模式 并不适用于生产环境中的多用户部署。所有用户共享相同的内核、网络和系统资源,彼此之间没有严格的隔离边界。如果某个用户的进程出现异常,可能会影响到系统中的其他所有用户。此模式仅作为轻量级的便捷方案,适用于小型且可信的团队,而非可依赖的安全模型。
对于小型且可信的部署,您可以在单个容器内启用每用户隔离:
docker run -d --name open-terminal -p 8000:8000 \
-v open-terminal:/home \
-e OPEN_TERMINAL_MULTI_USER=true \
-e OPEN_TERMINAL_API_KEY=your-secret-key \
ghcr.io/open-webui/open-terminal
每个用户将自动获得一个独立的 Linux 账户及专属的主目录。文件、命令和终端均通过标准的 Unix 权限实现用户间的隔离。
API 文档
实例运行后,完整的交互式 API 文档可在 http://localhost:8000/docs 查看。
星标历史
[!TIP] 需要容器级别的用户隔离吗? 请查看 Terminals,它会为每个用户单独 provision 并管理 Open Terminal 容器。对于更轻量级的部署,内置的多用户模式(
OPEN_TERMINAL_MULTI_USER=true)可在单个容器内提供每用户隔离。
许可证
MIT — 详情请参阅 LICENSE 文件。
版本历史
v0.11.342026/04/08v0.11.332026/04/08v0.11.322026/03/30v0.11.312026/03/30v0.11.302026/03/25v0.11.292026/03/24v0.11.282026/03/24v0.11.272026/03/23v0.11.262026/03/20v0.11.242026/03/20v0.11.232026/03/19v0.11.222026/03/19v0.11.212026/03/19v0.11.202026/03/15v0.11.182026/03/15v0.11.172026/03/15v0.11.162026/03/14v0.11.152026/03/13v0.11.142026/03/13v0.11.132026/03/13常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
opencode
OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。