DeepSeek Harness Hub
← 返回列表

插件合集仓库XJungit/omdp

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
⚠ 装前注意

集中收纳多个可独立安装的插件包,按需取用

基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/15 · 已提供中文文档

只有我的 DSH 插件——DeepSeek Harness 插件包的 monorepo

综合分
30.7
GitHub 分
30.7
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add XJungit/omdp
未发布到 npm registry,仅可从源码安装,改用 GitHub 源安装
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包@omdp/dsh-connector(未发布到 npm,仅可源码安装)
Node 引擎未声明 engines.node
dsh CLI 依赖未声明 dsh 版本约束
入口文件main/exports/bin 已声明

未发布到 npm registry,仅可从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/19 10:27:14

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

omdp — 只有我的 DSH 插件

🌐 语言 / Language: 中文 · English

English

一个单独的 GitHub 仓库,以 monorepo 的形式收集我所有的 DeepSeek Harness (DSH) 插件。每个插件都位于自己的子目录中,是一个可独立安装的 DSH bundle,并在每个 v tag 上发布到 npm。

布局

omdp/
├── README.md            # 本文件
├── package.json         # 根 manifest — 保持裸 git 安装可用(见下文)
├── dsh-connector/       # 统一的 MCP + Skills 管理器(Web UI 设置标签页)
│   ├── index.js         # 宿主端
│   ├── client.js        # 客户端(Web UI)
│   ├── cordis.patch.yml # bundle 激活行
│   ├── package.json
│   └── README.md
├── dsh-key-fallback/    # 带自动轮换的多密钥 API key 池
│   ├── lib/index.js     # 宿主端(ESM)
│   ├── lib/client.js    # 客户端(Web UI 设置标签页)
│   ├── cordis.patch.yml # bundle 激活行
│   ├── package.json
│   └── README.md
├── dsh-vision-bridge/   # 视觉桥接:让纯文本模型通过已配置的多模态端点“看见”
│   ├── index.js         # 宿主端
│   ├── client.js        # 客户端(粘贴/拖放 → 临时路径)
│   ├── cordis.patch.yml # bundle 激活行
│   ├── package.json
│   └── README.md
├── dsh-archived-sessions/ # 归档会话管理器(@muwinds 的 fork,DSH 0.1.5-rc.1 / 0.1.6-alpha.1)
│   ├── lib/index.js     # 宿主端(ESM)
│   ├── lib/client.js    # 客户端(Web UI 设置标签页)
│   ├── cordis.patch.yml # bundle 激活行
│   ├── package.json
│   └── README.md
├── archive/             # 为历史参考保留的已归档插件
│   ├── dsh-gitbash-win/
│   ├── resume-stream/
│   ├── key-fallback-/                  # dsh-key-fallback 版本快照与设计草稿
│   └── README.md
├── notes/               # 开发经验与笔记(三层:notes///)
├── docs/                # 研究笔记、兼容性矩阵、发布指南
└── /    # 每个都有自己的子目录 + package.json

插件

@omdp/dsh-connector — MCP + Skills 管理器(v0.3.0)

一个设置标签页(Connector),可从 DSH Web UI 管理三件事:

- MCP 服务器 — 编辑 cordis.patch.yml 中的 MCP 块(stdio / streamable-http),并带有完整校验,因此错误配置永远不会进入下一次启动。旧式 SSE 服务器(例如 Zhihu)保留为 mcp-remote --transport sse-only stdio 桥接;该插件只管理该配置文本。
- 用户技能 — 读取 / 写入 / 删除 ~/.dsh/skills//SKILL.md 下的技能(保留 frontmatter)。
- 市场浏览器(v0.2.0+) — 通过匿名 OpenAPI 以只读方式浏览 ModelScope Skills hub 和 MCP plaza;一键复制安装命令 / mcpServers 配置片段,通过 source/sourceUpdated frontmatter 实现技能“检查更新”。市场数据仅存在于进程内存中(30 分钟 TTL),绝不写入磁盘。
- 工具过滤器(v0.3.0+) — 针对 MCP 工具的按服务器允许列表(settings.yaml connector.toolFilters),提示隐藏 + 执行防护;未设置 = 允许全部。

"dependencies": { "@omdp/dsh-connector": "^0.3.0" }

@omdp/dsh-key-fallback — 带轮换的多密钥 API 密钥池(v3.1.7)

