dsh-session-hub:把远端 DSH 会话和本机工具历史收进同一棵会话树

前言

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.aggregatefeatures.tunnelfeatures.modelSyncfeatures.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:需为未安装本插件、能应答标准 /apidsh 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 中可配置 dataFiletrustedHostsfeatures 开关。

例如只保留导入,不启用多服务器聚合:

- 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
羽毛球分组比赛记分
小程序二维码

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

小夜