前言¶
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 用户提供了一套标准化的工具集。它将分散的功能整合,降低了配置难度,同时保持了各插件的独立开发和维护能力。