前言¶
DSH 生态的常见理念是「一切皆插件」。社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,不应把它理解成官方应用商店。
对智能体开发者来说,单个插件的安装和试用通常不难。难的是把多个 Registry Release、作者自托管插件、Agent Preset 组合成一个可复用、可复核的 DSH Profile。这个组合过程如果只靠本地手装,容易出现几个问题:
- 组合结果缺少一份可审查的清单。
- 作者来源没有固定到完整 Git commit。
- 每个组件的许可证事实不清楚。
- 发布者签名缺少明确验证入口。
- 安装、激活、确认和回滚混在一起,出问题时难以回到上一代 Profile。
下面介绍 omdsh-dev/omdsh-runtime。它围绕这些问题提供一套轻量工具链,用于可审计的 DSH 组合、签名、候选安装和回滚。
这是什么¶
omdsh-dev/omdsh-runtime 的官方描述是:
Lightweight OMDSH Runtime and Profile Pack toolkit for auditable DSH composition, signing, candidate installs, and rollback.
它可以理解为面向 DSH 的 Profile Pack 工具链。它复用官方 Harness Profile、Bundle、Cordis 和 package 操作,提供 headless execution layer,并加入确定性的 plan/apply、候选代、显式确认和上一代恢复路径,同时不引入另一个 Loader 或 daemon。
已核实的基本信息如下:
| 项目 | 内容 |
|---|---|
| 仓库名 | omdsh-dev/omdsh-runtime |
| 维护者 | omdsh-dev |
| 仓库地址 | https://github.com/omdsh-dev/omdsh-runtime |
| npm 包名 | @ohmydsh/runtime |
| npm 发布标签 | preview |
| 发布行为 | preview 发布不会隐式移动 latest |
| CLI 名称 | omdsh |
当前资料未给出 Star 数、项目许可证、官方安装命令、插件类别和目录页地址。这些内容不应作为确定事实使用。
核心能力¶
1. 固定 Profile Pack 的组合边界¶
Profile Pack 会记录:
- 精确的 Registry project 和 Release ID。
- 作者自托管来源,并固定到完整 Git commit。
- 对应 Registry snapshot。
- 观察到的
@deepseek-ai/dsh版本。 - 一个 Agent Preset。
这使得一个组合包不是“某几个插件名字的集合”,而是一份更接近可审计清单的对象。
2. 提供确定性 plan/apply 与候选代¶
它支持确定性的 plan/apply、候选代、显式确认,以及 previous-generation recovery。
也就是说,不是直接把本地环境改到目标状态,而是先形成一个候选安装状态,再经过显式激活和运行确认。
3. 输出 SPDX 许可证清单¶
omdsh pack licenses 会报告组件许可证表达式、来源、SPDX link,以及是否需要 manual review。
它是一份许可证事实清单,不是法律意见,也不是自动的许可证兼容性判定。
4. 支持 Ed25519 发布者签名¶
signed omdsh-profile-pack-envelope/v1 执行时,需要给出发布者 key,并验证 Ed25519 签名。
使用 --require-signature 时,会拒绝 legacy unsigned input。
5. 支持命名 pack 实例与回滚¶
它使用 named pack instances,并把 activation 和 runtime confirmation 分开。
回滚会重新选择 previous Profile generation。它不会声称能反向数据库、网络、文件系统或其他外部副作用。embedded preset rollback 仍不在 Profile generations 范围内。
6. 与现有 Pack/Skill 投影工具共存¶
它可以与 workspace-oriented Pack/Skill projection tools 共存,不引入另一个 Loader 或 daemon。
Profile Pack 负责的是 release boundary:精确的 DSH Runtime 和 Registry Releases、作者来源 commit、许可证事实、发布者签名,以及可恢复的 Profile generations。
安装与启用¶
当前资料未提供官方安装命令,因此本文不拼接 dsh plugin add github:owner/repo,也不直接给出一条未经核实的 npm install 命令。
可以从资料确认的包信息如下:
package: @ohmydsh/runtime
registry: https://registry.npmjs.org/
dist-tag: preview
cli: omdsh
这些信息用于定位包和 CLI,不是安装命令。
启用前务必注意:
- 插件会以当前 dsh 进程权限运行。
- 安装前应检查源码、来源、许可证和发布者签名。
- 当前资料未明确给出项目许可证,因此应先做人工审阅。
preview发布不会隐式移动latest,使用时应明确区分 preview 与正式渠道。
典型用法¶
下面使用资料中给出的示例命令。示例里的文件名、包名、Release、profile、key 和 commit 都是示例值,实际使用时应替换为真实值。
1. 初始化一个 pack¶
先创建一个本地 pack 文件:
omdsh pack init research.pack.json --id research --preset code
这一步生成 research.pack.json,其中 --id research 是 pack 标识,--preset code 是示例中的 Agent Preset。
2. 添加 Registry Release 与作者来源¶
先添加一个 Registry Release:
omdsh pack add research.pack.json --release sample@1.2.3
再添加一个作者自托管来源。这个来源会固定到完整 Git commit:
omdsh pack add research.pack.json --source-id my-plugin --package @me/dsh-my-plugin --version 0.1.0 --repository https://github.com/me/dsh-my-plugin --ref <40-character-commit> --license MIT
注意:author-owned source 始终属于 experimental-fixed-source。在创建 candidate 之前需要 --trust-source,并且在该插件通过 Registry admission 之前,不能作为 trusted community distribution 发布。
3. 检查许可证并 lock¶
先查看每个组件的许可证事实:
omdsh pack licenses research.pack.json
omdsh pack licenses 报告组件 license expression、source、SPDX link 和 manual-review status。它不是法律意见,也不是自动许可证兼容性判定。
确认后再 lock 出可分发文件:
omdsh pack lock research.pack.json --output research-0.1.0.dshpack
这一步会把当前 pack 组合固化为 research-0.1.0.dshpack。
4. 测试与预检¶
如果组合中包含 author-owned source,测试和预检时需要显式使用 --trust-source:
omdsh pack test research.pack.json --profile web --trust-source
lock 后先 inspect:
omdsh pack inspect research-0.1.0.dshpack
再执行 plan:
omdsh pack plan research-0.1.0.dshpack --profile web --trust-source
经过上面的步骤,可以检查当前组合是否满足格式、hash、digest、签名、Registry、profile 和 trust 选项要求,而不是直接写入 Profile。
5. 对 pack 签名¶
对 lock 后的 pack 做发布者签名:
omdsh pack sign research-0.1.0.dshpack --private-key publisher.pem --key-id example/releases-2026 --publisher example --source https://github.com/example/research --output research-0.1.0.signed.dshpack
这一步生成 research-0.1.0.signed.dshpack。签名后的 envelope 在执行时要求提供发布者 key,并且 Ed25519 签名必须验证通过。
6. apply、activate、confirm 与 rollback¶
应用签名后的 pack 到命名实例:
omdsh pack apply research-0.1.0.signed.dshpack --instance research --profile web --trusted-key publisher.pub --require-signature
--require-signature 会拒绝 legacy unsigned input。
apply 后仍然需要显式激活:
omdsh activate --profile web
然后进行 runtime confirmation:
omdsh confirm --profile web
如果之后需要回到上一代 Profile generation,可以执行:
omdsh pack rollback --instance research
需要明确的是,rollback 是重新选择 previous Profile generation,不会反向数据库、网络、文件系统或其他外部副作用。embedded preset rollback 不在 Profile generations 范围内。
适用场景与注意¶
适合使用它的场景包括:
- 需要把多个 DSH 插件组合成一个可复用 Profile 的团队。
- 需要固定 Registry Release、作者来源 commit 和 Runtime 版本的人员。
- 需要在分发前检查许可证事实的发布者或审阅者。
- 需要验证发布者签名后再执行 pack 的接收方。
- 需要把安装、激活、确认和回滚拆成明确步骤的流程。
使用前需要特别注意:
- 插件会以当前 dsh 进程权限运行。
- 安装前应检查源码、许可证、发布者签名和依赖插件。
omdsh pack licenses是许可证清单,不是法律意见。- author-owned source 在通过 Registry admission 前不能作为 trusted community distribution 发布。
- source manifest 不接受 Git branches、tags、local paths、install scripts、secrets 或 copied
node_modules。 - custom preset 只有在拒绝 symlinks、credential-like files or content、binary data 和 absolute user paths 后才以 UTF-8 text 形式 embedded。
- applying embedded preset content 需要
--trust-preset。 - 替换已有 custom preset 需要
--replace-preset。 - applying a pack 只会替换同一 named pack instance 已跟踪的、由 pinned Registry snapshot 加 fixed sources 管理的插件;其他未跟踪本地包会保留。
- rollback 不承诺反向外部副作用。
结尾¶
omdsh-dev/omdsh-runtime 的价值,是把 DSH 组合从“本地装几个插件”推进到一份可记录、可签名、可确认、可回滚的 Profile Pack 流程。
仓库地址:
https://github.com/omdsh-dev/omdsh-runtime
当前资料未提供目录页地址,因此本文不补全目录页链接。