前言¶
DeepSeek Harness(命令行工具名爲 dsh)是 DeepSeek AI 開源的智能體運行時。官方倉庫把它的架構概括成一句話:一切皆插件。模型、工具、會話、沙箱、界面都可以替換或疊加,而不必改核心代碼。它目前仍處於 developer preview,接口還會變。
默認用 dsh web 打開的是瀏覽器裏的對話界面。做本地開發時,很多人還是會切到外部編輯器看文件、另開終端跑命令、再用 Git 客戶端看 diff。這些能力如果能貼在同一塊網頁工作區裏,來回切換會少很多。
社區插件 DSH-better-sidebar 就是做這件事的:在 DSH 網頁界面右側(以及底部)掛上一套工作臺,覆蓋文件樹、編輯預覽、真實終端、Git 面板和子智能體任務,並且把 ctx.betterSidebar 服務開放給其他插件。需要先說清楚來源:它由 GitHub 組織 omdsh-dev 維護,採用 MIT 許可證;本文依據的社區插件目錄(https://deepseek-harness-plugin.com)是獨立站點,與 DeepSeek / 幻方沒有官方從屬關係,不要把它理解成官方應用商店。
這是什麼¶
DSH-better-sidebar 是一款面向 DSH 網頁端(web profile)的界面增強插件。倉庫 README 的定位是「服務化的側邊欄框架,一套開箱即用的完整工作臺」:右側欄加底部面板,內置文件渲染編輯、終端、Git、子智能體等頁面;第三方插件可以通過 registerTab / registerFileViewer 註冊新的側邊欄頁面和文件預覽器。
package.json 當前版本是 0.12.3,要求 Node.js ≥ 20,客戶端平臺聲明爲 web。倉庫創建於 2026-08-07。本文寫作當天打開 GitHub 倉庫,星標數爲 1645;社區目錄頁同期顯示 925,兩者可能因緩存不同,以倉庫頁面爲準。
核心功能¶
根據倉庫 README(與目錄頁介紹一致),已經落地的能力主要包括下面幾項。
文件工作臺。 資源管理器按需懶加載目錄樹;軟鏈接按目標類型展示,目錄軟鏈接可以展開,失效鏈接會標紅。編輯器用的是 CodeMirror。圖片、Markdown、HTML、PDF 可以內聯預覽。Office 三件套(.docx / .xlsx / .pptx)的預覽已從內置能力遷到設置頁「推薦插件」,未安裝時這類文件會走代碼查看或下載兜底。
內嵌瀏覽器。 可以多開網頁 tab,支持後退、前進、刷新。內容跑在沙箱 iframe 裏。外鏈默認按協議分流:HTTP 在側邊欄打開,HTTPS 走系統瀏覽器,設置頁可以分別調整。
真實終端。 基於 xterm.js 和 node-pty,提供真實 shell,斷線後可以重連回放。設置項可以自定義 shell,Windows 上會自動探測 pwsh。也可以選擇給模型注入 terminal_* 工具。node-pty 加載失敗時,插件本身仍會掛載,終端頁會給出修復提示,不會把整個服務拖垮。
Git 面板。 提供真實 diff、類似 VS Code 的 diff tab、提交歷史,以及右鍵暫存、提交、還原。內置面板沒有 push / pull / fetch。README 的推薦插件目錄裏有 dsh-git-remotes,專門補遠程分支相關操作,並且不替換內置的暫存和提交。
後臺任務與子智能體。 後臺任務頁展示 subagent 拓撲,以及後臺任務的退出碼、即時輸出和強制終止。
雙工作臺與會話隔離。 右側欄和底部面板可以同時用;Tab 可以拖到分欄邊緣拆分或合併,也可以跨面板拖動。佈局、Tab、面板按會話持久化,陳舊狀態會自動淨化。屏幕寬度小於 768px 時沒有底部面板,窄屏下底部標籤會一次性併入右側欄。
按需加載與皮膚。 README 寫明啓動只拉取約 325KB 核心,終端、編輯器等較重的依賴用到才拉。v0.12.3 起全面消費 DSH 設計令牌,可與 dsh-web-ui 皮膚中心的皮膚一起換膚。界面文案跟隨 DSH 語言在中文和英文之間切換。
設置頁把各項能力做成「側邊卡片」獨立開關,二級選項放在齒輪彈窗裏。內置 7 個 tab 和 6 個文件預覽器,與第三方插件走同一套 ctx.betterSidebar API,能力對等。
安裝與啓用¶
前置條件來自倉庫 README:本機已經能跑 dsh web,Node.js ≥ 20,pnpm ≥ 10。插件只聲明瞭 web 平臺,不要指望它出現在 headless 配置裏。
社區目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端裏運行即可:
dsh plugin add github:omdsh-dev/DSH-better-sidebar
如需可復現安裝,目錄頁建議固定 commit 哈希:
dsh plugin add github:omdsh-dev/DSH-better-sidebar#<commit>
把上面的 <commit> 換成倉庫裏實際的提交哈希。維護者 README 另外給出了按 web profile、從 npm 安裝最新版的寫法,和目錄頁是兩條通道,選一條即可:
dsh plugin --profile web add dsh-better-sidebar@latest
如果本機還沒有 dsh 命令,README 提供的等價寫法是:
npx -y --package @deepseek-ai/dsh dsh plugin --profile web add dsh-better-sidebar@latest
裝完後對瀏覽器做一次硬刷新(macOS 上是 Cmd+Shift+R,Windows / Linux 上是 Ctrl+Shift+R)。README 說明:DSH 對 client 改動會熱加載,一般不必重啓;只有 host 半更新時才需要重啓 dsh。
目錄頁和 README 都提醒:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前應檢查源代碼倉庫和許可證。不要同時走 npm / GitHub 安裝和 dsh registry 兩條通道,README 寫明同時啓用會雙掛載,頁面上會出現兩個側邊欄。如果已經出現這種情況,檢查 ~/.dsh/profiles/web/cordis.patch.yml 裏是否還留着舊的手動掛載行,刪掉其中的 better-sidebar 插入段。
pnpm 11 可能攔截構建腳本,報 Ignored build scripts。按 README,在 profile 目錄(~/.dsh/profiles/web)執行:
pnpm approve-builds --all
終端提示 node-pty 加載失敗時,同樣在該目錄執行 README 給出的修復命令,完成後重啓 DSH 再點終端頁的重試:
pnpm approve-builds --all && pnpm rebuild node-pty
Windows 下如果當前 Node 版本沒有對應的 node-pty 預編譯二進制,需要安裝 VS Build Tools 才能編譯。找不到 profile 目錄時,先跑一次 dsh web,讓它初始化 ~/.dsh/profiles/web。
典型用法¶
硬刷新後,網頁右側應出現側邊欄。日常操作可以按 README 裏的快捷鍵來:
| 操作 | 按鍵 |
|---|---|
| 保存編輯 | Ctrl/Cmd + S |
| Git 提交 | Ctrl + Enter |
| 關閉 Tab | 鼠標中鍵 |
| 拆分或合併分欄 | 把 Tab 拖到分欄邊緣或中間 |
| 引用文件到輸入框 | 懸浮行尾的 @文件 按鈕 |
| 複製文件路徑 | 右鍵行,複製相對或絕對地址 |
標籤頁欄支持鼠標滾輪橫向滾動。設置頁可以逐項關掉不需要的側邊卡片;Windows 上如果原生標題欄擋住了右上角按鈕,可以打開「位置兼容模式」,爲標題欄預留頂部空間。
文件樹裏打開文本會進編輯器,打開圖片、Markdown、HTML、PDF 會走對應預覽。HTML 預覽渲染的是已保存文件,不會反映編輯器裏還沒保存的草稿。瀏覽器 tab 被 X-Frame-Options 或 frame-ancestors 拒絕嵌入的站點(README 舉例 arxiv.org)會顯示原因面板,並提供「在瀏覽器中打開」。
Git 面板適合看 diff、暫存和提交。遠程同步請不要默認假設內置面板能做,需要的話再按設置頁推薦目錄安裝對應擴展。
給其他插件註冊側邊欄頁面¶
從 v0.4.0 起,插件把 ctx.betterSidebar 暴露給同一進程裏的其他插件。下面這段來自倉庫 README,是最小的 tab 註冊例子:
import type {} from 'dsh-better-sidebar' // 觸發 ctx.betterSidebar 類型合併
export const inject = ['betterSidebar']
export function apply(ctx: Context) {
ctx.effect(() => ctx.betterSidebar.registerTab({
id: 'my-plugin:db',
title: 'Database',
component: ({ scope }) => <DbView sessionId={scope.sessionId} />,
}))
}
要點有三條。第一,服務只在瀏覽器側的 client half 上存在,host 半沒有 ctx.betterSidebar。第二,要用 import type {} from 'dsh-better-sidebar' 做類型合併,外部插件才能在 Context 上看到這個服務。第三,註冊調用放進 ctx.effect,卸載或熱更新時會自動撤銷。
v0.12 以後還補了能力探測(version / features)、狀態訂閱、tab 角標、onOpen / onActivate / onClose 生命週期、updateTab / activateTab / openFile、以及插件自己的設置項。完整字段和匹配算法以倉庫裏的 AGENTS.md 和 docs/external-plugin-guide.md 爲準。
設置頁「側邊卡片」網格末尾的虛線卡片會打開 Tab / 預覽插件彈窗,裏面有推薦插件目錄,可以複製安裝命令。README 裏點名的擴展包括 Git 遠程 Tab(dsh-git-remotes)和視頻內聯預覽(dsh-video-preview)。社區裏用 GitHub topic dsh-better-sidebar 可以發現更多擴展。
適用場景與注意事項¶
比較適合這幾類用法:已經在用 dsh web 做本地編碼或排障,希望文件、終端、Git 不必離開對話頁;需要看智能體改了哪些文件、子智能體跑到哪一步;或者自己在寫 DSH 插件,想往側邊欄掛一個頁面或一種文件預覽。
使用前注意下面這些限制,均來自倉庫 README,不是推測。
- Git 內置面板沒有 push / pull / fetch,也沒有文件 watcher,目錄變化需要手動刷新。
- 終端 Tab 拖到另一分欄會重掛載,shell 會重開。
- 瀏覽器沙箱沒有完整登錄態,第三方 Cookie 受限;部分站點需要彈窗登錄。地址欄會拒絕
javascript:、data:、file:以及 localhost 等本機地址。 - 媒體和預覽路由只允許會話工作目錄內的文件;Git 只調用 CLI,不會在倉庫裏寫入用戶身份。
- 可以在設置裏關掉 HTML / 瀏覽器沙箱,關閉後內容與界面同源。README 寫明僅建議對完全可信的內容使用。
- 平臺聲明覆蓋 Windows / Linux / macOS。README 說明 macOS 爲日常驗證環境,其餘主要靠單元測試覆蓋。
- 工具行裏的「打開文件」按鈕目前攔截不到。
安全方面再重複一次:插件與當前 dsh 進程權限相同,能讀工作區、開終端、調 Git。安裝前應閱讀源碼和 MIT 許可證,生產或敏感倉庫上建議固定 commit 或 npm 版本,而不是長期追 @latest。
小結¶
DSH-better-sidebar 把文件、編輯預覽、終端、Git 和子智能體收進 DSH 網頁的右側欄與底部面板,並把同一套註冊接口開放給其他插件。它是社區維護的 MIT 項目,不是 DeepSeek 官方內置功能。安裝和能力邊界以目錄頁與倉庫 README 爲準,遇到終端或雙掛載問題,優先按 README 的常見問題表排查。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-better-sidebar/
GitHub:https://github.com/omdsh-dev/DSH-better-sidebar