前言¶
DSH 的插件生态为 web UI 提供了扩展入口。下面介绍的 dsh-session-hub 解决一个具体问题:远端机器上的 dsh web 会话,以及本机 Codex CLI、Claude Code、opencode、Pi 的历史对话,默认不会自然出现在同一棵会话树里。这个插件把两类会话接进 DSH 的官方会话树,并继续使用官方侧边栏和对话区。
插件定位¶
dsh-session-hub 是一个面向 web profile 的插件。仓库与目录页均位于 Asaiuta 名下,许可证为 MIT。当前安装使用 @alpha,README 标注 alpha,tarball 标签为 v0.1.0-alpha.2。
核心能力¶
先说结论:它不替代 DSH 的 UI,主要在 /api 数据层做合并与路由。
- 远端会话聚合:把多台远程
dsh web服务器的 DSH 会话接进官方会话树;查看历史、逐 token 实时流、审批卡片、提问问卷,并支持发送、取消、重命名。 - 本机历史导入:把 Codex CLI、Claude Code、opencode、Pi 的历史对话按项目目录导入;未点击导入的软件日志不读取。
- SSH 隧道托管:插件自行开启 SSH 隧道、保活重连、自动分配本地端口。
- 模型配置增量同步:把本机有而远端缺的提供方、默认模型和 API Key 补到远端,不覆盖远端已有配置。
- 功能开关:
features.aggregate、features.tunnel、features.modelSync、features.importer可独立控制相应能力。
安装与启用¶
先安装插件:
dsh plugin --profile web add dsh-session-hub@alpha
装完重启 dsh web 并刷新页面。进入 设置 → 插件,出现 会话枢纽 标签页即表示可用。
如果需要使用 GitHub tarball 安装:
dsh plugin --profile web add https://github.com/Asaiuta/dsh-session-hub/archive/refs/tags/v0.1.0-alpha.2.tar.gz
如果要改代码调试:
git clone https://github.com/Asaiuta/dsh-session-hub && cd dsh-session-hub
npm install && npm run build
dsh plugin --profile web add file:$(pwd)
环境要求¶
- 本机 DSH:实测
@deepseek-ai/dsh@0.1.0-rc.6。 - Node:
^22.19 || >=24。 - Profile:仅
web;装进headless/tui会一直 pending,并导致该 profile 启动失败。 - 远端 DSH:需为未安装本插件、能应答标准
/api的dsh web。 - 网络:当前 DSH 只允许环回绑定,远端通常需要 SSH 隧道或已有
ssh -L。
典型用法¶
接一台远端机器¶
远端先启动 DSH Web:
dsh web --port 3080
本机安装并重启插件后,打开官方 Web UI,进入 设置 → 插件 → 会话枢纽 → 添加服务器。填写名称、主机、SSH 用户、私钥路径、远端 dsh 端口,测试通过后添加。
本地端口由插件自行分配。经过上面的步骤,远端服务器会出现在工作区树中;组内会话可以用官方对话区查看历史、接实时流、处理审批卡片和提问问卷,并支持发送、取消、重命名。
导入本机其他工具的会话¶
打开 设置 → 插件 → 会话枢纽 → 外部会话,按 Codex CLI、Claude Code、opencode、Pi 逐个点击导入。
导入的会话在树里只读。如果直接向导入会话发送消息,可将其转成真实 DSH 会话,原只读副本隐藏。源日志只读打开,从不改写、从不删除。
配置功能开关¶
在 profile 的 cordis.yml / cordis.patch.yml 中可配置 dataFile、trustedHosts 或 features 开关。
例如只保留导入,不启用多服务器聚合:
- id: dsh-session-hub
config:
features:
aggregate: false
例如不导入本机其他工具日志:
- id: dsh-session-hub
config:
features:
importer: false
关闭导入后不读取日志,关闭聚合后不发起出站连接。
注意事项¶
- 插件以当前 DSH 进程权限运行,并能读取已授权的本地工具日志、与配置的服务器通信。安装前应检查源码、许可证和配置项。
- Alpha 版本的配置格式、路由表、
/hub/events帧协议在 1.0 前可能破坏性变更。 - README 称只验证过一套环境:Windows 本机 + 腾讯云 Linux,经 SSH 隧道跑通跨机对话、审批应答与实时流。
- 插件不需要任何 API key 或令牌环境变量;唯一相关环境变量是
DSH_HOME,影响注册表默认路径。 - 彻底移除时,除移除插件配置并重启外,还需删除
$DSH_HOME/plugins/dsh-session-hub.json和$DSH_HOME/plugins/dsh-session-hub-imports.json。
链接¶
- 目录页:https://www.skillhub.cn/plugins/Asaiuta/dsh-session-hub
- GitHub:https://github.com/Asaiuta/dsh-session-hub