🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

钩子面板 mikazuhe13-ui/dsh-hook

DeepSeek Harness
mikazuhe13-ui31 天前有提交已提供中文文档扫描:含敏感能力

在设置页查看和开关各生命周期钩子

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/4 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add mikazuhe13-ui/dsh-hook
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/11/04·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 31 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 12 处,展示前 12 条)
  • 读取本地文件
    lib/index.js:48
    try { if (existsSync(p)) return p } catch {}
  • 读取本地文件
    lib/index.js:82
    let text = readFileSync(path, 'utf8')
  • 读取本地文件
    lib/index.js:103
    if (!existsSync(p)) return {}
  • 写入本地文件
    lib/index.js:130
    mkdirSync(dirname(p), { recursive: true })
  • 写入本地文件
    lib/index.js:131
    writeFileSync(p, JSON.stringify(rules, null, 2), 'utf8')
  • 读取本地文件
    lib/index.js:170
    if (!existsSync(p)) return []
  • 读取本地文件
    lib/index.js:241
    if (existsSync(p)) unlinkSync(p)
  • 删除本地文件
    lib/index.js:241
    if (existsSync(p)) unlinkSync(p)
  • 发起网络请求
    lib/client.js:196
    const response = await fetch('api/dsh-hook/overview', { signal: AbortSignal.timeout(FETCH_TIMEOUT_MS) });
  • 发起网络请求
    lib/client.js:202
    const response = await fetch('api/dsh-hook/rules', { signal: AbortSignal.timeout(FETCH_TIMEOUT_MS) });
  • 发起网络请求
    lib/client.js:208
    const response = await fetch('api/dsh-hook/rules', {
  • 发起网络请求
    lib/client.js:309
    fetch('api/dsh-hook/runs/clear', { method: 'POST', signal: AbortSignal.timeout(FETCH_TIMEOUT_MS) })
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 查看生命周期钩子
  • 开关钩子
  • 显示运行状态

README

由 DeepSeek 最新模型翻译生成
钩子面板(dsh-hook) DSH(DeepSeek Harness)的生命周期钩子设置面板插件 —— 在设置界面列出已配置的钩子(hooks.json):事件、matcher、命令、超时与状态信息,风格对齐 Codex Desktop 的钩子页。 icon 功能 - 7 事件全覆盖:SessionStart(含会话上下文注入示例脚本)/ PreToolUse / PostToolUse / UserPromptSubmit / Stop / SubagentStart / SubagentStop——面板按固定顺序显示全部事件(未配置的灰色提示) - 一级「钩子」设置 section:侧栏设置页新增「钩子」入口 - 按事件分组显示:PreToolUse / PostToolUse / SessionStart / UserPromptSubmit / Stop / SubagentStart / SubagentStop - 每条钩子显示:statusMessage、完整命令、matcher、timeout、类型 - 自动探测 hooks.json:按 $DSH_HOME/hooks.json → ~/.claude/hooks.json → ~/.codex/hooks.json 顺序探测;也可在插件配置里显式指定 hooksPath
展开完整文档(README 剩余 1 节)
钩子面板(dsh-hook)

DSH(DeepSeek Harness)的生命周期钩子设置面板插件 —— 在设置界面列出已配置的钩子(hooks.json):事件、matcher、命令、超时与状态信息,风格对齐 Codex Desktop 的钩子页。

icon

功能

- 7 事件全覆盖:SessionStart(含会话上下文注入示例脚本)/ PreToolUse / PostToolUse / UserPromptSubmit / Stop / SubagentStart / SubagentStop——面板按固定顺序显示全部事件(未配置的灰色提示)
- 一级「钩子」设置 section:侧栏设置页新增「钩子」入口
- 按事件分组显示:PreToolUse / PostToolUse / SessionStart / UserPromptSubmit / Stop / SubagentStart / SubagentStop
- 每条钩子显示:statusMessage、完整命令、matcher、timeout、类型
- 自动探测 hooks.json:按 $DSH_HOME/hooks.json → ~/.claude/hooks.json → ~/.codex/hooks.json 顺序探测;也可在插件配置里显式指定 hooksPath
- 零后台开销:路由按需读取文件(1 KB 级),轮询仅在设置页打开时进行(15s 间隔)
- 主题跟随:颜色全部 color-mix(in srgb, currentColor),浅色/深色/透明主题自动适配

安装

方式一:从 GitHub(推荐)

在 DSH profile 目录(<dsh-home>/profiles/<name>/):

1. package.json 的 dependencies 加:

"dsh-hook": "github:<你的用户名>/dsh-hook"

2. dsh.profile.bundles 数组加 "dsh-hook"
3. 运行 pnpm install
4. 重启 DSH

方式二:本地 link 开发

"dsh-hook": "link:D:/path/to/dsh-hook"

⚠️ pnpm 对 scope 名 + link: 组合会报 ERR_PNPM_INVALID_DEPENDENCY_NAME,请用无 scope 包名。

配置

插件的 cordis.patch.yml 里可显式指定 hooksPath(默认自动探测):

- insert:
- id: hooks-panel
name: 'dsh-hook'
config:
hooksPath: 'D:\my\dsh-home\hooks.json'

配套:让钩子真正生效

本插件只做显示。要让钩子在工具调用前真正拦截,需要装 DSH 官方的钩子桥:

- @deepseek-ai/dsh-hooks-claude-code(选与内核版本一致的 tag)

配套的守卫脚本示例(拦截递归删除 / C 盘写入 / 环境变量枚举)见仓库 examples/hook-guard.ps1。

与其他插件的兼容性

- @deepseek-ai/dsh peer >=0.2.0-rc.1
- 客户端半依赖 dsh-client-ui-slots / dsh-client-ui-renderer / dsh-client-connection(DSH 内核自带)
- 与 @linxin666/dsh-usage 等 settings.section 插件共存(order 152,usage 之后)

架构

┌─ lib/index.js(宿主半)─────────────────────┐ │ 读 hooks.json(显式 hooksPath 或自动探测) │ │ 注册 GET /api/dsh-hook/overview │ └──────────────────────────────────────────────┘ ↓ fetch(仅页面打开时 15s 轮询) ┌─ lib/client.js(客户端半)──────────────────┐ │ ctx.slots.register('settings.section', ...) │ │ 纯 DOM 渲染(React ref 挂载,无构建链) │ └──────────────────────────────────────────────┘

⚠️ 构建说明(重要):本仓库目前只提交编译产物 lib/client.js (文件头有 //#region src/client/index.ts 标记),src/ TypeScript 源码未纳入版本控制。
因此 lib/*.js 是唯一真源,请直接编辑它们。
历史教训:v0.3.1 曾因「源码改了、产物没同步」导致 relTime 只有调用点而无定义,使运行状态卡抛 ReferenceError 并拖垮整个面板(详见 AUDIT.md)。
建议后续把 src/ 与构建脚本一并提交,恢复可重建性。

测试

仓库内 test/ 提供不依赖浏览器的验证脚本(Node 直接跑,无需安装依赖):

node test/verify-cwrite.mjs # cWrite 正则:只拦 C 盘、放行 D/E 盘与白名单
node test/verify-render.mjs # 端到端渲染:用真实 client.js 渲染全部卡片,确保不抛异常
node test/verify-host.mjs # 宿主半:路由返回含 ruleKeys,且与 zh/en 字典键一致
node test/verify-hardening.mjs # 加固:loopback 校验、runs/clear 限 POST、字典键完备

License

MIT
预览分享卡片长什么样 ↓mikazuhe13-ui/dsh-hook
分享 · DeepSeek Harness Hub
mikazuhe13-ui/dsh-hook

在设置页查看和开关各生命周期钩子

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部