位于 LLM 适配器与凭据存储之间。在每次请求之前,插件会从按提供商划分的密钥池中选取一个密钥,并将其预写入提供商的凭据引用中;在配置的触发错误发生时,它会将失败的密钥标记为冷却中并推进到下一个密钥——重新发送完全交由 DSH 自身的 dsh-llm-retry 处理。附带一个始终可见的设置页面(Settings → API Key 回退),采用重新设计的 UI:

- 可配置的轮换触发器(rotateOn)——可点击的标签,涵盖完整的 DSH LlmError 标准代码集(QUOTA/AUTH/RATE_LIMIT/TIMEOUT/TRANSPORT/SERVER/EMPTY_RESPONSE/INVALID_CREDENTIAL)以及自定义代码(与 failure.code 精确匹配)。
- 显示实际使用的密钥(派生自最后写入环境变量的值),而非截断的哈希。
- 短引用(key_fallback__key1,……),并对旧的长引用进行一次性幂等迁移。
- 通过眼睛切换按钮进行明文显示(GET /keys/plain,仅限密钥池拥有的密钥 / 环境变量密钥)以及可编辑的环境变量密钥(基于文件的密钥;当由启动环境提供时为只读)。
- 每个密钥的 nextRef、密钥池锁定(“设为当前”)、冷却重置和删除。

"dependencies": { "@omdp/dsh-key-fallback": "^3.1.7" }

@omdp/dsh-vision-bridge — 为纯文本模型提供视觉能力(v0.1.12)

一个零依赖插件,为纯文本模型赋予视觉能力:它会自动检测所路由的模型是否支持图像(llm.resolveModelInfo().inputModalities),对于纯文本模型,会将粘贴 / 附加的图像转发到可配置的 OpenAI 兼容多模态端点(默认 Agnes agnes-2.5-flash),并将返回的文本作为证据反馈。附带一个 vision_bridge_read_image 工具、一个粘贴/拖放 → 临时路径的浏览器处理器、一个包装后的 (vision bridge) 提供商条目,以及一个 agent/pre-step 自动读取钩子。

"dependencies": { "@omdp/dsh-vision-bridge": "^0.1.12" }

@omdp/dsh-archived-sessions — 已归档会话管理器(v0.3.4)
@muwinds/dsh-archived-sessions 0.2.0 的复刻版本,适配 DSH 0.1.5-rc.1,并且(自 0.3.4 起)适配 DSH 0.1.6-alpha.1 —— 上游已无人维护,且在 0.1.5+ 上已损坏(sessionPersistence.list() 返回快照,locate() 已被移除)。新增 设置 → 归档会话管理,与 DSH 0.1.6 引入的原生归档会话页面共存:

