DSH-better-sidebar:給 DeepSeek Harness 裝上可擴展的側邊欄工作臺

前言

DeepSeek Harness(DSH)的核心理念是「一切皆插件」——主會話負責對話與工具調用,但文件瀏覽、終端、Git 狀態、子代理拓撲等「開發時上下文」往往散落在系統各處,需要頻繁切換窗口。社區裏有不少界面增強類插件,其中 DSH-better-sidebar 是目前 star 數最高的側邊欄方案之一:它不只是把幾個頁面塞進右側欄,而是把側邊欄做成一套可註冊、可擴展的服務底座,內置文件編輯、終端、Git、子代理等常用能力,同時向第三方插件開放同一套 API。

本文基於插件目錄頁與 GitHub 倉庫 README 覈實信息,介紹這款由 omdsh-dev 維護的客戶端插件:它解決什麼問題、核心能力有哪些、如何安裝與上手。

這是什麼

DSH-better-sidebar(npm 包名 dsh-better-sidebar)是一款面向 DSH Web 界面的側邊欄工作臺插件,歸類爲界面增強。一句話定位:開放的側邊欄底座,內置文件渲染與編輯、真實終端、Git 面板、子代理任務頁、側邊對話等頁面,並通過 ctx.betterSidebar 服務向生態插件開放 registerTab(註冊側邊欄頁)與 registerFileViewer(註冊文件預覽器)兩個擴展點——內置的 7 個 Tab 與 6 個預覽器,與第三方插件走同一套 API,能力對等。

項目在 GitHub 上採用 MIT 許可證,截至覈實日約有 2800+ star。它收錄於 DeepSeek Harness 插件庫SkillHub 插件目錄 等社區站點;這些目錄由社區維護,與 DeepSeek / 幻方無官方從屬關係,但可作爲發現與安裝插件的入口。

核心功能與亮點

文件工作臺

資源管理器支持懶加載目錄樹,軟鏈接按目標類型展示(目錄軟鏈接可展開、失效鏈接標紅)。配合 CodeMirror 編輯器,可直接在側邊欄讀寫代碼;圖片、Markdown(含 Mermaid 圖表,strict 安全渲染)、HTML、PDF 等格式支持內聯預覽。Markdown 預覽還支持浮動目錄大綱、README 級內嵌 HTML(經 DOMPurify 消毒)等能力。

真實終端

基於 xterm.js + node-pty 提供真實 shell(非模擬器),支持斷線重連與 transcript 回放。可在設置頁配置 shell 路徑與參數;開啓相關選項後,還可爲模型注入 terminal_* 工具,讓 Agent 直接在終端執行命令。

Git 面板

提供暫存、提交、還原、歷史查看等操作,改動文件可打開 VSCode 式 diff Tab 做行級對比。工作區容器下可自動發現子倉庫並顯示倉庫選擇器,支持 linked worktree 變更發現。

內嵌瀏覽器與後臺任務

內嵌瀏覽器支持多 Tab 瀏覽,內容運行在沙箱 iframe 中;外鏈默認按協議分流(HTTP 在側邊欄打開、HTTPS 可走系統瀏覽器,可在設置中調整)。後臺任務頁展示子代理拓撲與後臺任務清單(退出碼、即時輸出、強制終止)。

側邊對話(beta)

Codex 風格的側邊線程:每個對話獨立 Tab,繼承主會話完整上下文後獨立運行,不污染主會話;可持續追問,並支持一鍵「保存爲新會話」提升爲頂層會話。

雙工作臺與自由窗口

右側欄與底部面板可同時展開,拖 Tab 可拆分 / 合併分欄(可跨面板);窄屏下自動合併爲全寬抽屜。較新版本還支持把 Tab 拖到主會話區域變爲可移動、縮放的懸浮窗口,拖回側邊欄即可停靠。

服務化擴展與生態

從 v0.4.0 起暴露 ctx.betterSidebar 服務。其他插件通過 inject: ['betterSidebar'] 注入後,可註冊自定義側邊欄頁面或文件預覽器。GitHub topic dsh-better-sidebar 下已有 28+ 生態插件(Office 預覽、視頻預覽、Jupyter Notebook、SSH 隧道等),設置頁內置推薦目錄,可一鍵複製安裝命令。

