dsh-console

前言

在 DSH(DeepSeek Harness)的 Web 插件生态中,有时需要在浏览器中执行命令。传统的做法是打开本地终端,这会切断与当前聊天或任务的上下文关联。dsh-console 解决了这个问题,它通过 Web 界面提供一个真实的 PTY 终端。

这是一个社区维护的插件,旨在让开发者在不离开 Web 界面的情况下,直接操作命令行。

核心功能

dsh-console 将终端能力集成到 DSH 的主视图中:

  1. 主视图“控制台”标签页:与“对话”、“轨迹”等标签同级,采用 iTerm 风格的深色多标签栏设计。
  2. 真 PTY 交互终端:基于 node-pty 底层实现,支持 vim、top、htop 以及 Ctrl+C 等所有交互式程序。
  3. 用户真实 shell 环境:继承用户的登录 shell($SHELL -l)、完整的环境变量以及 256 色支持。这保证了 conda 环境和 git 状态提示符能正常显示。
  4. 输出不丢:利用 host 侧的 512KB 环形缓冲区,结合 SSE(Server-Sent Events)流式推送。即便在切换标签、刷新页面或断线重连后,终端历史输出依然会自动回放还原。
  5. 多标签管理:支持通过 + 新建标签、× 关闭标签。每个标签有独立的 PID 和几何尺寸显示,且带有绿点存活指示。

安装与启用

安装过程非常简单,推荐使用官方提供的一键脚本。

# 1. 进入插件目录
cd dsh-console

# 2. 执行安装脚本
./install.sh

# 3. 重启 DSH

install.sh 脚本会自动完成以下三件事:
* 将插件文件拷贝至 ~/.dsh/profiles/web/node_modules/dsh-console。
* 在 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 中追加 dsh-console。
* 提示重启 DSH。

典型用法

完成安装并重启 DSH 后,按照以下步骤操作:

  1. 在浏览器中打开 DSH Web 界面,地址为 http://127.0.0.1:3080。
  2. 进入任意会话,顶部标签栏会出现“控制台”标签(位于“轨迹”与“任务面板”之间)。
  3. 点击 + 或“新建终端”按钮创建一个新标签。
  4. 直接在终端中键入命令进行交互式操作。

适用场景与注意

  • 环境依赖:构建插件需要 Node.js >= 18,但运行预构建的插件包不需要。
  • 会话生命周期:PTY 会话与 DSH 进程绑定。当 DSH 重启时,所有终端标签会像关闭窗口一样被终止,请注意保存工作。
  • 已知限制:
    • 终端窗口尺寸固定为 120×34,暂不支持动态 resize。
    • 终端标题固定显示“终端 N”,目前不支持 OSC 标题序列动态更新。

dsh-console 提供了从 Web 到命令行的直接通路,适合需要在 DSH 环境中快速调试脚本或执行后台任务的场景。

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

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

小夜