DeepSeek Harness 的 web GUI 提供了插件擴展能力,但針對特定界面的微調或調試,往往需要編寫專門的插件。dsh-snippets 插件解決了管理這些 CSS 和 JavaScript 代碼片段的需求,允許在不修改 harness 源碼的情況下,對界面進行快速、可複用的調整。
核心功能¶
該插件爲 web GUI 提供了一個集中的代碼片段管理面板,具備以下能力:
- 片段管理:通過 CSS 和 JS 兩個選項卡管理代碼,支持搜索(標題或代碼)、添加、編輯、複製、刪除以及拖拽排序。
- 代碼編輯:集成 CodeMirror 6 編輯器,支持行號、語法高亮、括號匹配、代碼摺疊以及搜索/替換功能。編輯 CSS 時支持實時預覽。
- 文件監聽:支持監聽本地文件夾中的
.css和.js文件,將其自動同步到插件庫中。 - 庫導入導出:支持將整個片段庫導出/導入爲 JSON 文件,並在導入前自動創建備份。
- GitHub Gist 同步:支持通過 GitHub Gist API 同步片段,提供合併更新、鏡像覆蓋或僅添加三種模式。
- 即時應用:界面中提供“重載界面”按鈕,用於立即應用 CSS 更改。
安裝與啓用¶
安裝前請確保 DeepSeek Harness 版本爲 0.1.7-rc.1 或更高(0.1.7 重寫了設置行,舊版本不支持)。
dsh plugin --profile web add github:zhang24xiao/dsh-snippets
安裝完成後,重啓 web GUI。對於本地開發,也可以使用鏈接安裝:
git clone git@github.com:zhang24xiao/dsh-snippets.git
dsh plugin --profile web add link:$PWD/dsh-snippets
使用方法¶
安裝並重啓後,側邊欄底部的 </> 圖標(位於“設置”行上方)會打開管理面板。在官方的“插件”管理頁面中,該插件也會顯示一個摺疊的設置卡片。
編輯片段後,點擊界面上的“重載界面”按鈕以應用 CSS 更改。若進行本地開發,可在插件目錄下運行:
pnpm install
pnpm run watch
注意事項¶
- JS 運行機制:JS 代碼片段在頁面加載後執行,不運行在沙箱中,行爲與在瀏覽器控制台粘貼代碼一致。這屬於“信任即擁有”的機制,請僅啓用可信代碼。
- 安全限制:插件提供的 API 端點僅接受迴環請求(loopback),無法通過網絡訪問。
- Token 存儲:GitHub Gist 的訪問令牌存儲在本地文件
$DSH_HOME/dsh-snippets/gist-token.json中,權限爲 0600,不會暴露給瀏覽器或發送到設置文檔中。 - 卸載行爲:卸載插件會移除所有注入的
<style>元素,但已執行的 JS 代碼無法被撤銷。