dsh-plugins-store
DeepSeek Harness (DSH) plugin store - archived copies of the plugins installed in the local web profile, with manifest and profile snapshot
- Stars
- 0
- Language
- JavaScript
- Created
- Sep 10, 2026
- Updated
- Sep 10, 2026
Introduction
dsh-plugins-store
DeepSeek Harness(DSH)本机已安装插件的备份副本,一份一个目录,用于放进 GitHub 仓库归档。
这个目录只是「放一份」的存储副本,不参与 DSH 运行时加载。 DSH 只按
~/.dsh/profiles/web/package.json里的dependencies+dsh.profile.bundles装载插件, 不会扫描~/.dsh/plugins。所以在这里放副本不会改变任何现有用法。
- 采集时间:2026-09-10 21:22 (+08:00),2026-09-10 21:36 整理
- 来源 profile:
C:\Users\21877\.dsh\profiles\web - 来源
node_modules:C:\Users\21877\.dsh\profiles\web\node_modules
收录规则:一个 bundle 一个目录
DSH 实际装载的层栈就是 profile 里的 dsh.profile.bundles(去掉两个随 DSH 发行的 @deepseek-ai/* 内置 bundle)。
本仓库严格按这个列表收录,一项一个目录,不重复放传递依赖。
目录内容
| 目录 | 版本 | profile 里的 spec | 来源 |
|---|---|---|---|
@zebbkira/dsh-skills-mcp-manager/ | 0.2.0 | ^0.2.0 | 注册表,带 pnpm patch |
dsh-context/ | 0.48.0 | ^0.48.0 | 注册表 |
dsh-infinite-gen-2/ | 0.2.3 | file:../../plugins/dsh-infinite-gen-2 | 本地目录(就在本仓库内) |
dsh-kun-pet/ | 1.0.7 | ^1.0.7 | 注册表 |
dsh-model-meta-autofill/ | 0.3.0 | ^0.3.0 | 注册表,带 pnpm patch |
dsh-smart-search/ | 1.0.0 | file:..\..\plugins\dsh-smart-search | 本地目录(就在本仓库内) |
dsh-tavily-workspace/ | 0.2.0 | github:moguiyu/dsh-tavily | GitHub monorepo(内含 packages/*) |
dshmarket/ | 1.45.1 | ^1.45.1 | 注册表(市场本体,见下) |
共 8 个目录 = dsh.profile.bundles 里 10 项减去 2 个内置 bundle。
为什么你看到的「已安装」是 7 个,这里是 8 个
Web 界面「设置 → 插件」里的那 7 个,少了 dshmarket 本身。
dshmarket 的市场代码里写死了 const SELF_NAMES = new Set(['dshmarket', 'dsh-market'])(lib/routes.js、lib/presets.js),
市场不把自己列进已安装清单。但它确实是 profile 的一个 bundle:
dsh --profile web --dump-config | Select-String 'dshmarket' # 能看到它
所以:界面 7 个 = 真实 8 个 − 市场自己。本仓库按真实情况收录 8 个。
如果你就是不想收 dshmarket,git rm -r dshmarket 即可,不影响任何东西。
没有单独存放的东西
| 包 | 版本 | 原因 |
|---|---|---|
@moguiyu/dsh-tavily | 0.2.3 | 是 dsh-tavily-workspace 的传递依赖,不是独立 bundle;除换行符(CRLF vs LF)外与 dsh-tavily-workspace/packages/dsh-tavily/ 逐字节相同,后者还多带 test/scripts |
@moguiyu/dsh-tavily-backend | 0.2.2 | 同上,内容在 dsh-tavily-workspace/packages/dsh-tavily-backend/ |
@moguiyu/dsh-tool-tavily-search | 0.2.2 | 同上,内容在 dsh-tavily-workspace/packages/dsh-tool-tavily-search/ |
dsh-share | — | node_modules 里的 junction,指向开发仓库 D:\project_GIT\test\dsh-share,不是发布插件 |
已删除、不在本仓库:doubao-dsh-plugin@1.0.2、dsh-thoughtdag@0.4.12。
辅助文件
plugins-manifest.json—— 机器可读清单(包名 / 版本 / spec / 是否 patch / 收录与未收录原因)。scripts/release.ps1—— 只发 GitHub 的发布脚本。_profile-snapshot/package.json—— 采集时的 profile 清单,dsh.profile.bundles就是加载顺序。_profile-snapshot/cordis.patch.yml—— profile 补丁层(当前为空数组)。_profile-snapshot/pnpm-workspace.yaml—— 两个插件依赖的patchedDependencies声明。_profile-snapshot/patches/*.patch—— 上面两个插件对应的 pnpm patch。_profile-snapshot/pnpm-lock.yaml—— 采集时的锁文件,仅作参考。
从本仓库恢复某个插件
注册表来源(有网时):
dsh plugin --profile web add dsh-context@0.48.0
dsh plugin --profile web add dshmarket@1.45.1
dsh plugin --profile web add dsh-kun-pet@1.0.7
从本目录的副本安装(离线可用,走本地路径):
dsh plugin --profile web add C:\Users\21877\.dsh\plugins\dsh-context
dsh plugin --profile web add C:\Users\21877\.dsh\plugins\dshmarket
dsh plugin会把相对路径按你执行命令的目录锚定;上面的绝对路径不受影响。
带 patch 的两个插件,恢复前要先把 _profile-snapshot/pnpm-workspace.yaml 里的
patchedDependencies 两行合并回 ~/.dsh/profiles/web/pnpm-workspace.yaml,
并把 _profile-snapshot/patches/ 两个 .patch 文件放回 ~/.dsh/profiles/web/patches/,
否则装出来的是未打补丁的版本。
恢复后 DSH 需要重启才会生效。
更新这个仓库
cd C:\Users\21877\.dsh\plugins
git add -A
git commit -m "update plugins"
pwsh -File scripts\release.ps1 # 打日历版本 tag → 推分支 → 推 tag → 建 Release → 同步 topics
pwsh -File scripts\release.ps1 -Version 2026.10.01 -Force # 指定版本号、跳过确认
pwsh -File scripts\release.ps1 -Notes "本次改了什么" # 自定义 Release 说明
同一天要再发一次,用 -Version 2026.09.10-2 这样的修订号(已发布的 tag 不覆盖)。
scripts\release.ps1 是只发 GitHub 的脚本,不含任何 npm publish。
备注
dsh-infinite-gen-2与dsh-smart-search这两个目录就是 profile 里 file: 依赖的实体, 改动/删除它们会直接影响正在运行的配置,推送时请留意。- 本机
.npmrc与 git 全局配置里写死了http://127.0.0.1:7890代理;代理没开时pnpm、git push都会ECONNREFUSED,要么开代理,要么按进程覆盖:$env:GIT_CONFIG_COUNT='2'; $env:GIT_CONFIG_KEY_0='http.proxy'; $env:GIT_CONFIG_VALUE_0=''; $env:GIT_CONFIG_KEY_1='https.proxy'; $env:GIT_CONFIG_VALUE_1=''