DSH(DeepSeek Harness)的核心理念是“一切皆插件”,但在實際開發中,開發者往往需要在對話與代碼工作臺之間頻繁切換。all3ncn/dsh-better-sidebar-n23 是一個 DSH web 插件,它提供了一個完整的工作臺環境,並重構了 Shell 界面,使其更接近 IDE 的使用體驗。
插件介紹¶
該插件 fork 自 omdsh-dev/DSH-better-sidebar,在 @all3cn 作用域下獨立發版。它旨在爲 DSH 用戶構建一個集文件管理、編輯、預覽、終端、Git 操作及任務管理於一體的客戶端插件。作爲開源項目,其許可證爲 MIT。
核心功能¶
插件包含以下主要能力:
- 文件工作臺:提供資源管理器,支持目錄樹的懶加載以及軟鏈接按目標類型展示;內置 CodeMirror 編輯器。
- 內聯預覽:支持圖片、Markdown、HTML、PDF 及 Office 文檔的直接內聯預覽。
- 真實終端:基於 xterm.js 和 node-pty,提供真實的 shell 環境,支持斷線重連回放。
- Git 面板:提供真 diff 顯示、VSCode 風格的 diff tab、歷史記錄,以及右鍵暫存/提交/還原等操作。
- 內嵌瀏覽器:支持多開網頁 tab,具備後退、前進、刷新功能,內容運行在沙箱 iframe 中。
- 後臺任務頁:展示 subagent 拓撲結構及後臺任務狀態,支持查看退出碼、實時輸出及強制終止。
- 雙工作區佈局:支持右側欄與底部面板的拆分與合併,Tab 支持拖拽調整分欄。
- 外殼重構:採用全寬 48px 頂欄、VSCode 式活動欄(activity rail)及全局控制區,優化對話與工作臺的共存佈局。
- 服務化 API:通過
ctx.betterSidebar向所有插件開放註冊接口,允許第三方插件註冊側邊欄頁面與文件預覽器。 - 會話隔離:佈局、Tab 和麪板按會話持久化,支持多語言跟隨 DSH 設置。
安裝與啓用¶
安裝前請確保已正確安裝並運行 DSH(dsh web 可正常使用)。
dsh plugin --profile web add @all3ncn/dsh-better-sidebar-n23
安裝時會自動應用包內聲明的 dsh.bundle.patch(位於 cordis.patch.yml),CLI 的 bundle 協調機制會將其加入 profile 的 bundle 棧,無需手動修改 profile 文件。如果 profile 中殘留舊的 dsh-better-sidebar(上游或本地 fork)掛載行,請先移除,以免造成雙掛載。
卸載命令如下:
dsh plugin --profile web remove @all3ncn/dsh-better-sidebar-n23
典型用法¶
作爲插件接入示例,任一 DSH 插件的 client 半區可通過以下接口註冊側邊欄頁面:
ctx.betterSidebar.registerTab({
id: "my-tab",
title: "My Tab",
render: ...
});
註冊文件預覽器:
ctx.betterSidebar.registerFileViewer({
pattern: "**/*.xyz",
render: ...
});
適用場景與注意¶
該插件適合需要在一個界面中完成從代碼編寫、版本控制到終端操作及任務管理的 DSH 用戶。
注意事項如下:
- 環境要求:要求 Node.js 版本大於等於 20。
- 版本驗證:針對 DSH
0.1.1-rc.2驗證,peer 依賴聲明爲@deepseek-ai/* >= 0.1.0-rc.6 < 0.2.0。 - 構建狀態:測試使用 Node.js 內置 test runner,零依賴。當前倉庫存在有意的分軌狀態:
src領先健壯性修復,lib領先外殼佈局,運行時以lib爲準。 - 許可證:使用前請確認源碼與許可證,插件以當前 DSH 進程的權限運行。
總結¶
all3ncn/dsh-better-sidebar-n23 通過重構 Shell 外殼和提供完整的工作臺功能,顯著提升了 DSH 客戶端的可用性。它不僅是一個功能集合,更通過服務化 API 爲其他插件擴展提供了標準接口。