open-terminal

GitHub
2.3k 175 简单 1 次阅读 今天MIT开发框架Agent图像
AI 解读 由 AI 自动生成,仅供参考

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 执行危险操作也不会影响宿主机的文件系统和核心环境。
  • 开箱即用的工具箱:启动时通过环境变量一键预装 polarstypescript 等特定依赖,确保 AI 拥有的运行环境与任务需求完美匹配,无需手动配置。
  • 实时状态感知:open-terminal 通过 API 实时返回执行结果和日志,AI 能即时捕捉报错并自主迭代代码,大幅缩短问题解决周期。

open-terminal 将 AI 从单纯的“代码建议者”升级为具备独立执行能力的“虚拟开发工程师”,在保障系统安全的前提下实现了真正的端到端自动化。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明 (Docker 完整版镜像约 4GB,精简版约 230-430MB)

依赖
notes该工具提供两种运行模式:1. Docker 模式(推荐):提供隔离沙箱,包含完整工具链(Python, Node.js, gcc, ffmpeg 等),有不同大小的镜像版本(latest/slim/alpine)可选;2. 裸机模式:通过 pip 或 uvx 直接安装,命令直接在宿主机执行。若需让 AI 代理控制宿主 Docker,需挂载 Docker Socket(存在安全风险)。支持多用户模式但仅限受信任的小组使用,生产环境建议使用独立容器隔离。
python未说明 (需支持 pip 或 uvx 运行的环境)
Docker (可选,用于沙箱模式)
Node.js (Docker 镜像内置)
git (Docker 镜像内置)
curl (Docker 镜像内置)
jq (Docker 镜像内置)
open-terminal hero image

快速开始

⚡ 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
多用户模式
出站防火墙

slimalpine 具有相同的功能集。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.slimDockerfile.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 标志进行配置。设置的优先级顺序如下(优先级越高越有效):

  1. CLI 标志--host--port--api-key 等)
  2. 环境变量OPEN_TERMINAL_API_KEY 等)
  3. 用户配置$XDG_CONFIG_HOME/open-terminal/config.toml(默认为 ~/.config/open-terminal/config.toml
  4. 系统配置/etc/open-terminal/config.toml
  5. 内置默认值

在上述任一位置创建配置文件,可以包含以下键(均为可选):

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 密钥等个性化设置放在用户配置中——这样可以避免密钥出现在 pshtop 中。

你也可以指定一个特定的配置文件:

open-terminal run --config /path/to/my-config.toml

与 Open WebUI 配合使用

Open Terminal 可以与 Open WebUI 集成,使你的 AI 助手能够直接从 AI 界面运行命令、管理文件并交互式地使用终端。请务必在集成设置中将其添加为 Open Terminal,而不是作为工具服务器。将其添加为 Open Terminal 连接后,你会获得一个内置的文件导航侧边栏,可以在其中浏览目录、上传、下载和编辑文件。连接方式有两种:

直接连接

用户可以从个人设置中连接自己的 Open Terminal 实例。当终端运行在本地机器上,或者仅限特定网络访问时,这种方式非常有用,因为请求会直接从 浏览器 发送。

  1. 前往 用户设置 → 集成 → Open Terminal
  2. 添加终端的 URLAPI 密钥
  3. 启用连接

系统级连接(多用户)

管理员可以在管理面板中为所有用户配置 Open Terminal 连接,无需额外服务。可以设置多个终端,并按用户或用户组级别控制访问权限。请求会通过 Open WebUI 的 后端 代理转发,因此终端只需能被服务器访问即可。

  1. 前往 管理员设置 → 集成 → Open Terminal
  2. 添加终端的 URLAPI 密钥
  3. 启用连接

内置多用户隔离

[!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/08
v0.11.332026/04/08
v0.11.322026/03/30
v0.11.312026/03/30
v0.11.302026/03/25
v0.11.292026/03/24
v0.11.282026/03/24
v0.11.272026/03/23
v0.11.262026/03/20
v0.11.242026/03/20
v0.11.232026/03/19
v0.11.222026/03/19
v0.11.212026/03/19
v0.11.202026/03/15
v0.11.182026/03/15
v0.11.172026/03/15
v0.11.162026/03/14
v0.11.152026/03/13
v0.11.142026/03/13
v0.11.132026/03/13

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

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 真正成长为懂上

160k|★★☆☆☆|今天
开发框架Agent语言模型

opencode

OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信

144.3k|★☆☆☆☆|2天前
Agent插件

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|今天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像