前言¶
DeepSeek Harness (DSH) 采用插件化架构,在多机协作场景下,通常需要分别处理不同机器上的工作空间或会话。dsh-control 旨在解决这一痛点:它不需要在远程机器上部署额外的文件系统工具,而是通过 SSH 隧道,将远程已经运行的 dsh 实例接入本地前端,实现统一管理。
这是什么¶
dsh-control 是一个客户端插件,由 6mt 维护。它的核心作用是提供本地窗口,驱动并管理远程机器上正在运行的 dsh 实例。
不同于传统的远程工作空间插件(如 dsh-remote),dsh-control 并不把远程机器视为文件系统,而是将其视为一个运行中的 dsh 实例。它允许你在本地侧边栏直接与远程会话交互,远程回复以 Token 级流式传输,无需更改远程配置。
核心功能¶
- 远程 dsh 实例的本地前端
在本地侧边栏创建面板,直接访问远程机器上已运行的 dsh。 - 一键 SSH 连接
输入user@host即可探测远程 dsh 状态,建立加密通道并连接。 - 自动创建同名本地工作空间
每个远程环境会自动在本地创建同名工作空间,创建的会话会自动关联到远程。 - Token 级流式传输
远程回复逐 Token 流入,体验与本地会话一致。 - 配对命名
远程会话名称会自动添加前缀(如控制端·<local title>),确保本地与远程会话对应。 - 侧边栏可见与自愈
远程会话在侧边栏标记可见。连接断开时会如实报告,支持一键修复。
安装与启用¶
插件通过 npm 包名发布,安装命令如下:
dsh plugin --profile <your profile> add github:6mt/dsh-control
安装后,需完全退出并重新打开 dsh 才能加载插件。插件在本地维护状态文件和按需建立的 SSH 隧道,不依赖任何原生模块。
版本管理¶
- 更新:使用
dsh plugin --profile <your profile> update dsh-control拉取最新代码。 - 固定版本:通过标签或提交哈希锁定版本。
dsh plugin --profile <your profile> add github:6mt/dsh-control#v0.1.0
注意事项¶
- 远程环境要求:远程机器必须已安装并运行 dsh(版本需 >= 0.2.0-rc.2)。
- 连接方式:目前通过 SSH 连接,需配置无密码登录或 SSH 密钥。
- 数据安全:密码从不存储。本地仅维护
$DSH_HOME/dsh-control/state.json状态文件(权限 0600),不写入远程文件系统,也不管理远程 dsh 的生命周期。 - 实验性功能:取消远程回合功能已实现但标记为实验性。
- 共存性:可与
dsh-remote类插件共存。
总结¶
dsh-control 提供了一种零侵入的方式来管理多台机器上的 dsh 实例。它利用远程现有的模型凭证和沙箱,通过本地 SSH 隧道提供流式交互体验。