Open Terminal
为AI代理和自动化工具提供可通过REST API访问的轻量级自托管终端环境。
- Star 数
- ★ 3.4k
- 最近更新
- 今天
- License
- MIT
- 主语言
- Python
- FA 评分
- 50/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台
- 费用
- 免费,无需付费服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- AI开发者在本地运行Open Terminal,让AI代理直接访问项目文件和执行命令,进行代码测试和调试。
- 不适合
- 需要生产级多用户隔离的团队,单容器多用户模式无硬隔离边界
- 需要完全离线或受限网络环境的团队,默认启用出站防火墙
- OpenShift 用户若需运行时安装软件包或 Docker socket 访问
这个 Agent 能做什么,适合哪些场景?
Open Terminal是一个轻量级、自托管的终端服务器,为AI代理和自动化工具提供专用的命令执行、文件管理和代码运行环境。它通过简单的REST API暴露功能,支持两种运行方式:Docker(沙箱隔离)和裸机(pip安装)。Docker镜像提供多种变体,包括包含完整工具链的完整版和精简版,满足不同需求。它集成了Open WebUI,允许AI助手直接执行命令和管理文件。该项目采用MIT许可证。
Open Terminal提供REST API端点,用于执行命令、管理文件和浏览目录。它通过/exec等端点接收命令,在服务器上执行并返回输出。它支持文件上传、下载、编辑和删除,以及获取当前工作目录和文件列表。它可通过OPEN_TERMINAL_PACKAGES、OPEN_TERMINAL_PIP_PACKAGES和OPEN_TERMINAL_NPM_PACKAGES环境变量自定义环境。在Docker模式下,它提供隔离环境;在裸机模式下,命令直接在主机上运行。它支持多用户模式,每个用户拥有独立的Linux账户和主目录。
- AI开发者在本地运行Open Terminal,让AI代理直接访问项目文件和执行命令,进行代码测试和调试。
- 系统管理员在服务器上部署Open Terminal,为自动化脚本提供远程执行环境,而无需暴露SSH。
- 团队在Open WebUI中集成Open Terminal,成员可以通过界面浏览、上传和编辑文件,同时AI助手可以执行运维任务。
- 安全研究人员使用Docker沙箱运行Open Terminal,安全地执行不可信代码,与主机隔离。
- 持续集成系统通过Open Terminal的API调用命令,在容器中运行构建和测试步骤。
- 教育场景中,教师设置Open Terminal实例供学生练习Linux命令,而无需在本地安装虚拟机。
如何安装或部署这个 Agent?
使用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。Docker镜像变体包括latest、slim、alpine和openshift。裸机安装:pip install open-terminal,然后运行open-terminal run --host 0.0.0.0 --port 8000 --api-key your-secret-key。
如何使用这个 Agent?
启动后,API文档在http://localhost:8000/docs。使用API密钥进行身份验证。可通过环境变量定制环境:例如OPEN_TERMINAL_PACKAGES="cowsay figlet"。在Open WebUI中,通过用户设置或管理员设置添加Open Terminal连接,提供URL和API密钥。调用API时,使用/exec端点执行命令,使用/files端点管理文件。
这个 Agent 有哪些优点和局限?
- 提供多种Docker镜像变体,从完整工具链到极小尺寸,适应不同场景。
- 支持通过环境变量在启动时安装apt、pip和npm包,无需fork镜像。
- 与Open WebUI紧密集成,提供文件浏览器和用户/组级访问控制。
- 支持内置多用户隔离,每个用户独立账户和主目录。
- 通过API授权保护,且可作为独立服务运行。
- 裸机模式直接暴露主机权限,存在安全风险,需谨慎使用。
- 多用户模式的生产安全性有限,不适合大型或不可信部署。
- slim和alpine变体不支持运行时包安装,需自定义镜像。
- OpenShift镜像功能受限,不支持运行时安装和Docker socket。
- 创建时未设置API密钥时会自动生成,需要从容器日志中获取,可能麻烦。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Open Terminal 当前 | 50 · 缺口较多 | 自托管服务免费 | ★ 3.4k | 今天 | Python | — |
| Judge0 在线代码执行系统 | 41 · 缺口较多 | 自托管服务免费版 + 付费版 | ★ 4.5k | 1 天前 | HTML | — |
| Memanto | 50 · 缺口较多 | 命令行工具免费版 + 付费版 | ★ 2.3k | 1 天前 | Python | Codex · Claude Code |
| Cheshire Cat AI | 47 · 缺口较多 | 命令行工具免费 | ★ 3.1k | 2 个月前 | Python | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:README 明确警告 Docker socket 挂载和裸机运行的风险,提供多用户隔离选项,但未提供用户确认机制或回滚方案。API 密钥通过环境变量配置,但未说明密钥存储和传输安全。依赖版本范围宽松,未提供锁文件或漏洞扫描证据。外部影响(如 Docker socket)有警告但无强制限制。来源归属:作者和许可证明确,但发布者未验证。扣分:缺少用户确认、回滚、依赖安全细节。
证据显示:README 和配置文档一致,Docker 镜像变体说明清晰,依赖列表完整。但未提供错误消息示例或故障排除指南。扣分:失败消息不明确。
证据显示:明确面向 AI 代理和自动化工具,提供 Docker 和裸机两种部署方式,支持多种镜像变体,配置灵活。能力边界(如文件浏览器根目录)有说明,但未明确限制终端命令。触发精度:通过 API 密钥和配置控制,但未提供细粒度权限。环境适配:支持多平台和 OpenShift。扣分:能力边界和触发精度可更明确。
证据显示:README 结构清晰,安装说明详细,命名稳定(open-terminal),提供示例和 FAQ(通过 README 中的提示),已知限制(如多用户模式警告)有说明,许可证 MIT,版本号在 pyproject.toml 中,有 CHANGELOG 和发布工作流。维护责任:作者明确,但发布者未验证。扣分:维护责任仅基于作者信息。
证据显示:输出为 REST API,文档提供交互式 API 文档,易于使用。边际价值:为 AI 代理提供远程终端,有独特价值。成本效益:Docker 镜像较大,但提供 slim 变体。扣分:无性能或资源使用数据。
证据显示:README 中的声明(如功能、镜像大小)与代码和配置部分一致,但未提供测试结果或独立验证。扣分:缺乏测试证据和独立来源。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 发布者未验证,身份未知,需谨慎评估供应链风险。
- Docker socket 挂载和裸机运行具有高风险,仅应在完全可信环境中使用。
- 依赖版本范围宽松,未提供锁文件或漏洞扫描,建议自行审计。
- 多用户模式不适用于生产环境,缺乏硬隔离。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
Fixed - Reduced memory use when reading and editing large text files. Reading just a few lines no longer loads every line into memory, which could previously crash the server even for a small response. - Reduced memory use when reading text from documents, uploading and viewing files, downloading folders as ZIP files, and previewing Word and PowerPoint files as PDFs. Temporary files are removed after sending or cancellation. …在 GitHub 查看 ↗ -
发布说明摘录
Added - Command results now include the folder the command ran in, so assistants can see where each command started without running a separate command to check. Fixed - Fixed file browsing in Open WebUI when Open Terminal runs directly on Windows. Opening a folder previously failed with a server error while checking whether its files could be edited.在 GitHub 查看 ↗ -
发布说明摘录
Fixed - Apps connecting to the MCP server over the network must now provide your Open Terminal API key. Previously, they could run commands and access files without providing the key. Connections with a missing or incorrect key are now rejected. If you had the MCP server enabled for network connections, update to the latest release.在 GitHub 查看 ↗
常见问题
Open Terminal是否支持多用户同时使用?
OPEN_TERMINAL_MULTI_USER=true可以启用多用户模式,每个用户自动获得独立的Linux账户和主目录。但注意,这种隔离基于Unix权限,不提供强隔离边界,不适合生产环境。如何添加额外的软件包?
OPEN_TERMINAL_PACKAGES、OPEN_TERMINAL_PIP_PACKAGES和OPEN_TERMINAL_NPM_PACKAGES环境变量在容器启动时自动安装软件包。对于slim和alpine变体,需要构建自定义镜像。是否支持文件上传和下载?
Open Terminal是否支持非Docker环境?
pip install open-terminal在裸机上安装,但注意裸机模式下命令以当前用户权限直接运行,没有沙箱隔离。