前言¶
DeepSeek Harness (DSH) 的核心设计理念是「一切皆插件」。在使用 DSH 进行智能体开发或运维时,开发者往往已经为 Claude Code 或 Codex 配置了 hooks.json,需要将这些现有配置迁移到 DSH 的拦截点中。
手动配置繁琐且容易遗漏。chenzhi-clude/dsh-hooks-pack 插件通过自动发现现有的 Hooks 配置并运行在官方桥接插件拦截点上,解决了这一痛点。它允许开发者在不编写代码或修改现有配置文件的情况下,让 DSH 执行已有的 Hooks 逻辑。
插件概览¶
该插件由 chenzhi-clude 维护,采用 MIT 许可证。
它通过官方桥接插件(@deepseek-ai/dsh-hooks-claude-code、@deepseek-ai/dsh-hooks-codex 及共享协议 @deepseek-ai/dsh-hook-protocol)完成底层拦截,插件本身主要提供配置发现、挂载和执行模式管理。
核心功能¶
- 自动发现配置:插件会探测标准目录,自动查找 Claude Code 或 Codex 的
hooks.json。 - 官方拦截点支持:运行官方桥接插件定义的拦截点钩子。
- 单行挂载:通过单一配置即可同时挂载 Claude Code 和 Codex 两种方言。
- 危险命令防御:内置示例钩子可拦截危险操作(如
rm -rf、强制推送等)。 - 审计日志记录:内置钩子可记录工具调用审计日志。
- 安全空闲模式:当未发现任何配置时,插件不会注册任何钩子,不会改变 Agent 的默认行为。
安装与启用¶
通过 CLI 安装该插件:
dsh plugin --profile web add github:REPLACE_ME/dsh-hooks-pack
安装后,需要重启 Profile(或重新加载 Web 应用)以使配置生效。
典型用法¶
安装完成后,通常需要进行以下配置:
- 指定执行模式:在配置文件中设置
executionMode。默认为direct,这是 v0.1.1 版本引入的修复,用于解决 Windows 下的静默失败问题。 - 显式指定路径:如果自动发现失败,可以通过
cordis.patch.yml显式指定配置文件路径:
- id: hooks-pack
name: dsh-hooks-pack
config:
claude:
configPath: D:/my-hooks/claude-hooks.json
codex:
configPath: D:/my-hooks/codex-hooks.json
- 启用示例钩子:插件目录包含
examples,包含“防危险命令”和“审计日志”两个示例。开发者可将其复制到指定位置并配置引用。
配置参考¶
插件支持以下配置项:
- executionMode (string, 默认:
direct): 钩子执行后端。direct为进程内直接执行(匹配 Claude Code 语义),shim为传统的沙箱兼容模式。 - autoDiscover (boolean, 默认:
true): 当未指定显式路径时,是否探测标准位置。 - claude.configPath / codex.configPath (string): 显式指定配置文件路径。
- auditFile (string): 可选的审计日志文件绝对路径。
- claude.projectDir: 替换
${CLAUDE_PROJECT_DIR}环境变量。
适用场景与注意事项¶
- 适用场景:已有 Claude Code 或 Codex Hooks 配置,希望无缝迁移到 DSH 的开发者;需要通过 Hooks 进行危险命令防御或审计日志记录的用户。
- 仅支持 Shell-form 钩子:该插件目前仅支持 Shell-form 类型的命令钩子,
http/mcp_tool/prompt类型的钩子会被跳过。 - 配置加载机制:配置在进程加载时读取,不支持 per-session(会话级)的项目本地发现。
- Windows 兼容性:在 Windows 下,复杂引号的处理有限制。建议将复杂逻辑封装在
.cmd或.mjs文件中,再由钩子调用。 - 依赖要求:需要满足
@deepseek-ai/cordis的 peerDependency 版本要求(^4.0.1)。
短结尾¶
dsh-hooks-pack 插件为 DeepSeek Harness 用户提供了从 Claude Code/Codex 迁移 Hooks 配置的标准化路径。通过 direct 执行模式和自动发现机制,它解决了手动配置繁琐且容易出错的痛点。对于需要安全防护和审计的 DSH 工作流,这是一个低成本的集成方案。