前言¶
DeepSeek Harness (DSH) Web 界面提供对话能力,但开发者常需在会话中直接执行系统命令或调试环境。rsdgnchen/dsh-terminal 插件通过在对话区下方嵌入一个真实的系统 shell,解决了这一需求。它基于 node-pty 和 xterm.js,在不脱离浏览器上下文的情况下提供完整的终端体验。
核心能力¶
- 真实系统终端:Host 侧通过
node-pty起动$SHELL(默认环境变量,如 zsh/bash),支持颜色、作业控制及交互式程序(vim/less/top 等)。 - 会话隔离与标签管理:
- 每个会话拥有一套独立的终端标签,切会话时面板自动切换,原会话后台存活。
- 支持多标签页(蓝色 + 按钮),每个标签对应一个独立的 shell 会话。
- 标签编号复用,支持双击重命名。
- 布局与交互:
- 采用 8/2 上下分区,终端停靠在对话列底部。
- 顶部拖拽条可调高终端高度(120-520px)。
- 支持一键铺满对话列高度(点击 ⛶ 图标),再次点击还原。
- 状态控制:
−挂起:隐藏面板,保留会话与输出。×关闭:卸载面板,杀死所有会话。
- 安全与适配:
- 升级鉴权:WS 端点需通过 DSH 的 Host/Origin 围栏与登录态校验。
- 明暗自适应:颜色跟随应用主题。
- 输出回看:默认滚动缓冲 5000 行。
安装与启用¶
前置条件:需先安装 pnpm 并确保在 PATH 上。
安装插件:
dsh plugin --profile web add github:rsdgnchen/dsh-terminal
生效方式:
* 修改 src/index.js(Host 半)或 package.json、cordis.patch.yml 等配置文件后,必须重启 web 服务。
* 修改 src/client.js 后,通常刷新浏览器页面即可生效。
使用方法¶
- 打开终端:在对话区底部上滑透明横杠(或轻点/回车)。
- 管理标签:
- 点击蓝色
+新建标签。 - 双击标签标题进行内联重命名。
- 拖拽终端顶部横杠调整高度。
- 点击蓝色
- 控制面板:
- 点击顶部
⛶铺满/还原高度。 - 点击顶部横杠收起终端(等同于
−)。 - 点击
−挂起,点击×关闭。
- 点击顶部
- 退出 Shell:按
Ctrl+D退出当前 shell,最后一个标签关闭时面板也会随之关闭。
注意事项¶
- 运行环境依赖:Host 侧需要
node-pty和ws。插件运行时会尝试解析node-pty,失败则回退到 Harness 全局安装目录中的副本。 - 浏览器快捷键:
Ctrl+W、F5等窗口级快捷键由浏览器处理,插件无法拦截。在 macOS 上Ctrl+W正常可用,Windows/Linux 上建议使用Ctrl+U(删整行)或Alt+Backspace(删前一个词)。 - 鉴权要求:升级鉴权已开启,WebSocket 连接必须携带 DSH 的登录态(
dsh-auth-*cookie)。直接通过脚本连接需自行处理认证。
该插件为 DSH Web 界面提供了可靠的终端访问能力,适合需要调试和运行系统命令的场景。更多细节请见 GitHub 仓库。