DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Plugin Hooks — DeepSeek Harness 插件(DSH Plugin)
← Plugins

dsh-plugin-hooks

Plugin Hooks

DeepSeek Harness 插件:为 DSH 提供 Claude-Code 风格的生命周期钩子。配置在模型工具调用前后(pre-tool / post-tool)自动运行的 shell 命令,并通过 stdin 接收 JSON 负载;pre-tool 返回非零退出码时会阻止调用。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-plugin-hooks@0.1.1
README兼容性版本

兼容性与来源证明

Plugin Hooks 以 dsh-plugin-hooks 发布,当前版本为 0.1.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
npm
Registry 更新时间
2026/9/20

版本

0.1.1stable
2026/8/14

相关插件

正在加载相关插件…

最新版
0.1.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
17.7 kB
文件数
5
Surface
any
许可证
MIT
发布源
npm
GitHub
★ 2
周下载
68
最近提交
2026/8/14
查看源码 ↗
项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Better Sidebardsh-better-sidebarDSH web 插件:类似 VSCode 的右侧边栏(资源管理器 / 编辑器 / 终端 / git / 浏览器),按对话会话隔离。提供服务,供其他插件注册侧边栏标签页和文件查看器。Find Plugindsh-find-plugin在代理中查找 DeepSeek Harness 插件——实时搜索 GitHub 上的 dsh-plugin 主题,并按星标数排序。DSCODE@toddzheng024/dscode-bundle完整的 DeepSeek 编码代理,支持持久化 shell、Ultra 协作和自动权限审查。Plugindsh-pluginDeepSeek Harness 社区插件市场,遵循官方插件规范——无需离开应用即可浏览、搜索并安装 9000+ 个由人工精选的社区插件。· DeepSeek Harness 社区插件市场(遵循官方开发规范):9000+ 人工精选社区插件,每日更新。

README

dsh-plugin-hooks

DeepSeek Harness 插件:把 Claude Code 风格的 lifecycle hooks 带到 DSH —— 配置驱动的 shell 命令,在模型工具调用前后自动执行。

背景

DSH 0.1.0-rc.6 没有 hooks 能力,但架构已经预留了接缝:tools/pre-execute / tools/post-execute 两个有序 waterfall,以及 shell 服务"通过 stdin 给命令喂 JSON payload"的词汇表(见 @deepseek-ai/dsh-shell)。这个插件以纯外部插件形式补上这块空白,设计对齐官方预留接口:

  • pre-tool hook:匹配的工具执行前运行;命令非零退出 → 阻止该工具调用(等价 Claude Code PreToolUse 返回 error);
  • post-tool hook:工具结果落地后运行;退出码只记录,不改变工具结果。

配置

JSON 配置,来源二选一或叠加:

  1. 文件(默认 $DSH_HOME/hooks.json):
{
  "hooks": [
    {
      "id": "lint-after-edit",
      "event": "post-tool",
      "tools": ["edit", "write"],
      "command": "npm run lint -- --quiet",
      "timeoutMs": 30000
    },
    {
      "id": "guard-prod",
      "event": "pre-tool",
      "tools": ["bash", "pwsh"],
      "command": "node guard.js"
    }
  ]
}
  1. 内联(挂载 config,追加在文件 hooks 之后):
- id: hooks
  name: dsh-plugin-hooks
  config:
    configFile: C:/path/to/hooks.json   # 可选
    hooks:
      - id: always-deny-db
        event: pre-tool
        tools: [bash]
        command: "node deny-db.js"

字段:id(必填、唯一)、event(pre-tool | post-tool)、tools(可选,默认全部)、command(必填)、timeoutMs(可选)、enabled(默认 true)。

安装

dsh plugin --profile web add dsh-plugin-hooks

挂载:

- insert:
    - id: hooks
      name: dsh-plugin-hooks

Hook 命令收到的数据

命令通过 stdin 收到一行 JSON payload:

{ "event": "PostToolUse", "hookId": "lint-after-edit", "toolName": "edit",
  "args": { "path": "a.js" }, "sessionId": "s_xxx", "cwd": "C:/repo",
  "result": { "isError": false, "exitCode": 0, "error": null }, "durationMs": 123 }

环境变量:CLAUDE_PROJECT_DIR(会话 cwd)、DSH_HOOK_EVENT、DSH_HOOK_ID、DSH_SESSION_ID。pre-tool payload 无 result/durationMs 字段。

命令

  • /hooks — 列出已配置 hooks + 最近 20 次运行记录(含退出码/错误摘要)
  • /hooks-reload — 重新读配置文件,热加载,无需重启

设计说明

  • 通过 ctx.on("tools/pre-execute"|"tools/post-execute") 接入 Cordis waterfall;pre-tool 非零退出时返回 { kind:"deny", reason } 阻断调用(与 dsh-tools 的 deny 决策契约一致,见 prepareExecution)。
  • 钩子命令经 ctx.shell.run 执行(自动套用沙箱策略与超时),payload 走 stdin、cwd 走 env —— 与 DSH 为 hooks bridges 预留的 shell 词汇表一致。
  • 配置解析/匹配/payload 构建全部在 lib/config.js 纯函数里,npm test 零依赖。
  • hook 运行不会递归触发工具事件(shell 是服务调用,不是工具调用)。

诚实边界

  • hook 命令是受信任的 host 配置(等同 Claude Code hooks):能读写任何 host 能访问的东西,只在可信 profile 启用。
  • pre-tool 命令会阻塞工具执行(超时/退出码决定放行与否);post-tool 命令失败只记录,不影响结果。
  • v1 只支持工具生命周期事件;Stop / SessionEnd 类 hook 需要会话事件订阅,官方尚未暴露,留待后续。
  • 若 ctx.shell 未挂载,插件照常加载但 hook 不会运行(启动时在 /hooks 里提示)。

本地开发

cd plugins/dsh-plugin-hooks
npm test          # node --test,零依赖

接线集成测试(真实 Cordis + mock shell,验证 allow/deny 语义与 payload):见仓库根 test-wiring.mjs。