← 返回列表
未验证
DeepSeek Harness 的一键 Claude Code / Codex hooks 整合包。
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/25 · 已提供中文文档
为 DeepSeek Harness 提供一键式 Claude Code 和 Codex 钩子:自动发现你现有的钩子配置,并在官方桥接插件上运行它。
综合分
27.5
GitHub 分
27.5
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add chenzhi-clude/dsh-hooks-pack该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-hook-protocol@deepseek-ai/dsh-hooks-claude-code@deepseek-ai/dsh-hooks-codex@deepseek-ai/schemastery@deepseek-ai/cordis用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-hooks-pack
DeepSeek Harness 的一键 Claude Code / Codex hooks 整合包。
已经有 Claude Code 或 Codex 的 hooks.json?装上这个包,那些 hooks 直接在 DSH 里生效 —— 不用写代码、不用改配置。还没有 hooks?复制自带的示例包,一分钟获得「危险命令拦截 + 全量工具调用审计日志」。
重活由官方桥插件完成(@deepseek-ai/dsh-hooks-claude-code、@deepseek-ai/dsh-hooks-codex、共享协议 @deepseek-ai/dsh-hook-protocol),本包补上手动安装缺的三块:
1. 自动发现 —— 自动探测标准位置下的现有 hooks 配置。
2. 一行装配 —— 单个 bundle 行把两种方言挂到宿主平面。
3. 空闲安全 —— 任何配置都不存在时不注册任何东西;安装本身绝不改变 agent 行为。
安装
在插件市场界面搜索 dsh-hooks-pack → 安装。
或用命令行:
dsh plugin --profile web add github:REPLACE_ME/dsh-hooks-pack
npm 发布后也可以:
dsh plugin --profile web add dsh-hooks-pack
安装后重启 profile(或刷新 Web 界面)。
会发现什么
| 方言 | 探测位置(命中即停) |
|---|---|
| Claude Code | $CLAUDE_CONFIG_DIR/hooks.json → ~/.claude/hooks.json → ~/.claude/settings.json(仅当含 hooks 键) |
| Codex | $CODEX_HOME/hooks.json → ~/.codex/hooks.json |
显式路径优先于自动发现:
你 profile 的 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
支持的钩子点
经官方桥(仅 command 类型 hook):
- Claude Code 方言:SessionStart、UserPromptSubmit、PreToolUse、PostToolUse、Stop、SubagentStart、SubagentStop
- Codex 方言:PreToolUse、PostToolUse、SessionStart、UserPromptSubmit、Stop
deny / ask 决策、阻断反馈、additionalContext 上下文注入均可用;每个事件的 stdin 载荷与 stdout 决议格式见各桥 README。
Hook 输出格式
决策必须使用 Claude Code 的结构化格式 —— 顶层的 permissionDecision 会被忽略:
{
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "deny",
"permissionDecisionReason": "blocked by policy X"
}
}
hookEventName 必须与触发事件同名(PreToolUse、SessionStart…),否则事件级字段被丢弃。退出码 2 同样会阻断,以 stderr 作为原因。
示例包
examples/claude-hooks.example.json 自带两个开箱即用的 hook:
- guard-dangerous(shell 工具的 PreToolUse):拦截 rm -rf、force push、Remove-Item -Recurse -Force、格式化磁盘、fork 炸弹等
- audit-log(所有工具的 PostToolUse):把每次工具调用追加到 ~/.dsh-hooks-audit.jsonl
启用方法:
1. 把 examples 复制到一个稳定位置
xcopy /E /I \dsh-hooks-pack\examples %USERPROFILE%\dsh-hooks-examples\
2. 复制示例配置为你的 hooks 文件
copy %USERPROFILE%\dsh-hooks-examples\claude-hooks.example.json %USERPROFILE%\.claude\hooks.json
3. 编辑该文件,把 替换为 %USERPROFILE%\dsh-hooks-examples
配置项
| 键 | 类型 | 默认 | 说明 |
|---|---|---|---|
| executionMode | string | direct | 钩子执行后端:direct=进程内直连孵化(cmd.exe /c 或 /bin/sh -c,全用户权限,对齐 Claude Code 语义,每次调用都有日志);shim=旧版 ctx.shell+沙箱垫片(仅特定需求时使用) |
| auditFile | string | — | 可选。追加式审计文件绝对路径;每次钩子调用写一行(时间戳/退出码/耗时/命令头) |
| autoDiscover | boolean | true | 无显式路径时探测标准位置 |
| claude.configPath | string | 自动发现 | 显式指定 Claude Code 配置文件 |
| claude.pluginRoot | string | — | 替换命令中的 ${CLAUDE_PLUGIN_ROOT} |
| claude.projectDir | string | 会话 cwd | 替换 ${CLAUDE_PROJECT_DIR} 并导出该环境变量 |
| claude.defaultTimeoutMs | number | 600000 | hook 未设置超时时的默认值 |
| codex.configPath | string | 自动发现 | 显式指定 Codex 配置文件 |
| codex.model | string | — | Codex 载荷中的 model 字段 |
v0.1.1 重要修复:Windows 静默失效
症状:插件加载正常、配置正确、宿主照常启动,但所有钩子从不执行——守卫不拦截、审计不落行,且没有任何错误可见。
根因:协议 runner 把钩子经 ctx.shell 的沙箱化 shell 链执行,并把一切执行器异常折叠为「中性放行」(fail-open)。部分 Windows 部署上该链无法孵化用户的钩子命令 ⇒ 每个钩子都无声空转。
修复:新增 direct 执行后端并设为默认——进程内直接孵化命令字符串,绕开沙箱/shell 解析链;孵化失败改为写入 stderr 并记录日志而不是抛错吞掉;每次调用输出 hooks-pack[direct]: exit=N 耗时 :: 命令头 日志,可选 auditFile 持久留痕。组件级测试见 examples/test/test-direct-shell.mjs(5 项:执行/stdin 透传/超时击杀/ENOENT 不抛错/审计)。
升级:dsh plugin --profile web add 后重启宿主即可(link 安装自动跟随工作区代码)。需要回退旧行为设 executionMode: 'shim'。
已知限制
继承自官方桥:仅运行 shell 型 command hook(http / mcp_tool / prompt 型会告警跳过);配置在进程加载时读取一次,暂不支持按会话发现项目级 hooks.json;部分 Claude Code 新事件未映射。完整清单见各桥 README。
direct 模式下 Windows 经 cmd.exe 执行命令字符串——命令内嵌双引号的复杂转义与 Claude Code on Windows 同样受限,复杂逻辑建议落成 .cmd/.mjs 文件再调用。
兼容性
在 DeepSeek Harness 0.1.0-rc.7 + 桥包 0.1.0-rc.7 上测试通过。依赖范围同时接受 0.1.1-rc.1 以支持更新的部署。
许可
MIT扫码进群