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

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

小夜