其他值得關注的特性:會話級佈局持久化、聲明式設置(側邊卡片逐項開關)、按需加載(啓動約 325KB 核心,終端 / 編輯器 / Mermaid 等重依賴用到再拉取)、界面文案跟隨 DSH 語言(zh / en)切換。

安裝與啓用

前置條件:已安裝 DSH(dsh web 能正常運行)。若走 npm 通道安裝,還需 Node.js ≥ 20、pnpm ≥ 10。插件支持的 DSH 版本包括 0.1.0-rc.8、0.1.1-rc.1、0.1.1-rc.2。

方式一:插件目錄推薦命令(GitHub 源)

在 DeepSeek Harness 終端執行:

dsh plugin add github:omdsh-dev/DSH-better-sidebar

如需可復現安裝,可固定 commit 哈希:

dsh plugin add github:omdsh-dev/DSH-better-sidebar#<commit>

方式二:npm 通道(README 推薦)

dsh plugin --profile web add dsh-better-sidebar@latest
cd ~/.dsh/profiles/web && pnpm approve-builds --all
dsh plugin --profile web add dsh-better-sidebar@latest

首次安裝時,pnpm 11 可能攔截 node-pty 構建腳本導致失敗,屬正常現象;在 profile 目錄執行 pnpm approve-builds --all 放行後重跑即可。

裝完後硬刷新瀏覽器(Cmd/Ctrl+Shift+R)即可看到側邊欄。DSH 對 client 改動支持熱加載,一般無需重啓進程。

安全提示:插件以當前 dsh 進程的權限運行,安裝時可能執行構建腳本。安裝前請檢查 GitHub 源碼倉庫 與 MIT 許可證,確認來源可信後再安裝。

典型用法示例

日常使用

  1. 啓動 dsh web,打開任意會話。
  2. 點擊右側欄開關,展開工作臺;可在設置頁「側邊卡片」中按需啓用文件、終端、Git、瀏覽器、側邊對話等 Tab。
  3. 在資源管理器中點擊文件即可預覽或編輯;Ctrl/Cmd + S 保存,Ctrl + Enter 在 Git 面板提交。
  4. 拖 Tab 到分欄邊緣可拆分佈局;懸浮行尾的 @文件 按鈕可把文件路徑引用進輸入框。

第三方插件註冊側邊欄頁(開發者)

以下示例來自官方 README,展示如何通過 ctx.betterSidebar 註冊自定義 Tab 與文件預覽器:

import type {} from 'dsh-better-sidebar'
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} />,
  }))
  ctx.effect(() => ctx.betterSidebar.registerFileViewer({
    id: 'my-plugin:csv', exts: ['csv'], fetchStrategy: 'custom',
    load: async (path, scope) => parseCsv(await fetchText(scope, path)),
    component: ({ customData }) => <CsvGrid rows={customData} />,
  }))
}

完整接入文檔見倉庫內的 AGENTS.mddocs/external-plugin-guide.md

適用場景與注意事項

適合誰用:

  • 日常在 DSH Web 界面寫代碼、跑命令、看 Git 改動的開發者;
  • 希望側邊欄一站式完成「看文件 → 改代碼 → 跑終端 → 提交 Git」工作流的用戶;
  • 需要爲 DSH 生態開發自定義側邊欄頁或文件預覽器的插件作者。

注意事項:

  • 插件以 dsh 進程權限訪問文件系統、啓動終端、執行 Git 命令,安裝前務必審閱源碼。
  • Git 面板不支持 push / pull / fetch;Markdown 預覽不反映未保存草稿;終端 Tab 跨分欄拖動會重掛載(shell 重開)。
  • 內嵌瀏覽器受沙箱與 X-Frame-Options 限制,部分站點無法嵌入,需走系統瀏覽器打開。
  • 若與 dsh-web-ui 家族的右側面板(aionui-panel)同時啓用,需在設置中選擇其一,避免雙掛載。
  • Windows 下終端依賴 node-pty 預編譯二進制,若加載失敗,按終端橫幅提示在 profile 目錄執行 pnpm approve-builds --all && pnpm rebuild node-pty 後重啓 DSH。

結尾

如果你已經在用 DeepSeek Harness,卻總覺得「對話區旁邊缺一塊開發面板」,DSH-better-sidebar 值得嘗試:它把文件、終端、Git、子代理等高頻能力收進可定製的側邊欄,又把擴展接口開放給社區,生態插件數量仍在快速增長。

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

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

小夜