DeepSeek Harness plugin

dsh-agent-plugin-market

DSH 插件市场:将 git 仓库作为 agent 内容插件市场(兼容 Codex / Claude 技能格式),克隆后原地加载插件技能到 DSH 技能系统,支持添加/更新市场、安装/更新插件、按技能启用禁用,并提供设置页配置 UI。

Jump to install

Source facts

Repository
Diluka/dsh-agent-plugin-market
Latest update
Aug 22, 2026
Category
Tools & Capabilities
GitHub stars
4
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/Diluka/dsh-agent-plugin-market
Plugin: dsh-agent-plugin-market
Author: Diluka

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer2 files
README.mdSource · read only

dsh-agent-plugin-market

DSH(DeepSeek Harness)插件市场:将 git 仓库作为 agent 内容插件市场,安装并原地加载其中的技能到 DSH 技能系统。

  • 兼容格式:Codex / Claude / Awesome Copilot 内容插件(.codex-plugin/plugin.json.claude-plugin/plugin.json.github/plugin/marketplace.jsonSKILL.md + YAML frontmatter)
  • 原地加载:市场仓库 git clone~/.dsh/agent-plugin-market/markets/<id>/,安装插件不复制文件,技能路径原地注册进 DSH(resourceBase 指向克隆目录,技能内 references/scripts/ 相对资源可用)
  • 技能开关:已安装插件的技能默认启用;市场根 skills/ 中的独立技能默认关闭。两者都可单独启用/禁用,关闭后不进入技能目录
  • Codex hooks(可选):发现插件 manifest 的 hooks 配置;用户逐插件显式确认后,以可选的 @deepseek-ai/dsh-hooks-codex bridge 注册受支持的 hook 点
  • 设置页 UI:设置菜单新增「技能与挂钩」区段,管理市场(添加 / 更新 / 移除)与插件(安装 / 卸载 / 技能开关 / hooks 授权)

安装

dsh plugin --profile web add github:Diluka/dsh-agent-plugin-market

安装完成后重启 DeepSeek Harness,设置 → 技能与挂钩 即可使用。DSH 运行时包通过 peer dependencies 由当前 DSH profile 提供;市场与技能功能不依赖 Codex hooks bridge,bridge 缺失时设置页会提示安装命令并禁用 hooks 开关。市场管理仅允许通过本机 loopback 地址访问,以保护本机 Git 操作和 hooks 执行。

启用 Codex hooks(可选)

只有需要执行已明确授权的 Codex hooks 时,才在同一 profile 中安装 bridge 与协议包,然后重启 DSH:

dsh plugin --profile web add @deepseek-ai/dsh-hooks-codex @deepseek-ai/dsh-hook-protocol

手动等效步骤:

# 1. 安装市场插件
dsh plugin --profile web add github:Diluka/dsh-agent-plugin-market

# 2. 确认组合行(插件包自带 cordis.patch.yml,通常已自动应用)
#    ~/.dsh/profiles/web/cordis.patch.yml 中应有:
#    - insert:
#        - id: dsh-agent-plugin-market
#          name: 'dsh-agent-plugin-market'

# 3. 重启 DeepSeek Harness

使用

1. 添加市场:输入任意 git 仓库地址(ssh / https 均可),可选指定分支 / 标签 / commit id(默认使用仓库默认分支);仓库需包含市场清单,或在根 skills/ 中提供可用独立技能。 (市场清单查找顺序:.agents/plugins/marketplace.json.claude-plugin/marketplace.json.cursor-plugin/marketplace.json.github/plugin/marketplace.json → 仓库根 marketplace.json) 2. 安装插件:市场清单中每个插件一行(source 为仓库内路径,或 {"source": "local", "path": "./"} 指向仓库根)。当 {"source": "url", "url": "..."} 指向当前市场仓库时,也会按仓库根插件处理;这兼容同时将自身作为市场与插件发布的仓库。点击「安装」即原地注册其技能 3. 自动更新DSH 每次启动时自动对全部市场执行 git pull --ff-only(失败不影响启动,仅记录日志);分支/默认分支市场随更新,tag/commit 固定引用不自动更新(「更新」按钮会提示无需更新) 4. 技能开关:已安装插件下列出全部技能,默认全开;关闭后技能不再出现在 DSH 技能目录 5. Codex hooks 授权:安装的 Codex 插件检测到 hooks 配置后默认关闭。bridge 缺失时 hooks 配置仍可见,但开关保持禁用;安装 bridge 并重启后,开关需要再次点击确认。可更新市场拉取到任何新提交时,更新前正在运行的 hooks 会按新配置尝试重新激活;未在运行的 hooks 仍需显式确认。