- 列出归档会话,包含标题 / ID / 工作区 / 磁盘占用 / 运行状态;
- 释放(释放):将会话移出归档集合(不删除任何数据);
- 删除(删除):删除会话目录 + 清理归档 id(两步确认);
- 树形删除:删除主会话时也会删除其 parentSession 子树(修复上游 issue #2 —— 孤儿子代理);
- 孤儿清理:扫描并清理父会话已不存在的残留子代理目录;
- 删除安全性:拒绝删除任何目录名不是会话目录(session- 或裸 UUID)的路径。

"dependencies": { "@omdp/dsh-archived-sessions": "^0.3.4" }

从 npm 安装(推荐)

所有四个插件都会在每次 v 标签时由 GitHub Actions 自动发布到 npm。这是首选的安装方式 —— 它避免了 GitHub 安装所带来的 git-#path: 规范化、交叉解析以及 allowBuilds 摩擦(参见 docs/npm-publish.md 中的历史记录)。

// ~/.dsh/profiles//package.json — 你可以使用其中一个,也可以混搭
"dependencies": {
"@omdp/dsh-connector": "^0.3.0",
"@omdp/dsh-vision-bridge": "^0.1.12",
"@omdp/dsh-key-fallback": "^3.1.7",
"@omdp/dsh-archived-sessions": "^0.3.4"
}

cd ~/.dsh/profiles/
pnpm install

更新就是标准的 pnpm update:

cd ~/.dsh/profiles/
pnpm update @omdp/dsh-connector @omdp/dsh-vision-bridge @omdp/dsh-key-fallback @omdp/dsh-archived-sessions

从 GitHub 远程安装(替代方式)

每个活跃插件都是位于其自身子目录中的独立 npm 包,因此也可以直接从 GitHub 安装,而无需本地检出:

dsh plugin --profile web add github:XJungit/omdp#path:dsh-connector
dsh plugin --profile web add github:XJungit/omdp#path:dsh-vision-bridge
dsh plugin --profile web add github:XJungit/omdp#path:dsh-key-fallback
dsh plugin --profile web add github:XJungit/omdp#path:dsh-archived-sessions

命令可用性 —— 上面的 dsh plugin add 命令假定 dsh 已在你的 PATH 中。如果你按照官方文档通过 npx 运行 DSH(没有全局 dsh 命令),这些行会失败并报 command not found: dsh —— 请改为在每一行前面加上 npx @deepseek-ai/dsh(无需 dsh 在 PATH 中)。

#path: 选择器告诉 pnpm 要安装哪个工作区子目录(它会解析到该子包的 package.json,而不是仓库根目录)。
pnpm ≥10 构建脚本门禁。 git 安装获取的是源码,而 pnpm 在显式允许之前会拒绝运行 git 依赖的 prepare/构建脚本——在你于该配置文件的 pnpm-workspace.yaml 中将其加入白名单之前,第一次 add 会失败:

allowBuilds:
'@omdp/dsh-connector': true
'@omdp/dsh-vision-bridge': true
'@omdp/dsh-key-fallback': true
'@omdp/dsh-archived-sessions': true

然后重新运行 add。(这些插件是纯 JavaScript,没有构建步骤,因此白名单是唯一的障碍——不需要 prepare 脚本。有关完整的“构建脚本陷阱”,请参阅官方 publish.md。)将该允许视为在安装时运行该包代码的许可;对于不受信任的来源,请固定一个提交(github:XJungit/omdp#&path:)。

其他 DSH 插件集合也使用相同的 monorepo 布局,例如 zhu1090093659/dsh-web-ui。

发布新版本(GitHub Actions)

1. 提升子目录 package.json 中的 version(仅限你改动过的那个/那些)。
2. 提交,然后打标签并推送:
git tag v3.1.7
git push origin master && git push origin v3.1.7

3. .github/workflows/publish.yml 将改动过的包以 provenance 发布到 npm(重新发布已发布的版本是无操作——会打印跳过消息)。
4. 更新你的配置文件:pnpm update @omdp/。

有关完整设置(npm token、GitHub Secret、故障排除),请参阅 docs/npm-publish.md;有关抗崩溃矩阵,请参阅 docs/plugin-compatibility.md。

历史记录:GitHub 和本地链接安装

GitHub 安装(dsh plugin add github:XJungit/omdp#path:)可以工作,但会遇到网络/TLS 摩擦(例如 UNABLE_TO_VERIFY_LEAF_SIGNATURE)以及 pnpm 在 update 时对 git-#path: 的规范化(它会丢弃 #path: 规范,并可能将两个包交叉解析到仓库根目录)。一次性修复脚本(~/.dsh/profiles/web/update-omdp.ps1)处理了这些问题,但 npm 安装使这一切都不再必要。

本地 link: 安装("@omdp/": "link:/omdp/")仍然有效:pnpm install 会创建一个联接,使正在运行的插件就是仓库源码,而更新 = 编辑/拉取 + 重启。它们在活跃开发期间仍然是一个不错的选择。

约定

- 每个插件子目录都是一个独立的 npm 包,带有 dsh.bundle(以及可选的 dsh.client)清单。
- 包名作用域在 @omdp/ 下,以避免与 npm 上的上游 dsh- 包冲突。
- 此仓库中的插件是纯 JavaScript(无构建步骤),因此本地链接和 GitHub 安装都无需编译阶段即可工作。
- 开发期间优先本地安装:在 profile 的 dependencies 中添加 "@omdp/": "link:/omdp/",然后运行 pnpm install —— 插件直接从仓库加载,重启后即可更新。
- 新插件应以现有的三个插件(connector / vision-bridge / key-fallback)为模板,而不是以骨架为模板 —— 真实的插件才是活的模板。
- 文档纪律 —— 任何插件更新(源码 / 配置 / 版本)都必须保持根 README、插件自身的 README 以及 docs/ 文件同步;开发过程中积累的经验写入 notes///(见 AGENTS.md 规范 2)。

文档索引

| 文档 | 涵盖内容 |
|---|---|
| docs/npm-publish.md | npm 发布流水线、为何选择 npm 而非 GitHub 安装、发布流程 |
| docs/plugin-compatibility.md | 各插件针对 DSH 更新的抗崩溃矩阵 |
| docs/AI-DSH-plugin-quality.md | 社区研究:AI 编写的 DSH 插件为何会失效,以及防御性实践 |
| docs/DSH-plugin-quality-zh-discussion.md | 同一研究 + omdp 实践的中文文章 |
| docs/dsh-drag-and-drop-troubleshooting.md | dsh-drag-and-drop 插件的故障排查记录(Windows/中文) |
| notes/README.md | 开发经验与笔记索引(notes///)—— 见 AGENTS.md 规范 2 |

中文版

一个把作者全部 DeepSeek Harness(DSH)插件收进单一 GitHub 仓库的 monorepo。每个插件各自独立子目录,是可直接安装的 DSH bundle,并在每次打 v tag 时自动发布到 npm。

目录结构

omdp/
├── README.md            # 本文件
├── package.json         # 根清单——保证 bare-git 安装可用(见下文)
├── dsh-connector/       # 统一 MCP + Skills 管理器(Web UI 设置页)
│   ├── index.js         # host 半区
│   ├── client.js        # client 半区(Web UI)
│   ├── cordis.patch.yml # bundle 激活行
│   ├── package.json
│   └── README.md
├── dsh-key-fallback/    # 多 key API 池 + 自动轮换
│   ├── lib/index.js     # host 半区(ESM)
│   ├── lib/client.js    # client 半区(Web UI 设置页)
│   ├── cordis.patch.yml # bundle 激活行
│   ├── package.json
│   └── README.md
├── dsh-vision-bridge/   # 视觉桥:让纯文本模型通过配置的多模态端点「看见」
│   ├── index.js         # host 半区
│   ├── client.js        # client 半区(粘贴/拖拽 → 临时路径)
│   ├── cordis.patch.yml # bundle 激活行
│   ├── package.json
│   └── README.md
├── dsh-archived-sessions/ # 归档会话管理(fork @muwinds,适配 DSH 0.1.5-rc.1 / 0.1.6-alpha.1)
│   ├── lib/index.js     # host 半区(ESM)
│   ├── lib/client.js    # client 半区(Web UI 设置页)
│   ├── cordis.patch.yml # bundle 激活行
│   ├── package.json
│   └── README.md
├── archive/             # 已归档插件,留作历史参考
│   ├── dsh-gitbash-win/
│   ├── resume-stream/
│   ├── key-fallback-/                  # dsh-key-fallback 各版本快照与设计草案
│   └── README.md
├── notes/               # 开发教训与笔记(三层:notes///)
├── docs/                # 研究笔记、兼容性矩阵、发布指南
└── /          # 每个插件一个子目录 + package.json

插件

@omdp/dsh-connector — MCP + Skills 管理器(v0.3.0)

一个设置页(Connector),从 DSH Web UI 管理三件事:

- MCP 服务器 —— 编辑 cordis.patch.yml 中的 MCP 块(stdio / streamable-http),带完整校验,坏配置绝不可能带到下次启动。旧版 SSE 服务器(如知乎)保留为 mcp-remote --transport sse-only 的 stdio 桥;插件只管这段配置文本。
- 用户 Skills —— 读写/删除 ~/.dsh/skills//SKILL.md 下的技能(保留 frontmatter)。
- 市场浏览器(v0.2.0+) —— 匿名 OpenAPI 只读浏览 ModelScope Skills 集市 与 MCP 广场;一键复制安装命令 / mcpServers 配置片段;通过 source/sourceUpdated frontmatter 检查技能更新。市场数据只存进程内存(30 分钟 TTL),绝不落盘。
- 工具过滤(v0.3.0+) —— 每 server 的 MCP 工具 allow 名单(settings.yaml 的 connector.toolFilters),提示词隐藏 + 执行期拦截;不配 = 全放行。

"dependencies": { "@omdp/dsh-connector": "^0.3.0" }

@omdp/dsh-key-fallback — 多 key API 池 + 轮换(v3.1.7)

位于 LLM 适配器与凭据存储之间。每次请求前,插件从对应 provider 的 key 池里选一把,预写入 provider 的凭据引用;遇配置的触发错误时,把失败 key 标记为冷却并切到下一把——重发完全交给 DSH 自带的 dsh-llm-retry。带一个常驻可见的设置页(设置 → API Key 回退)与全新 UI:

- 可配置的轮换触发码(rotateOn)——点选 chips 覆盖 DSH LlmError 标准码全集(QUOTA/AUTH/RATE_LIMIT/TIMEOUT/TRANSPORT/SERVER/EMPTY_RESPONSE/INVALID_CREDENTIAL),也支持自定义码(与 failure.code 精确匹配)。
- 显示当前实际使用的 key(从最后一次写入 env 的值推导),不是截断的哈希。
- 短 ref(key_fallback__key1、…),旧长 ref 一次性幂等迁移。
- 眼睛开关明文揭示(GET /keys/plain,仅限池内 key / env key)与可编辑 env key(文件托管的可编辑;由启动环境注入的只读)。
- 每把 key 的 nextRef、池锁定("设为当前")、冷却重置与删除。

"dependencies": { "@omdp/dsh-key-fallback": "^3.1.7" }

@omdp/dsh-vision-bridge — 给纯文本模型的视觉(v0.1.12)

零依赖插件,给纯文本模型装上视觉:自动探测被路由模型是否支持图片(llm.resolveModelInfo().inputModalities);对纯文本模型,把粘贴/附加的图片转发到可配置的 OpenAI 兼容多模态端点(默认 Agnes agnes-2.5-flash),并把返回文本喂回作为证据。附带 vision_bridge_read_image 工具、粘贴/拖拽 → 临时路径的浏览器处理器、一个包装后的 (vision bridge) provider 条目,以及 agent/pre-step 自动读取钩子。

"dependencies": { "@omdp/dsh-vision-bridge": "^0.1.12" }

@omdp/dsh-archived-sessions — 归档会话管理(v0.3.4)

fork 自 @muwinds/dsh-archived-sessions 0.2.0,适配 DSH 0.1.5-rc.1,0.3.4 起适配 DSH 0.1.6-alpha.1(上游已不维护,且在 0.1.5+ 下损坏:sessionPersistence.list() 返回快照、locate() 被移除)。新增 设置 → 归档会话管理,与 DSH 0.1.6 起内置的原生「已归档会话」页共存:

- 列表显示归档会话的标题 / ID / 工作区 / 磁盘占用 / 运行状态;
- 释放:把会话移出归档集合(不删数据);
- 删除:删会话目录 + 移除归档标记(两步确认);
- 按树删除:删主会话时连同其 parentSession 子树一起删(修复上游 issue #2——孤儿子代理);
- 孤儿清理:扫描并清理「父会话已删除、自己还在盘上」的残留子会话目录;
- 删除安全:目录名不是会话目录(session- 或裸 UUID)一律拒绝删除。

"dependencies": { "@omdp/dsh-archived-sessions": "^0.3.4" }

从 npm 安装(推荐)

四个插件都会由 GitHub Actions 在每次打 v tag 时自动发布到 npm。这是首选安装路径——绕开 GitHub 安装带来的 git-#path: 规范化、交叉解析与 allowBuilds 摩擦(历史详见 docs/npm-publish.md)。

// ~/.dsh/profiles//package.json —— 可用其一或自由组合
"dependencies": {json
"@omdp/dsh-connector": "^0.3.0",
"@omdp/dsh-vision-bridge": "^0.1.12",
"@omdp/dsh-key-fallback": "^3.1.7",
"@omdp/dsh-archived-sessions": "^0.3.4"
}
sh
cd ~/.dsh/profiles/
pnpm install

升级就是标准的 pnpm update:
sh
cd ~/.dsh/profiles/
pnpm update @omdp/dsh-connector @omdp/dsh-vision-bridge @omdp/dsh-key-fallback @omdp/dsh-archived-sessions

从 GitHub 远程安装(备选)

每个活跃插件都是独立子目录里的独立 npm 包,因此也能不经过本地 checkout、直接从 GitHub 安装:
sh
dsh plugin --profile web add github:XJungit/omdp#path:dsh-connector
dsh plugin --profile web add github:XJungit/omdp#path:dsh-vision-bridge
dsh plugin --profile web add github:XJungit/omdp#path:dsh-key-fallback
dsh plugin --profile web add github:XJungit/omdp#path:dsh-archived-sessions

安装命令前提:上面的 dsh plugin add 假设 dsh 已在 PATH。若你是按官方文档用 npx 运行 dsh(没有全局 dsh 命令),这几行会报 command not found: dsh —— 每行前面加 npx @deepseek-ai/dsh 即可(不要求 dsh 在 PATH)。

#path: 选择器告诉 pnpm 安装哪个 workspace 子目录(解析到该子包的 package.json,而不是仓库根)。

pnpm ≥10 构建脚本门禁。 git 安装拉取的是源码,pnpm 默认拒绝运行 git 依赖的 prepare/构建脚本,直到显式放行——首次 add 会失败,需要先在 profile 的 pnpm-workspace.yaml 里白名单:
yaml
allowBuilds:
'@omdp/dsh-connector': true
'@omdp/dsh-vision-bridge': true
'@omdp/dsh-key-fallback': true
'@omdp/dsh-archived-sessions': true

然后重新执行 add。(这些插件是纯 JavaScript、无构建步骤,所以白名单是唯一障碍——不需要 prepare 脚本。官方 publish.md 有完整的“构建脚本坑”说明。)放行等于允许在安装时运行该包的代码;对不可信来源,请固定到具体 commit(github:XJungit/omdp#&path:)。

其他 DSH 插件集合也采用同样的 monorepo 布局,例如 zhu1090093659/dsh-web-ui。

发布新版本(GitHub Actions)

1. 在子目录的 package.json 里 bump version(只 bump 你动过的)。
2. 提交,然后打 tag 并推送:
sh
git tag v3.1.7
git push origin master && git push origin v3.1.7

3. .github/workflows/publish.yml 把动过的包发布到 npm(带 provenance;已发布的版本重复发布是 no-op,会打印 skip 信息)。
4. 更新你的 profile:pnpm update @omdp/。

完整配置(npm token、GitHub Secret、排障)见 docs/npm-publish.md;抗崩溃矩阵见 docs/plugin-compatibility.md。

历史:GitHub 与本地 link 安装

GitHub 安装(dsh plugin add github:XJungit/omdp#path:)能用,但会撞上网络/TLS 摩擦(如 UNABLE_TO_VERIFY_LEAF_SIGNATURE),以及 pnpm 在 update 时的 git-#path: 规范化问题(会丢 #path: 片段,甚至可能把两个包都交叉解析到仓库根)。当时用一次性修复脚本(~/.dsh/profiles/web/update-omdp.ps1)兜底,但 npm 安装让这一切都不再必要。

本地 link: 安装("@omdp/": "link:/omdp/")依然可用:pnpm install 会创建 junction,让运行中的插件就是仓库源码,更新 = 改代码/拉取 + 重启。开发活跃期仍是好选择。

约定

- 每个插件子目录都是独立 npm 包,带 dsh.bundle(可选 dsh.client)清单。
- 包名统一挂在 @omdp/ 作用域下,避免与上游 dsh- 包在 npm 上撞名。
- 仓库里的插件都是纯 JavaScript(无构建步骤),所以本地 link 与 GitHub 安装都不需要编译环节。
- 开发期优先本地安装:把 "@omdp/": "link:/omdp/" 加进 profile 的 dependencies,跑 pnpm install —— 插件直接从仓库加载,改完重启即生效。
- 新插件应以现有三个插件(connector / vision-bridge / key-fallback)为蓝本,而不是复制模板——真实插件就是活的模板。
- 文档纪律:插件有任何更新(源码/配置/版本)时,必须同步更新根 README、对应插件 README、docs/ 相关文档;开发中产生的教训/经验主动写入 notes///(详见 AGENTS.md 规范 2)。

文档索引

| 文档 | 内容 |
|---|---|
| docs/npm-publish.md | npm 发布管线、为什么选 npm 而非 GitHub 安装、发布流程 |
| docs/plugin-compatibility.md | 各插件对 DSH 更新的抗崩溃矩阵 |
| docs/AI-DSH-plugin-quality.md | 社区研究:为什么 AI 写的 DSH 插件会坏,以及防御性实践 |
| docs/DSH-plugin-quality-zh-discussion.md | 同一研究的中文版 + omdp 实践 |
| docs/dsh-drag-and-drop-troubleshooting.md | dsh-drag-and-drop 插件排障记录(Windows/中文) |
| notes/README.md | 开发教训与笔记索引(notes///)——见 AGENTS.md 规范 2 |

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(XJungit)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群