前言¶
DSH Web 本体开箱可用,但移动端界面、登录、文件侧栏、搜索 provider 切换这些常用能力,实际分散在多个社区插件里。逐个找插件名、核对版本、处理彼此冲突的启动层改动,本身就要花不少时间。
oh-my-dsh 是 KeqingMoe 维护的一个组合包,把 7 个 Web 侧插件打成一个 npm 包,一条命令装完,面向 DeepSeek Harness 0.2.1-rc.3。下面介绍它的组成、安装方式和需要注意的重启限制。
这是什么¶
oh-my-dsh 是一个 DSH Web 插件 bundle,包名 @keqingmoe/oh-my-dsh,当前版本 0.2.0,MIT 许可,仓库在 https://github.com/KeqingMoe/oh-my-dsh 。GitHub 上目前 1 star、1 fork。
它不是自己重新实现上述能力,而是把社区里已有的插件收敛成一个固定版本组合,并附带一个 cordis.patch.yml,在加载时对宿主做少量补丁。对使用者来说,好处是版本组合经过维护者挑选,不用自己查每个插件的兼容版本。
package.json 的 description 写的是「A curated Web bundle for DeepSeek Harness 0.2.1-rc.3」,也就是这个包是针对特定版本号整理的组合。
核心功能¶
README 的「包含」一节列出了组合内容,每个功能对应一个具体插件:
| 功能 | 插件 | 锁定版本 |
|---|---|---|
| 手机界面 | dsh-mobile-upgrade |
0.8.11 |
| Web 登录 | dsh-web-startup-auth |
0.1.13 |
| 手机 Enter 换行 | @jiesou/dsh-webui-fix-mobile-enter-newline |
0.2.0 |
| 文件、Git 与终端侧栏 | dsh-better-sidebar |
0.28.1 |
| Codex Web | dsh-codex |
0.3.2 |
| 搜索 provider 切换 | dsh-search-switch |
0.1.0 |
| MCP 管理界面 | dsh-mcp |
1.14.1 |
另外依赖里还有 @deepseek-ai/dsh-session-format-catalog,版本与宿主一致,是 0.2.1-rc.3。
其中 dsh-web-startup-auth 替换了 DSH 内置的 web-startup 行,这一点会直接影响下面的重启要求。
安装与启用¶
安装命令来自 README,两种方式等价:
# npm
dsh plugin --profile web add @keqingmoe/oh-my-dsh
# 或直接从 GitHub 安装
dsh plugin --profile web add github:KeqingMoe/oh-my-dsh
安装命令统一走 --profile web,说明这个 bundle 只作用于 Web 端。
启用方式:安装后重启 dsh web。如果机器上已经有旧版 oh-my-dsh 或同名插件,先移除再安装。README 没有列出任何需要手工填写的配置项或配置文件,功能在重启后即生效。
注意:安装或卸载后必须重启¶
这是 README 专门列出的「已知限制」,不是包自身的问题。
DSH 0.2.1-rc.3 的插件热重载只覆盖「可替换」的插件;已加载的插件模块会留在 ESM 缓存里,fiber 仍持有注册,进程内没有受支持的卸载或重新导入方式。本包用 dsh-web-startup-auth 替换了内置的 web-startup 行,所以无论安装还是卸载,都会动到启动层:
dsh plugin --profile web add @keqingmoe/oh-my-dsh
# 或
dsh plugin --profile web remove @keqingmoe/oh-my-dsh
执行完之后必须重启 dsh web,否则启动层的生命周期会停在不一致状态,只能靠重启恢复。
README 给的上游依据:
- 官方变更日志 v0.2.1-rc.1:「启用热重载时,更新或重新安装的可替换插件直接生效,无法热重载时提示重启。」 https://www.dsh.so/zh/changelog/
- Discussion #1231 Host capability: graceful self-restart for plugin managers:已加载的插件代码无法安全重新导入,更新流程最终都停在「请手动重启」。 https://github.com/deepseek-ai/deepseek-harness/discussions/1231
- Discussion #2717(中文):建议官方提供「重启扩展服务」与完整插件更新生命周期。 https://github.com/deepseek-ai/deepseek-harness/discussions/2717
环境与许可¶
engines 要求 ^22.19.0 || >=24.0.0。仓库内 files 只包含 cordis.patch.yml、README.md、LICENSE、THIRD_PARTY_NOTICES.md,说明补丁和许可说明都随包发布。
许可方面,dsh-mobile-upgrade 的许可见仓库内 THIRD_PARTY_NOTICES.md,本项目自身采用 MIT 许可。
适用场景¶
适合两类人:一是想一次装齐 Web 端常用插件、懒得逐个查版本的人;二是给团队统一环境、希望 Web 侧能力一致的维护者。包内版本是锁定的,如果你需要某个插件的更新版本,只能等维护者升级,不适合自己改依赖版本。
两点需要留意:
- 插件以当前
dsh web进程权限运行,能访问该进程可访问的文件、Git 仓库与环境变量。安装前建议先读一遍源码,确认补丁内容和许可证后再装。 - 仓库 star 数为 1,属于早期项目。功能本身来自成熟的社区插件,但组合层和补丁只有这一个维护者在维护。
社区插件目录页在 https://www.skillhub.cn/plugins/KeqingMoe/oh-my-dsh ,目录是独立站点,与 DeepSeek / 幻方没有官方从属关系,不要当成官方应用商店。
结尾¶
oh-my-dsh 的价值在于把 7 个 Web 侧插件收敛成一个固定版本组合,用一条命令装完,省去逐个查找和版本匹配的成本。代价是必须接受「装完或卸载都要重启 dsh web」这个上游限制,以及补丁内容完全由维护者决定。
目录页:https://www.skillhub.cn/plugins/KeqingMoe/oh-my-dsh
仓库:https://github.com/KeqingMoe/oh-my-dsh