前言¶
在 DeepSeek Harness 裏做智能體或日常對話時,常見做法是用系統瀏覽器打開 chat.deepseek.com,或在多個窗口之間切換。頁面不在應用內,切走容易丟上下文;Electron 內嵌站點又常遇到 UA 被識別爲異常環境、登錄態無法跨重啓等問題。下面介紹社區插件 dsh-deepseek-site(維護者 WJMACTD,分類:客戶端):在 Harness 左側欄增加一個入口,在中央面板內嵌官方站點,切面板不重載,並儘量在本機跨重啓保留登錄。
這是什麼¶
dsh-deepseek-site 是 DeepSeek Harness 的客戶端 bundle 插件(當前資料中的版本爲 1.6.2,許可證 MIT,依賴 dsh >=0.2.1-rc.2 <0.3.0)。它不做服務端邏輯:index.js 的 apply() 爲空,實際能力在 client.js 裏註冊左側 sidebar.panellist 入口與 main 面板,用一處 guest 實例加載 https://chat.deepseek.com/。
- 目錄頁:https://www.skillhub.cn/plugins/WJMACTD/dsh-deepseek-site
- 源碼:https://github.com/WJMACTD/dsh-deepseek-site
社區插件目錄由 SkillHub 等站點維護,與 DeepSeek / 幻方無官方從屬關係;安裝前請自行閱讀源碼與許可證。
核心功能¶
內嵌與保活¶
點左側入口後,站點顯示在應用窗口內部的中央面板,不跳轉系統瀏覽器(除非用戶主動選擇兜底打開)。
- 切走不卸載:頁面掛在
document.body上,切換到其他面板再回來,對話、滾動位置、正在生成的回答仍保留,頁面不重載。 - 面板頂部有緊湊工具欄:標題、登錄態、重新加載、在系統瀏覽器打開、以及(有快照時)「忘記本機登錄」。
- 頂部留白按平臺區分:Windows 由外層框架預留標題欄,頁面只留 16px;macOS 才疊加
--dsh-frame-top-clearance。 - 固定
WORKSPACE_KEY爲dsh-deepseek-site,所有工作區共用同一個 guest 分區,登錄與站點偏好不隨工作區切換重置;代價是工作區之間不隔離該瀏覽容器。
導航與白名單¶
chat.deepseek.com 站內跳轉留在內嵌頁;站外 https 鏈接交給系統瀏覽器,且 2 秒內同一地址只開一次。
User-Agent¶
僅從 UA 中去掉 Electron/<版本> 這一個產品標記,平臺與內核版本原樣保留。站點若檢測 UA 中是否含 electron 字樣,需在頁面腳本運行前寫入 useragent 屬性,並在 dom-ready 時再調用一次 setUserAgent。
無桌面瀏覽器 API 時的行爲¶
運行環境沒有 window.dshDesktop.browser(例如在普通瀏覽器裏打開 Web UI)時,面板顯示說明卡片並提供兜底按鈕,不會靜默跳轉。
登錄記憶(快照 + 回放)¶
guest 分區名爲 dsh-sidebar-browser-<uuid>,無 persist: 前綴,進程內有效;應用重啓後 guest 的 localStorage 會空。插件用快照繞開:
- 在站點文檔每次
did-finish-load、站內路由變化、以及窗口可見時每 15 秒執行CAPTURE_SCRIPT,只讀userToken與__appKit_userInfo。 - 有 token 則寫入應用文檔
dsh-app://app/的 localStorage(鍵deepseek-site:sign-in:v1);該 scheme 默認 session 持久化,快照可跨重啓。 - 下次打開面板,在
did-finish-load時用restoreScript寫回 guest 的 localStorage,寫過則reload()一次;回填期間有遮罩,避免登錄頁閃爍。 - 同一次運行內 guest 已有有效 token 時不覆蓋,避免把新登錄寫回舊快照。
工具欄「已記住登錄」表示快照已保存;狀態文字含義如下:
| 狀態 | 含義 |
|---|---|
| 已回填登錄 | 快照寫進內嵌頁並重新加載了一次 |
| 登錄有效 | 內嵌頁本來就有 token,沒有覆蓋 |
| 無登錄快照 | 本機還沒記錄過登錄,或回填被拒 |
「忘記本機登錄」會同時刪除應用文檔裏的快照和 guest 內兩份憑據後重載;只刪一側會被捕獲邏輯再次寫回。
診斷信息寫入應用文檔 localStorage 的 deepseek-site:diag:v1(環形緩衝最近 20 條,僅在結論/次數/token 長度變化時追加),字段爲 at、note、attempts、tokenLen,不含 token 或完整 URL。
安裝與啓用¶
已抓取資料中的 README 與 package.json 未給出 Harness CLI 的一行安裝命令;請從 SkillHub 目錄頁或倉庫說明中確認當前推薦安裝方式,不要憑倉庫名自行拼接未在文檔中出現的命令。
bundle 通過 cordis.patch.yml 將 deepseek-site 插入 profile;客戶端在 package.json 中聲明爲 dsh.client.platform: web、immediately: true。啓用後重啓或按你使用的 DSH 版本要求 reload 插件即可在左側看到入口。
典型用法¶
- 在 Harness 桌面版(具備
window.dshDesktop.browser)中安裝並啓用插件。 - 點擊左側欄 DeepSeek 入口,在中央面板完成官網登錄(首次無快照時會走正常登錄頁)。
- 日常在 Harness 內與其他面板切換,內嵌對話保持不 reload。
- 需要站外鏈接或排查問題時,用工具欄「在系統瀏覽器打開」或「重新加載」。
- 換機或不再信任本機存儲時,點「忘記本機登錄」,或移除插件後清理 Electron 用戶數據目錄下相關
Local Storage/leveldb數據。
更細的時序與容器結構見倉庫內 docs/architecture.md;本機環境坑見 docs/pitfalls.md。
適用場景與注意¶
適合:希望在 DSH 單窗口內長期使用官方 chat.deepseek.com、減少瀏覽器來回切換,並願意在本機保存登錄快照的用戶。
務必知曉:
- 快照爲明文 JSON,存於 Harness 桌面版 Electron 用戶數據目錄(含
Local Storage/leveldb),敏感程度與 Harness 自身登錄相當;同源的其它插件理論上可讀,勿安裝來路不明的 bundle。 - 插件以當前 DSH 進程權限運行,安裝前應通讀
client.js與 MIT 許可證。 - 僅複製
userToken與__appKit_userInfo,不復制其它__appKit_*特性鍵,以控制暴露面。 - 非桌面 Web UI 環境只能看到說明與兜底,無法完整內嵌。
結尾¶
dsh-deepseek-site 把官方對話頁收進 Harness 左欄 + 中央面板,用保活與 UA 處理改善內嵌體驗,用應用文檔 localStorage 快照解決 guest 分區不持久的問題。細節與測試見 GitHub 倉庫(含 test-signin.cjs)。
- 插件目錄:https://www.skillhub.cn/plugins/WJMACTD/dsh-deepseek-site
- 源碼:https://github.com/WJMACTD/dsh-deepseek-site