前言¶
在 DSH 的“一切皆插件”思路下,Web profile 可以通过插件扩展界面和 agent 工具能力。若团队已经有一个 Open Terminal server,并希望浏览器里的 DSH workspace 直接提供终端、文件管理,同时让 DSH agent 调用命令与文件工具,下面介绍 dsh-open-terminal。需要说明,社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,不应把它理解成官方应用商店。
这是什么¶
dsh-open-terminal 是一个 DSH Web profile 插件,用于为 DSH Web profile 中的每个 workspace 增加交互式终端、文件管理器和 open_terminal_* 工具。它连接已有的 Open Terminal server,不需要 MCP server selection 或单独的 MCP 配置。GitHub 仓库为 https://github.com/d3cker/dsh-open-terminal,许可证为 MIT。
核心功能¶
- 交互式终端:基于 WebSocket 的 xterm.js 终端,支持 scrollback。
- 浮动窗口:终端打开在聊天上方,聊天仍可交互;仅通过右上角
×按钮关闭。 - 响应式布局:窗口随浏览器视口缩放,在窄屏上使用可用屏幕区域。
- 文件管理器:浏览目录、上传多个文件、下载文件、删除文件、编辑文本文件、预览图片或 PDF。
- Agent 工具:DSH agents 可通过
open_terminal_*工具管理进程和文件;无需单独配置 MCP。 - Profile 级可用:侧边栏按钮和工具对所有使用该 DSH profile 的 workspace 生效。
- 凭据保护:Open Terminal API key 存储在 DSH Credentials,不暴露给浏览器。
Agent 工具可做的事包括:
- list, start, inspect, interact with, and stop processes;
- list, read, write, replace, search, and inspect files.
安装与启用¶
安装前,已列出的要求如下:
- DeepSeek Harness
0.1.1-rc.2,或兼容版本; - Node.js
^22.19.0或>=24; - 从源码构建时需要
pnpm; - 一个运行中的 Open Terminal server 和它的 API key;
- 一个 DSH Web profile,默认名为
web。
安装预构建包:
dsh plugin --profile web add "https://github.com/d3cker/dsh-open-terminal/releases/download/v0.1.4/dsh-open-terminal-0.1.4.tgz"
也可以使用 pnpm 执行同一安装命令:
pnpm dsh plugin --profile web add "https://github.com/d3cker/dsh-open-terminal/releases/download/v0.1.4/dsh-open-terminal-0.1.4.tgz"
这里使用 release asset dsh-open-terminal-0.1.4.tgz。仓库 URL 和 GitHub 自动生成的 Source code archive 包含源码,并且安装时可能需要运行构建脚本的权限,因此安装时建议使用 release asset。
安装或更新后,重启 DSH Web profile,然后刷新浏览器。该插件会作用于所有使用同一 profile 的会话和 workspace。如果还有其他 DSH profile 也需要使用,需要分别安装。
验证 profile 配置:
dsh --profile web --dump-config
输出中应包含:
- id: open-terminal
name: dsh-open-terminal
从源码构建安装包:
pnpm install
pnpm run check
pnpm pack
pnpm pack 会根据 package name 和 package.json 中的 version 字段生成形如:
dsh-open-terminal-<version>.tgz
查看包内容而不解压:
tar -tzf dsh-open-terminal-<version>.tgz
典型用法¶
配置 OpenTerminal¶
1、在 DSH Web 中打开 Settings → Plugins → OpenTerminal。
2、设置 OpenTerminal URL;打包默认值为 http://192.168.0.74:7000,如不一致请改成你的 Open Terminal server 地址。
3、凭据引用保留 OPEN_TERMINAL_API_KEY,或填入另一个 DSH credential reference。
4、在 write-only 的 API key 字段输入 API key。
5、可选调整 request timeout、tool-output limit、upload/proxy body-size limit;默认上传限制为 8 MiB,最大为 64 MiB。
6、点击 Save settings,然后点击 Test connection。
设置页要通过 loopback DSH 地址打开,例如:
http://127.0.0.1:3080
DSH 不允许远程页面修改全局设置或凭据。
使用终端¶
点击左侧边栏中的 OpenTerminal。终端会在聊天右侧的浮动窗口中打开。
- 使用鼠标滚轮或触控板滚动终端输出。
- 终端打开时,聊天仍可继续使用。
- 可以在
Terminal和Files之间切换,而不关闭窗口。 - 使用窗口右上角的
×按钮关闭窗口。
窗口会随视口缩放;在窄屏上使用可用屏幕区域,终端和控制项仍可访问。
使用文件管理器¶
打开 OpenTerminal 窗口中的 Files 标签。
Up:进入上级目录。Refresh:重新加载当前目录。Upload…:选择一个或多个文件上传。Download:选择文件后保存到本地。- 选择文本文件编辑,然后
Save。 - 选择图片或 PDF 进行预览。
Delete:删除文件,确认提示。
文件操作发生在运行 Open Terminal 的机器或容器中,而不是运行浏览器的机器上。
Agent 调用¶
DSH agents 会自动获得 open_terminal_* 工具。它们可以:
- list, start, inspect, interact with, and stop processes;
- list, read, write, replace, search, and inspect files.
不需要选择 MCP server,也不需要单独的 MCP 配置。
适用场景与注意¶
适合已有 Open Terminal server,并希望在 DSH Web workspace 中直接进行终端操作、文件管理,同时让 DSH agent 调用相应工具的用户。
使用前需要注意:
- Open Terminal API key 允许在 Open Terminal server 上执行命令和访问文件。
- 建议使用可信、隔离的 Open Terminal server。
- 将 DSH Web 限制给可信用户访问。
- 当连接跨越不可信网络时,使用 TLS 或 VPN。
- 插件以当前 DSH 进程权限运行;安装前应检查源码与许可证。
- 当前已核实版本为
0.1.4,许可证为MIT。 - DSH 插件生态中的社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系;不要把它理解成官方应用商店。
更新与卸载¶
更新时,从当前 README 运行对应安装命令,然后重启 DSH Web profile。例如当前文档给出的安装包为:
dsh plugin --profile web add "https://github.com/d3cker/dsh-open-terminal/releases/download/v0.1.4/dsh-open-terminal-0.1.4.tgz"
卸载:
dsh plugin --profile web remove dsh-open-terminal
移除插件后,重启 DSH Web profile。
链接¶
GitHub 仓库:
https://github.com/d3cker/dsh-open-terminal
社区目录:未确认独立目录页 URL,因此本文不给出链接;如需浏览插件页面,可先从 GitHub 仓库 README 与 Release 资产确认。