市场仓库格式(Codex 兼容)

<market repo>/
├── .agents/plugins/marketplace.json     # 市场清单
└── plugins/<plugin-name>/
    ├── .codex-plugin/plugin.json        # 插件清单(skills / hooks 字段)
    ├── hooks/
    │   └── hooks.json                   # 未声明 hooks 时的 Codex 默认位置
    └── skills/
        └── <skill-name>/
            └── SKILL.md                 # frontmatter: name / description / when_to_use

SKILL.md 示例:

---
name: my-skill
description: 说明何时应触发该技能。
when_to_use: 可选补充。
---

技能正文(Markdown 指令)。

Codex 插件可在 manifest 中声明一份或多份 hooks 配置,也可省略字段并使用默认的 ./hooks/hooks.json

{
  "skills": "./skills",
  "hooks": "./hooks/hooks.json"
}

市场只接受插件根目录内的 hooks 路径,并在注册前为每个 command hook 注入插件根目录与持久数据目录的环境变量。它复用 DSH 的 Codex bridge,当前映射 SessionStartUserPromptSubmitPreToolUsePostToolUseStop 五个点;同步 command hooks 才会执行。每个市场插件的 hooks 都需要显式授权;市场更新会按新配置尝试重新激活更新前已激活的 hooks,其他配置变更需要再次授权。

配置存储

  • 市场/插件/技能开关/hooks 授权配置:~/.dsh/agent-plugin-market/config.json
  • 市场克隆目录:~/.dsh/agent-plugin-market/markets/<id>/
  • 市场生成的 bridge 配置与插件数据:~/.dsh/agent-plugin-market/generated-hooks/~/.dsh/agent-plugin-market/hook-data/

卸载

dsh plugin --profile web rm dsh-agent-plugin-market

并从 ~/.dsh/profiles/web/cordis.patch.yml 移除对应两行,重启后生效。

开发与验证

pnpm install --frozen-lockfile
pnpm lint
pnpm typecheck
pnpm test
  • pnpm lint 使用根 flat-config ESLint,以 lib/test/ 为目标;配置忽略 test-repos/ fixture。
  • pnpm typecheck 通过 tsconfig.jsonlib/ 及本地客户端 bundle 声明执行 JavaScript + JSDoc 检查,不生成构建产物。
  • pnpm test 使用 Node 原生 node:test;市场扫描测试以 @platformatic/vfs 提供内存文件系统和 symlink 行为。

架构

半端文件职责
Host composition rootlib/index.jsDSH 注入、可选 bridge 加载、技能 provider、自动更新和 loopback RPC 装配
Host runtimelib/market-runtime.js路径、配置、市场清单与 SKILL.md 扫描
Host servicelib/market-service.jsGit 市场操作、持久化编排、hooks 授权与状态视图
Host config modellib/market-config.js纯配置状态转换:市场、安装状态与技能开关
Host Codex adapterlib/codex-hook-manager.jsCodex hooks 发现和 bridge Fiber 生命周期
Host hook planlib/hook-reconcile-plan.js纯 desired/active 差异计划,决定卸载与挂载顺序
Host helperlib/codex-hooks.jsCodex hook source 解析、审批状态、配置指纹和插件环境包装
Clientlib/client.js设置页「技能与挂钩」UI(settings.section slot)与可单测的目录模型,通过 ctx.connection.rpc 调用 Host RPC

Hook 元数据按协议保存为 hookConfigs。当前只挂载 codex 适配器;未来验证 Claude bridge 契约后,可添加并列的协议适配器,而无需重构市场或技能扫描路径。