rsdgnchen/dsh-terminal:DeepSeek Harness Web 的系统交互终端插件

前言

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 后,通常刷新浏览器页面即可生效。

使用方法

  1. 打开终端:在对话区底部上滑透明横杠(或轻点/回车)。
  2. 管理标签:
    • 点击蓝色 + 新建标签。
    • 双击标签标题进行内联重命名。
    • 拖拽终端顶部横杠调整高度。
  3. 控制面板:
    • 点击顶部 ⛶ 铺满/还原高度。
    • 点击顶部横杠收起终端(等同于 −)。
    • 点击 − 挂起,点击 × 关闭。
  4. 退出 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 仓库。

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

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

小夜