前言¶
在使用 DeepSeek Harness Web 进行开发或调试时,如果需要维持长期运行的终端会话,直接切换原生窗口会打断上下文,且在浏览器中运行终端通常涉及 PTY 或原生节点模块,部署复杂。dsh-tmux-cc 提供了一个持久化的控制模式驾驶舱,允许在不中断 tmux 进程的情况下管理会话。
插件介绍¶
dsh-tmux-cc 是 DeepSeek Harness Web 的一个客户端插件。由 adrianleb 维护。它通过 xterm.js 渲染原生 tmux 窗格,并保持停靠栏在切换聊天时可见,提供了会话管理、客户端分离和移动端适配等能力。
核心能力¶
- 跨聊天持久化:停靠栏属于 DSH Web shell,而非特定对话。
- 原生 tmux 窗格:窗格布局、窗口标签、聚焦、缩放、分割和调整大小与 tmux 保持同步。
- 非破坏性调整大小:镜像模式下使用
ignore-size,接管模式下提供清晰的 1:1 网格。 - 安全输入传输:输入通过十六进制编码的
send-keys -H逐字节转发,包括 Enter、粘贴和 Unicode 字符。 - 会话与客户端管理:支持创建、重命名或附加会话,查看并安全分离原生客户端(不停止进程)。
- 忠实移动驾驶舱:在移动端(宽度 < 768px),停靠栏变为全屏抽屉,保留真实的 tmux 窗格网格和原生窗格缩放,支持触摸平移。
- 双语 UI:界面语言跟随 DSH 的区域设置。
- 无原生依赖:控制通道使用标准的 stdin/stdout 管道。
安装与启用¶
在终端中执行以下命令安装插件:
dsh plugin --profile web add github:adrianleb/dsh-tmux-cc
安装完成后,重启现有的 dsh web 进程,并刷新 Web GUI。界面右下角会出现一个 tmux 按钮,通过设置中的 tmux 选项也可以打开停靠栏。
基本用法¶
- 打开 tmux 停靠栏。
- 从下拉菜单中选择一个活动的 tmux 会话。
- 点击窗格以聚焦它并正常输入。
- 在窗格聚焦状态下,使用键盘快捷键(见下文)。
- 拖拽窗格标题到另一个窗格上以交换位置(桌面或移动端)。拖拽窗格之间的分隔线以调整大小。
注意事项与依赖¶
- 系统要求:需要在 DSH 所在的主机上安装 tmux(支持 3.4 和 3.7b)。需要在同一主机上安装 Node.js 22 或更高版本。
- 权限与模式:插件以当前 DSH 进程的权限运行。它不运行浏览器内终端,不依赖 PTY 或原生 Node.js 插件,仅作为 tmux 的另一个视图。
- 会话限制:插件拒绝杀死会话中的最后一个窗格。
- 构建依赖:如需从源码构建,需要本地安装 pnpm(建议使用 Corepack)。
总结¶
dsh-tmux-cc 解决了在浏览器环境中管理长期 tmux 会话的痛点,通过原生同步和持久化停靠栏,为开发者提供了一个稳定、安全的控制台。