dsh-approval-enter:审批面板自动获焦,回车批准、Esc 拒绝

前言

在 DeepSeek Harness(DSH)里跑智能体时,工具调用往往需要你在审批面板上点「批准」或「拒绝」。官方面板已经绑定了 Enter / Esc 快捷键,但面板插入界面时并不会自动抢走输入框焦点:焦点仍留在 Composer 里,回车含义是「发送消息」,快捷键进不了面板,只能先用鼠标点卡片或按 Tab 切过去。对习惯键盘流的操作来说,这一步很打断节奏。下面介绍社区客户端插件 dsh-approval-enter,由维护者 Girmmy3321 发布,分类为客户端,目标就是让焦点在合适的时候跟着审批面板走。

这是什么

dsh-approval-enter 是一句定位很直白的小插件:当 DSH 弹出审批面板时,在 Composer 没有草稿的前提下自动把焦点移入面板,于是 Enter 批准、Esc 拒绝,不必再伸手点鼠标。它不改官方源码,通过 DSH 客户端插件的 ./client 导出在浏览器侧运行;无需 API Key、登录或额外运行时依赖。许可证为 MIT(见 GitHub 仓库说明)。

官方行为与插件要补的缺口

审批面板的键盘逻辑在官方客户端里有一层守卫:只有焦点在面板内部时,Enter / Esc 才会被面板处理。相关条件在 @deepseek-ai/dsh-client-ui-approval 的客户端实现里体现为「当前焦点须在面板 DOM 内」一类检查。面板渲染出来时焦点仍停在 Composer,Enter 继续表示发送,因此快捷键形同未启用。该插件的做法是:用 MutationObserver 监听面板出现,在满足条件时把焦点移到面板详情区(带 data-approval-scroll、tabIndex: 0 的区域),让官方已有的 keydown 逻辑照常生效,其余行为不补丁。

核心功能

插件对 Composer 与面板状态做了区分,README 中的行为可概括为:

Composer 状态 行为
为空 焦点移入审批面板 → Enter 批准,Esc 拒绝
有草稿 不抢焦点,Enter 仍表示发送;可用 Tab 进入面板
同一请求 只决策一次,不与用户反复争夺焦点
面板关闭 焦点回到原先位置

「有草稿不抢焦点」是刻意设计:打字中途被抢焦点会丢输入,紧接着条件反射按 Enter 还可能误批准危险命令。

若未来 DSH 构建改了面板的 data-approval-key / data-approval-scroll 等标记,插件找不到理想焦点目标时会退回到面板根节点并赋予可编程 Tab 停驻;若面板完全无法获焦,则插件不动作,表现与未安装时一致。README 写明已在 dsh 0.2.0-rc.2 对应的面板标记上做过验证。

安装与启用

安装前请自行查看 GitHub 源码与 MIT 许可证;插件随当前 DSH 桌面或 Web 进程的客户端环境执行,权限与宿主一致。

从 GitHub 安装(将 YOUR-USER 换成仓库所有者,本插件为 Girmmy3321):

dsh plugin --profile desktop add github:YOUR-USER/dsh-approval-enter

例如:

dsh plugin --profile desktop add github:Girmmy3321/dsh-approval-enter

若本地克隆后希望改代码立即生效,可用 link 方式(README 示例路径可自行调整):

git clone https://github.com/YOUR-USER/dsh-approval-enter ~/dsh-plugins/dsh-approval-enter
dsh plugin --profile desktop add "link:$HOME/dsh-plugins/dsh-approval-enter"

安装完成后需 重启 DeepSeek Harness。卸载:

dsh plugin --profile desktop remove dsh-approval-enter

典型用法

  1. 在 desktop profile 按上文命令安装插件并重启 DSH。
  2. 触发一次需要审批的工具调用,在 Composer 为空 时等待面板弹出。
  3. 焦点应已进入面板详情区:直接按 Enter 批准或 Esc 拒绝。
  4. 若你正在 Composer 里编辑草稿,继续用 Enter 发送;需要审批时用 Tab 进入面板后再用快捷键。

无额外配置项;package.json 中版本为 1.0.0,客户端平台为 web,适用于 DSH 桌面应用或 dsh web。

适用场景与注意

适合经常跑 Harness、希望审批环节尽量键盘闭环的开发者。不适合指望「任何时候 Enter 都批准」的场景:有草稿时插件故意不抢焦点,这是安全与输入体验上的权衡。

DSH 生态强调「一切皆插件」;社区目录站点(如 SkillHub)与 DeepSeek / 幻方无官方从属关系,本文仅介绍该仓库公开说明的能力,不引用未在资料中出现的用户案例或数据。仓库当前 GitHub 星标为 0,以目录页与仓库页面为准。

结尾

dsh-approval-enter 解决的是审批面板「快捷键已存在但焦点不在面板里」这一具体摩擦:空 Composer 时自动对焦,回车与 Esc 即可批复,有草稿时仍尊重发送语义。需要安装命令与原理细节时,可查阅社区目录页与 GitHub 仓库。

  • 目录页:https://www.skillhub.cn/plugins/Girmmy3321/dsh-approval-enter
  • GitHub:https://github.com/Girmmy3321/dsh-approval-enter
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