前言¶
在多台机器上跑 DeepSeek Harness(DSH)时,会话往往只留在本机工作区里。用 U 盘、网盘或手工导出再导入,步骤多,也容易漏掉某次对话。若几台电脑都在同一局域网,更理想的做法是:彼此能自动发现、列出对方的会话,再按需拉取或推送,并在写入前校验内容是否一致。
下面介绍社区插件 dsh-session-sync(维护者 XXGxiaoyu),它在局域网内为 DSH 提供会话浏览、拉取、推送与 SHA-256 校验,设备昵称仅保存在本机。
这是什么¶
dsh-session-sync 是 DSH 的联网类插件:装了同一插件的 DSH 实例会在局域网内互相发现,通过 HTTP 浏览对端会话列表,并把会话拉回本机或推送到对端。你给某台设备起的昵称写在本机状态文件里,用稳定的设备 id(uuid)关联,不依赖 IP 或主机名;对端离线、重启或换地址后,你这边仍能看到自己起的名字。
插件在 SkillHub 社区目录中归类为「联网工具」;源码与说明见 GitHub 仓库,许可证为 MIT。撰写时仓库星标约为 1。
核心功能¶
资料中的能力可概括为以下几类(均以插件 README 为准)。
发现与设备列表
- 在各 IPv4 网卡上发 UDP 广播(约 4 秒 beacon);新出现的对端会收到单播回复,不必等下一轮广播。
- 跨网段时可在「Cross-subnet scan」里配置 CIDR、单 IP 或
ip:port:CIDR 仍走 UDP 发现;单 IP 还会在 47802–47817 上尝试 HTTP,减轻「防火墙丢 UDP 导致看不见对端」的情况。 - 本机昵称、仅本机保存的对端昵称存放在
<home>/session-sync/state.json,按设备 id 索引。
浏览、拉取、推送
- 查看每台设备的会话(标题、工作目录、时间等);可将一条会话拉到本机,或把本机会话推到对端;已导入的行会标记为已拉取。
- 支持搜索(按
/)、全部 / 未拉取 / 已拉取筛选、按时间或标题排序;可选每 20 秒自动拉取尚未拉过的会话,并用内容指纹避免两台都开自动拉取时来回互推。 - 支持多选会话,拖到已知文件夹或 DSH 侧栏工作区行上;落点前会确认目标工作区。提供「Sync all」「Push all」等批量操作,已存在(按内容指纹)的会跳过。
完整性校验
- 导出携带
sha256 = SHA-256(JSON.stringify({format, session, events}));导入在写入前比对,不一致则 HTTP 409checksum-mismatch。 - 界面提供「校验」操作,可重新拉取对端 payload 并重算摘要。README 说明:摘要证明字节一致,不证明发送方身份;需要强身份确认时,应通过带外方式比对完整摘要。
界面与集成
- 侧栏 Plugins 下出现 Session Sync;同一面板也在 Settings → Session Sync 注册。
- 界面使用 DSH 设计 token,明暗主题跟随宿主;语言默认跟随 DSH,可显式选中文或 English。
就绪后,日志中可出现类似输出:
[dsh-session-sync] ready: device <hostname>, sync port 47802, discovery port 47801
[dsh-session-sync] discovered <peer name> (192.168.1.7:47802)
安装与启用¶
插件要求 DSH 0.2.1-rc.2(README 写明与当前桌面应用捆绑版本一致)以及 Node 22+。官方安装命令如下(profile 为 web):
dsh plugin --profile web add github:XXGxiaoyu/dsh-session-sync
安装后需重启 DSH 桌面应用(宿主侧变更在启动时加载;页面刷新即可看到新 UI)。页脚会显示实际运行的构建版本;若低于最新 release,通常表示进程尚未重启。包声明了 dsh.bundle,dsh plugin add 会自动把插件加入 dsh.profile.bundles 并激活。
也可从 releases 预构建 tarball 安装;本地 checkout 手动 link 的方式见仓库 README 中的 package.json 示例。
典型用法¶
- 在需要互相同步的每台机器上,用同一 profile(如
web)执行上述dsh plugin add命令,重启 DSH。 - 打开侧栏 Plugins → Session Sync(或 Settings → Session Sync),确认本机名称(对端可见);必要时在设备行的菜单里为本机以外的设备 Rename(仅本机可见)。
- 在 Devices 中选择在线对端,右侧查看 Sessions;对单条会话使用拉取或推送,或用 Verify 校验本地副本与对端是否一致。
- 若对端在另一网段,在高级选项中配置 Cross-subnet scan 的 CIDR 或 IP,再刷新设备列表。
- 需要批量同步时,使用 Sync all / Push all;传输队列在底部栏与详情抽屉中展示进度,冲突时会提示保留本地、覆盖或跳过该项。
拖拽会话到 DSH 侧栏工作区时,会要求确认目标工作区名称,避免误落目录。
适用场景与注意¶
适合谁
- 家里或办公室多台电脑都跑 DSH,且处在可互通的局域网(或你愿意配置跨网段扫描)的场景。
- 希望在机器之间迁移或备份会话,又不想每次手工导出 JSON 的用户。
- 同一台机器上多个 DSH 实例/profile:README 会把本机其他实例归在「本机上的其他 DSH 实例」下,仍可浏览与推送,便于跨 profile 同步。
使用前请注意
- 插件以当前 DSH 进程权限运行,会在局域网内开放发现与 HTTP 同步端口;安装前应阅读源码与 MIT 许可证,并评估网络边界与防火墙策略。
- 同步走明文 HTTP(README 表述为 plain HTTP),适合受控内网;不要默认等同于加密或身份认证传输。
- 社区目录 SkillHub 插件页 与 GitHub 由社区维护,与 DeepSeek / 幻方无官方从属关系;版本以你安装的包与页脚构建号为准(
package.json中插件版本为 0.7.1,与 README 徽章中的 DSH 版本号不同,勿混淆)。
结尾¶
dsh-session-sync 把「多机 DSH 会话对齐」收敛到局域网内的发现、列表、拉取/推送和 SHA-256 校验,昵称只留在本机,减少换 IP 后的重新辨认成本。若你在多台设备上使用 DSH,可从社区目录或 GitHub 查看说明与更新: