前言¶
在 DeepSeek Harness(DSH)里,审批、工具提问、计划审查等交互面板都会出现确认和取消按钮。dsh-approval-hotkeys 用来减少反复点击:Enter 按确认按钮,Esc 按取消按钮。它把 Claude Code 中常见的确认 / 拒绝习惯带到 DSH 面板上,只处理 DSH 渲染出来的带按钮交互面板。
定位¶
- 插件名:
dsh-approval-hotkeys - 维护者:SiriLee
- 类型:DeepSeek Harness 客户端插件
- 许可:MIT
- 作用:为审批面板、问题 / 选择面板、计划审查面板提供统一的 Enter / Esc 快捷键
核心功能¶
下面按面板类型介绍快捷键行为。
| 面板 | Enter | Esc |
|---|---|---|
| 审批面板 | Allow once | Reject |
| 问题 / 选择面板 | Submit / Next | Discard the group |
| 计划审查面板 | Approve | Decline;若面板没有 Decline,则按 Discuss |
这些快捷键适用于 DSH 渲染的带按钮交互面板,包括编辑审批、权限提升、工具问题和计划审查。插件没有配置项,也没有设置页。
安装与启用¶
先安装插件:
dsh plugin --profile web add dsh-approval-hotkeys
这条命令把插件安装到 web profile。安装后,重启 dsh web;如果宿主侧没有变化,由于该插件是纯浏览器端插件,也可以直接刷新页面。经过上面的步骤,面板出现后即可使用 Enter 和 Esc。
典型用法¶
面板出现后,按键规则如下:
Enter → 面板的主按钮 / confirm action
Esc → 面板的取消按钮 / cancel action
具体到面板:
1、审批面板:Enter 按 Allow once,Esc 按 Reject。
2、问题 / 选择面板:Enter 按 Submit / Next,Esc 按 Discard the group。
3、计划审查面板:Enter 按 Approve,Esc 按 Decline;如果面板没有 Decline 动作,则按 Discuss。
工作机制¶
该插件是纯浏览器端插件,宿主侧是一个 no-op stub。所有行为来自一个 document 级 keydown 监听器,负责找到当前面板并点击对应按钮。
按钮解析基于位置,而不是稳定语义属性:确认按钮取面板动作行中的主按钮,取消按钮取对应的 Reject、Discard、Decline(或 Discuss)。因此它会依赖 DSH 面板的布局约定。
为了避免误触发,插件会跳过以下情况:
- 在
input、textarea、select或contentEditable中按键; - Enter 时焦点已经在按钮上,避免重复触发;
Ctrl/Meta/Alt组合键和长按重复键;- 没有面板时按 Esc。
没有面板时,Esc 会被原样留给浏览器或 DSH 自身处理。插件不会停止或暂停 agent。
与其他插件的边界¶
如果其他插件往交互面板里注入非动作按钮(例如装饰性控件、折叠按钮),建议给该按钮标记:
<button data-hotkey="none">Collapse diff</button>
dsh-approval-hotkeys 在解析确认 / 取消按钮时会跳过标记为 data-hotkey="none" 的按钮。这是一个协作式的 opt-out 约定,不是硬保证:如果其他插件没有标记,或注入真正可点击的动作按钮,或 DSH 面板布局发生变化,快捷键仍可能受按钮顺序影响。
开发者安装注意¶
从本地 checkout 或固定 commit 安装时,可以使用:
dsh plugin --profile web add /path/to/dsh-approval-hotkeys
或:
dsh plugin --profile web add github:SiriLee/dsh-approval-hotkeys#<sha>
某些 git 安装方式在首次运行前,需要在当前 profile 的 pnpm-workspace.yaml 中增加 allowBuilds 键。配置完成后再按上面的安装命令启用插件。
适用场景与注意¶
适合希望减少在审批、问题选择和计划审查面板中鼠标点击的 DSH 使用者。它是纯浏览器端插件,宿主侧为空 stub,行为限于浏览器侧的 keydown 监听和点击现有面板按钮;不发起网络请求,不访问文件,不读取凭据。
不过,插件仍以当前 dsh 进程所启动的 web 客户端上下文运行,并依赖该页面上下文的 DOM 访问能力。安装前应检查源码与 MIT 许可证,确认当前 DSH 环境、profile 和依赖版本符合预期。
结尾¶
dsh-approval-hotkeys 的价值在于把 DSH 交互面板的确认与取消动作固定为 Enter / Esc,让审批、选择和计划审查更贴近键盘操作习惯。
- GitHub:https://github.com/SiriLee/dsh-approval-hotkeys
- DSH 社区目录:可按插件名
dsh-approval-hotkeys搜索