DeepSeek Harness (DSH) 采用插件化架构。在使用 Web profile 时,除了对话界面,开发者往往缺乏一个方便的本地命令执行环境。dsh-terminal-plugin 为 DSH Web GUI 提供了一个位于底部的终端面板,复刻了 VS Code 集成终端的交互体验。
核心功能¶
这个插件在 DSH Web GUI 的中间对话区域下方提供了一个终端面板。它具备以下特性:
- VS Code 风格的交互:支持多终端标签,使用真实 PTY,支持颜色、光标控制以及
vim、python、top等交互程序。 - 非侵入式布局:终端面板仅占据中间区域,不会挤压左右侧边栏。
- 会话保持:刷新页面后,终端仍会保留,并回放近期输出。
- 链接与路径处理:输出中的 URL 和文件路径支持
Ctrl/Cmd+ 点击打开(仅支持 http/https/ftp)。 - 右键菜单:按 VS Code 习惯,有选中内容时右键复制,无选中内容时右键粘贴。
安装与启用¶
确保本地环境满足 Node.js 20 或更高版本,且可通过 npx 运行带 Web profile 的 @deepseek-ai/dsh。
使用 DSH CLI 将插件添加到 Web profile:
npx @deepseek-ai/dsh plugin --profile web add /path/to/dsh-terminal-plugin
安装完成后,重启 dsh web 或刷新浏览器页面即可生效。
使用方式¶
- 打开面板:按 `Ctrl+``(反引号键)打开或收起终端面板。
- 新建标签:按
Ctrl+Shift+\`` 创建新终端标签,或在工具栏点击+`。 - 点击链接:在终端输出中,按住
Ctrl(macOS 为Cmd)点击 URL 或文件路径。出于安全考虑,仅支持http、https、ftp协议的链接。 - 右键操作:终端区域的右键菜单由插件接管,行为与 VS Code 集成终端一致。
配置¶
插件支持通过配置项调整行为。常用配置项包括:
mountPrefix:插件 HTTP 与 WebSocket 路径前缀,默认为/dsh-terminal。shellPath/shellArgs:Shell 路径与启动参数,默认自动探测。cwd:新终端的工作目录,默认为当前会话所属工作区。rows/cols:终端初始尺寸,默认24/80。scrollbackBytes:输出回放保留的字节数,默认262144。maxTerminals:同时存在的终端上限,默认20。idleCloseAfterMs:无人连接多久后关闭,0表示不自动关闭。
注意事项与限制¶
- 权限与安全:终端运行在 DSH 宿主进程中,拥有相应的系统权限。出于安全考虑,如果缺少认证能力,插件仅接受回环地址请求。
- 拖动限制:拖动面板高度不会调整已运行 PTY 的行列数;新建终端会采用当时的尺寸。
- 链接限制:被终端折行的长 URL 不会跨行拼接;相对路径不会被识别为链接。
- 并发限制:同一终端在多个浏览器连接中同时打开时,输入会共享。
结语¶
这个插件为 DSH Web profile 用户提供了原生的命令行操作能力,弥补了纯 Web 界面在调试时的不足。你可以通过 SkillHub 插件目录 查看详情,或在 GitHub 上查看源码与文档。