前言¶
DeepSeek Harness(DSH)的架構強調模塊化和可擴展性。當需要在開發環境中集成多個獨立插件時,開發者通常面臨配置繁瑣、依賴衝突以及維護成本高的問題。dsh-plugins 倉庫提供了一個主入口,將一系列獨立維護的插件聚合管理,並提供了統一的安裝和配置機制。
倉庫定位¶
dsh-plugins 是 DeepSeek Harness 插件的主倉庫,由用戶 leonardoxr 維護。它協調一個包含多種功能的插件集合,旨在解決開發者在使用 DSH 時遇到的工具鏈割裂問題。
核心功能¶
該倉庫包含以下核心能力:
- 聊天標題與配置:提供語義化、可配置的聊天標題(通過
dsh-auto-chat-titles)。 - 側邊欄與擴展:提供側邊欄工作臺和擴展 API(通過
dsh-better-sidebar)。 - 使用統計:提供 Claude/Codex 使用界面以及對話統計行(通過
dsh-claude-usage,dsh-codex-usage,dsh-status-bar-config)。 - 編碼工具:提供 LSP、ast-grep 和版本化編輯工具(通過
dsh-coding-tools)。 - 更新檢測:提供 Claude Code / Codex CLI 的更新檢測和一鍵更新功能(通過
dsh-harness-updater)。 - 交互與預覽:支持內聯圖片預覽、剪貼板複製、配置文件插件管理(通過
dsh-image-preview,dsh-plugin-manager)。 - 工作區集成:提供只讀工作區/會話 API、通知功能以及工作區 Git 集成(通過
dsh-companion,dsh-workspace-git)。 - 移動端支持:提供 DSH web 服務器的原生桌面和移動外殼(通過
dsh-native)。 - 代理委派:支持複雜路由的子代理委派(通過
dsh-routed-subagent)。
安裝與啓用¶
倉庫提供了 dsh-all-in-one 聚合包,可以通過一條命令安裝所有插件。
dsh plugin --profile <name> add dsh-all-in-one
也可以使用 GitHub Release 的 tarball 直接掛載特定版本:
dsh plugin --profile <name> add https://github.com/leonardoxr/dsh-plugins/releases/download/v<version>/dsh-all-in-one-<version>.tgz
典型用法¶
1. 側邊欄擴展開發¶
如果使用 dsh-better-sidebar 插件,插件宿主代碼需要注入服務並註冊視圖。示例代碼如下:
inject = ['betterSidebar'];
// 註冊邏輯建議包裹在 ctx.effect() 中以確保 HMR 安全
ctx.effect(() => {
ctx.betterSidebar.registerTab({
id: 'my-plugin-tab',
title: 'My Tab',
view: MyViewComponent
});
return () => {
ctx.betterSidebar.unregisterTab('my-plugin-tab');
};
});
2. 插件管理¶
使用 dsh-plugin-manager 可以通過配置文件對已掛載的插件進行管理。
3. Git 集成¶
dsh-workspace-git 插件提供工作區級別的 Git 操作支持。
注意事項¶
- 安裝衝突:插件通過
cordis.patch.yml機制掛載。切勿同時掛載獨立捆綁包和聚合套件,這會導致啓動失敗(報錯 “duplicate loader entry id”)。 - 退出選擇:每個插件的退出選擇在聚合中會被保留。
- 歷史隔離:此倉庫協調插件集合,但不合並它們的歷史。插件目錄是獨立的 Git 倉庫,可以使用
git -C <plugin>進行操作。 - 開發規範:代碼更改需遵循每個插件的貢獻規則;僅文檔的集合更改可以在此進行。
- 運行權限:插件以當前 DSH 進程權限運行,安裝前應檢查源碼與許可證。
總結¶
dsh-plugins 倉庫通過子模塊和聚合包的形式,爲 DeepSeek Harness 用戶提供了一套標準化的工具集。它將分散的功能整合,降低了配置難度,同時保持了各插件的獨立開發和維護能力。