dsh-chat-shell:在 DeepSeek Harness 桌面端一鍵切換 Chat 與 Harness

前言

DeepSeek Harness(DSH)桌面端默認是單一窗口、單一界面:會話、工具、任務都在同一套 UI 裏完成。若你習慣在瀏覽器裏用 chat.deepseek.com、豆包或 ChatGPT 對話,又要頻繁回到 Harness 查任務、看工具輸出,常見做法是開多個窗口或 Alt+Tab 切換,Harness 裏的滾動位置和進行中的工具調用容易被打斷,網頁側正在流式輸出的回覆也可能因切走而中斷感知。

下面介紹社區客戶端插件 dsh-chat-shell(維護者 lxg103):在標題欄增加 Chat / Harness 分段切換,把指定 AI 站點以嵌入式瀏覽器鋪滿整窗,再一鍵回到未改動的 Harness 界面;兩側狀態保持掛載,切換是淡入淡出而非整頁重載。

這是什麼

dsh-chat-shell 是 DSH 的 客戶端插件(plain ES modules,lib/client.js 在掛載時向 document.body 繪製全屏面板、站點按鈕與切換控件)。它依賴桌面殼提供的 dshDesktop.browser 創建與內置側欄瀏覽器相同方式的 <webview>,在 Harness UI 與 Chat 網頁之間切換,而不銷燬任一側的會話。

DSH 生態理念是「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。安裝前請自行查看源碼與許可證——插件在 當前 DSH 進程權限 下運行。

核心功能

README 中已覈實的能力如下。

能力 說明
分段切換 標題欄居中 Chat \| Harness,可點標籤或拖動玻璃滑塊切換。
站點按鈕 切換左側:品牌圖標 + caret,打開後選預設或自定義站點。
三個預設 DeepSeek、豆包(Doubao)、ChatGPT,各自獨立 browser session partition。
自定義 URL 粘貼地址,標籤由 hostname 推導,與預設一併持久化。
即時切換 站點只掛載一次,用 CSS 顯隱切換,不因切換而 teardown。
狀態記憶 上次模式、上次站點、站點列表在重載後保留(見下文 localStorage)。
主題跟隨 從 live 頁面讀取明暗並隨應用主題更新。
軟失敗 在無桌面 bridge 的瀏覽器版 DSH 上,切換控件自行隱藏,不破壞頁面。

切換行爲上的要點(與簡介一致):

  • Harness 側:會話、滾動位置、進行中的 tool call 不被改動。
  • Chat 側:各 AI 站點保持 mounted,你在看 Harness 時仍在生成的回覆可繼續生成。
  • 每個站點獨立 partition,三套登錄互不覆蓋。

環境與要求

  • DeepSeek Harness desktop 0.2.x — 嵌入式瀏覽器由 Electron 殼提供,dsh web 中不存在。
  • Windows — README 標明在該桌面構建上開發與測試。

安裝與啓用

插件市場 / CLI

官方 README 給出的安裝命令爲:

dsh plugin add dsh-chat-shell

手動(本地目錄)

  1. 將整個插件目錄複製到 profile 的 node_modules:
   %USERPROFILE%\.dsh\profiles\desktop\node_modules\dsh-chat-shell
  1. 在 …\profiles\desktop\cordis.patch.yml 中插入:
   - insert:
       - id: chat-shell
         name: dsh-chat-shell
  1. 保存後桌面應用會熱重載插件圖;若未出現切換條,重啓一次應用。

卸載時:從 cordis.patch.yml 移除 chat-shell 或執行 dsh plugin remove dsh-chat-shell,並刪除對應 node_modules 目錄;若曾應用可選的 shell 登錄持久化補丁,需先按 README 執行 restore(見下節)。

典型用法

  1. 切換模式 — 點擊 Chat 或 Harness,或拖動滑塊。
  2. 選擇站點 — 點擊切換條左側圓形按鈕。
  3. 添加站點 — 在 picker 中選 + 添加 AI 網頁,粘貼 URL 後按 Enter。
  4. 回到 Harness — 再點一次 Harness;其餘狀態不變。

插件在 localStorage 中只保留一個鍵 dsh-chat-shell:state,結構示例:

{
  "mode": "chat",
  "active": "deepseek",
  "sites": [{ "id": "deepseek", "label": "DeepSeek", "url": "https://chat.deepseek.com/" }]
}

重置:在應用 DevTools 中執行 localStorage.removeItem("dsh-chat-shell:state") 後重載。

可選:重啓後保持 Chat 登錄

默認嵌入式瀏覽器使用 內存 session partition,應用重啓後會退出登錄;README 說明這是 shell 行爲,非本插件缺陷。

倉庫提供 scripts/patch-persistent-login.mjs,通過對 已安裝 shell 副本 做一行 partition 修改實現持久登錄(原安裝包保留以便回滾)。操作前閱讀 docs/persistent-login.md:會修改已安裝應用、僅 Windows、DSH 更新會覆蓋補丁(需再 build + apply)。不打補丁插件仍可正常使用。

狀態與構建相關命令(摘自 README):

node scripts/patch-persistent-login.mjs status
node scripts/patch-persistent-login.mjs build
node scripts/patch-persistent-login.mjs apply

適用場景與限制

適合誰: 在 Windows 上使用 DSH 0.2.x 桌面版,希望在同一窗口內在 Harness 工作流與 DeepSeek / 豆包 / ChatGPT(或自填 URL)之間快速切換,且不想因切換丟失 Harness 上下文或打斷網頁側流式輸出。

務必知曉的限制(README「Limits worth knowing」):

  • 僅桌面端;依賴未文檔化的 dshDesktop.browser internal 契約,未來 DSH 若改名,插件會隱藏自身而非拋錯。
  • Shell 對嵌入式瀏覽器有 deliberate 限制:無下載、無權限提示、無嵌套 webview、無 HTTP 認證對話框;本插件不嘗試放寬。
  • 部分站點可能識別 embedded browser;DeepSeek、豆包、ChatGPT 當前可渲染輸入;若站點自行攔截自動化,插件不應嘗試繞過。
  • 路線圖不含「每站點多窗口」;每站點單 tab。
  • 瀏覽器託管 DSH 無 desktop bridge,切換條不會出現。

結尾

dsh-chat-shell 在 DSH 桌面標題欄增加 Chat / Harness 雙界面切換,用真實 webview 嵌入常用 AI 聊天站,並與 Harness 原生 UI 並行保活。安裝以 dsh plugin add dsh-chat-shell 爲準;細節與實現摘要見 GitHub README。

羽毛球分组比赛记分
小程序二维码

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

小夜