dsh-open-terminal:为 DSH Web profile 增加终端、文件管理与 Agent 工具

前言

在 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。终端会在聊天右侧的浮动窗口中打开。

  • 使用鼠标滚轮或触控板滚动终端输出。
  • 终端打开时,聊天仍可继续使用。
  • 可以在 TerminalFiles 之间切换,而不关闭窗口。
  • 使用窗口右上角的 × 按钮关闭窗口。

窗口会随视口缩放;在窄屏上使用可用屏幕区域,终端和控制项仍可访问。

使用文件管理器

打开 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 资产确认。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