前言¶
DeepSeek Harness(DSH)的权限审批卡片本身支持 Enter 和 Escape,但只有在键盘焦点位于卡片上时才生效。当请求到来时,卡片会替换编辑器,焦点自动回到 body,导致按 Enter 不起作用。这迫使开发者不得不把鼠标点回卡片,破坏了键盘流。dsh-approval-enter 解决这个问题,让审批过程完全通过键盘完成。
是什么¶
这是一个为 DeepSeek Harness(DSH)客户端设计的插件,由维护者 wood007924 开发。它的核心价值是:当权限请求的审批卡片出现时,插件自动将焦点引导至卡片区域,并捕获键盘事件,让 Enter 对应「允许一次」,Escape 对应「拒绝」。插件不自动审批、不静默超时,审批逻辑仍走 DSH 原生的锁机制、IME 守卫和重复键守卫。
核心功能¶
- 自动聚焦:当审批卡片出现时,插件将焦点移到卡片的
tabindex=0区域。 - 捕获阶段监听:如果焦点不在卡片上,插件在捕获阶段拦截
Enter/Escape,先聚焦卡片,再把按键事件重新触发到卡片,使其内置的审批逻辑生效。 - 不干扰其他输入:插件不会从文本字段抢走焦点,也不会处理除
Enter/Escape以外的按键。 - 依赖 DSH 原生逻辑:审批结果仍由 DSH 的 pending-request 锁、IME 守卫和重复键守卫控制,不会绕过这些安全机制。
安装与启用¶
从 npm 安装(需插件已发布):
dsh plugin --profile <profile> add dsh-approval-enter
从本地 checkout 安装(开发调试):
dsh plugin --profile <profile> add link:/absolute/path/to/dsh-approval-enter
或手动方式:把包放入 <DSH_HOME>/profiles/<profile>/plugins/,链接到该 profile 的 node_modules,并在 profile 的 package.json 中添加 dsh.profile.bundles 条目。
安装后需要重启 DeepSeek Harness,插件才会生效。
典型用法¶
- 打开 DSH,进入插件管理页面,确认「Enter to approve」插件已启用。
- 触发一个需要审批的操作(权限模式下才会出现审批卡片)。
- 不要使用鼠标,直接按
Enter,请求应立即被允许。 - 再触发一次,按
Escape,请求应被拒绝。
注意:只有权限模式会弹出审批卡片。在「完全访问」模式下 DSH 不会询问,因此没有卡片可确认,这是预期行为。
适用场景与注意¶
适合习惯键盘流、希望减少鼠标操作的 DSH 用户。插件运行在 DSH 进程的权限上下文中,应确保来源可信、查看许可证后再安装。当前版本兼容 DSH 0.2.1-rc.2(桌面、Web UI)。插件依赖 @deepseek-ai/dsh-client-ui-approval 暴露的 [data-approval-key](卡片根)和 [data-approval-scroll](可聚焦区域)两个属性,若未来 DSH 更改这些属性,需要更新 client.js 中的选择器。
结尾¶
dsh-approval-enter 让审批流程回归键盘,减少鼠标操作,提升操作连贯性。如需更多信息或提交问题,可访问插件目录或 GitHub 仓库。
- 插件目录:https://www.skillhub.cn/plugins/wood007924/dsh-approval-enter
- GitHub:https://github.com/wood007924/dsh-approval-enter