@hytime/dsh-client-ui-shortcuts
Profile-aware keyboard shortcuts for DSH Web: supports Question and Approval cards, Standard/Vim/Custom profiles, and capability-gated Session and Workspace navigation.
Install
dsh plugin --profile web add @hytime/dsh-client-ui-shortcuts
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
DSH Client UI Shortcuts
 
[English](README.md) | 中文
为 DeepSeek Harness Web 提供快速呼出面板,以及默认关闭的 Question / Approval 交互增强。
快捷键由 DSH 官方管理:插件只向官方注册一个可编辑命令,不保留自己的按键存储或第二套快捷键配置。插件不修改 DSH core、agent loop 或模型协议。
为什么安装
- 一个快捷键即可呼出插件的快速面板。
- 改键使用官方服务,因此插件面板和 DSH 设置改的是同一份配置,不会互相覆盖。
- 需要时再开启键盘优先的 Question / Approval 交互;默认使用 DSH 官方界面。
60 秒安装
dsh plugin --profile web add @hytime/dsh-client-ui-shortcuts@0.2.1 dsh --profile web
安装或升级后必须重新加载 Web composition,已打开的页面不会热更新。完整步骤见[安装指南](docs/installation.zh.md)。
界面
⌘⌥⇧S(默认)呼出的快速面板。顶部是配置导入导出与搜索,中间列出官方全部快捷键,每条都可单独改键,底部是两个默认关闭的增强开关:
390×844 窄屏下同样完整可用:
在面板里改的绑定与 DSH 官方设置是同一份配置,官方侧同步可见:
功能
快速呼出
插件注册一个官方命令 打开快速面板,默认键位:
平台 · 默认键
Web / macOS · ⌘⌥⇧S
Web / Windows · Ctrl+Alt+Shift+S
Web / Linux · 不设默认键(官方在该平台的允许集合更窄)
面板内含:当前官方键位、录入 / 修改 / 恢复默认 / 清除、两个增强开关,以及入口按钮。设置页插件区也提供「打开快速面板」入口——即使没有绑定键位或键位冲突,仍可点击进入。
搜索与改键
快捷键列表上方的搜索框按命令名称、命令 ID 或键帽过滤当前列表,只影响显示、不改变保存内容。
面板内改键
面板调用官方 describeBinding()、edit() 与 recording():
1. 进入录制并让官方在桌面端接管原生按键;
2. 收集一个候选组合(忽略 IME 组合、重复按键与纯修饰键);
3. 由官方做规范化、保留组合与冲突检查;
4. 通过后按官方 revision 写入。
冲突、不支持、配置已变更、读取失败、写入失败都会显示对应说明。也可以在 DSH 设置 → 通用 → 快捷键 中改同一个命令,两处保持同步。
配置导入导出
面板顶部提供「导出」和「导入」,用于备份、迁移与团队分发。
导出的是完整快捷键快照——官方目录里的每一条命令都会写入,包含未修改的默认项,而不是只导出改过的:
{
"format": "dsh-client-ui-shortcuts/quick-panel",
"version": 2,
"configuration": {
"questionEnabled": false,
"approvalEnabled": false,
"profile": "web:macos",
"shortcuts": {
"hytime.shortcuts.open": { "modified": false, "binding": { "code": "KeyS", "modifiers": ["alt","shift","meta"] }, "label": "打开快速面板", "keys": ["⌥","⇧","⌘","S"] },
"session.new": { "modified": true, "binding": { "code": "KeyJ", "modifiers": ["shift","meta"] } }
}
}
}
modified 决定导入动作,避免把默认项固化成覆盖:
文件中的 modified · 当前状态 · 导入动作
true · — · 写入覆盖;binding: null 表示显式清除该键
false · 已有覆盖 · 恢复官方默认
false · 未修改 · 不写入,保持官方默认
导入先做严格校验(格式、版本、字段集合、命令 ID、物理键与修饰键,未知字段与更高版本整体拒绝,上限 1 MiB),再按目标快照整体规划:先释放本文件将要移动或清除的键,再经官方 describeBinding() 与 edit() 写回目标值,因此互换绑定也能正确恢复。两个开关通过一次原子写入提交。官方 edit() 没有批量事务,中途失败时会尽力回滚并列出仍未恢复的命令(「部分快捷键未能恢复」),不会谎报成功。导出时会经官方服务把逻辑修饰键 primary 归一化为设备明确的 meta/control,因此导出的文件导入后再导出逐字节一致。字段与限制见[接入说明](docs/official-shortcuts-integration.zh.md)。
可选交互增强
两个开关默认关闭,关闭时不接管任何界面,直接使用 DSH 官方实现:
开关 · 开启后的行为
增强 Question 交互 · 方向键选择、Enter 确认、Escape 取消任务
增强 Approval 交互 · 键盘选择「允许一次」或「拒绝」;不会自动授权
Enter 始终激活当前聚焦的操作;方向键把焦点移到「拒绝」后按 Enter 会拒绝,而不是沿用先前的选择。
版本兼容
- 插件
0.2.0以 DSH0.2.0-rc.1为已验证基线;peerDependencies为>=0.2.0-rc.1 <1.0.0,接受基线及更高版本(低于1.0.0),拒绝旧版与1.0.0+。 - DSH 会校验
@deepseek-ai/dsh-*对等依赖(预发布版本参与范围判断)。版本不匹配时安装会给出明确提示和精确豁免方式——不建议在未验证版本上授予豁免。 - 新版不兼容旧版 DSH:不再使用
settingsScope、旧 Connection settings API、settings.plugin.item坐席或旧交互载体,也不读取0.1.x的方案配置。旧版用户请继续使用0.1.23。
详见[官方快捷键接入说明](docs/official-shortcuts-integration.zh.md)。
开发与验证
pnpm install pnpm run typecheck pnpm run bundle pnpm exec vitest run tests
浏览器验收必须通过装有 0.2.0-rc.1 的真实 DSH Web composition;apps/web Vite entry 不是本插件的验证目标。
常见问题
会改变模型行为吗?
不会。本插件只改变浏览器交互,不增加 tool、prompt section、模型可见 event 或 model request context。
为什么快捷键没有生效?
按上面的默认键表确认当前平台是否有默认键(Linux Web 默认不绑定),并在 DSH 设置 → 通用 → 快捷键 或插件面板中检查是否被改键、清除或冲突。面板入口按钮始终可用。
在插件面板改键会影响 DSH 设置吗?
不会互相覆盖——两处读写的是同一份官方配置,只是界面不同。
不使用 DSH Web 可以运行吗?
不可以。浏览器产物是 DSH loader factory,依赖 DSH boot 注入、slots、locale、settings 与官方 shortcuts 服务。
相关链接
- [官方快捷键接入说明](docs/official-shortcuts-integration.zh.md)
- [安装指南](docs/installation.zh.md)
- [变更日志](CHANGELOG.zh.md)
- DeepSeek Harness
License
MIT
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::26,最后更新 2026-10-14