csiroqa
dsh-hotkeys
DeepSeek Harness(DSH)全局快捷键插件:会话切换、发送/清空草稿、停止生成、复制与归档,键位可在设置中自定义。Global keyboard shortcuts plugin for DeepSeek Harness.
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 13, 2026
- Updated
- Aug 13, 2026
Introduction
dsh-hotkeys
DeepSeek Harness(DSH)的全局快捷键插件:会话切换、发送/清空草稿、停止生成、复制与归档会话——动作全部基于 dsh-client-runtime 公开服务,不依赖宿主 DOM 结构。
English: README.en.md
功能
会话导航
- 会话切换:按侧栏顺序环绕切换(按住可连续切换)
- 新会话:与侧栏"新建会话"同一入口,快速开始新对话
草稿与发送
- 发送草稿:
send等价 composer 加速 Enter(草稿为空且有排队消息时把排队消息推入运行中的回合),发送/受理进行中自动拦截 - 清空草稿:只清文本、保留已附加图片
会话管理
- 停止生成:停止当前会话运行中的回合(与 composer 一致:仅普通会话与 continuable 子代理可打断);未运行给出页面内提示
- 复制会话:fork 当前会话(标题递增)并跳转到新会话
- 归档会话:原生
workspaces.archiveSession(当前会话移入"已归档")
快捷键清单
/hotkeys命令:在会话中列出全部 8 个动作的当前生效键位(含用户自定义覆盖)
守卫
- IME 组合输入中、AltGr 键击、已被消费(defaultPrevented)的按键不触发;纯按键组合(无 Ctrl/Cmd/Alt)在输入框/文本域内不触发(
ignoreInputs);按住不放只放行导航类动作;非法/重复键位在控制台warn并指明动作名
配置
键位、sendMode、ignoreInputs 经 settings 命名空间持久化配置(host 半区注册 schema,浏览器半区 settingsScope 同步,值变化即时重建绑定,无需重启)。两种方式:
- 设置 > 通用 > 快捷键:可视化编辑全部键位(一个动作支持多个键位,逗号分隔,如
mod+enter, ctrl+shift+enter;输入空串禁用该动作、重置回默认)、sendMode下拉、ignoreInputs开关 - 编辑
$DSH_HOME/settings.yaml的hotkeys:段(键位字段同样支持数组):
hotkeys:
newSession: 'mod+alt+n'
prevSession: 'mod+alt+['
nextSession: 'mod+alt+]'
stop: 'mod+.'
send: 'mod+enter'
clearComposer: 'mod+shift+u'
fork: 'mod+shift+f'
archive: 'mod+alt+a'
sendMode: 'auto'
ignoreInputs: true
内置默认键位(即上表;值为空字符串 '' 禁用该动作):
| 键 | 默认 | 说明 |
|---|---|---|
newSession | mod+alt+n | 新会话(与侧栏"新建会话"同一入口;mod+n 是浏览器保留快捷键无法拦截) |
prevSession / nextSession | mod+alt+[ / mod+alt+] | 上一个 / 下一个会话(mod+shift+[ ] 在 macOS 上是浏览器标签切换) |
stop | mod+. | 停止当前会话运行中的回合 |
send | mod+enter | 发送当前草稿(等价 composer 加速 Enter 语义) |
sendMode | auto | 忙碌时的提交模式:auto(与 composer 加速 Enter 完全一致,见下)/ queue / steer |
clearComposer | mod+shift+u | 清空草稿文本(避开 Firefox 的 mod+shift+k) |
fork | mod+shift+f | 复制当前会话 |
archive | mod+alt+a | 归档当前会话(原生 workspaces.archiveSession;避开 Chrome 的 mod+shift+a 搜索标签页) |
ignoreInputs | true | 纯按键组合在输入框/文本域内不触发 |
键位写法:修饰键(mod/ctrl/alt/shift,可任意组合)+ 单键或具名键(enter/esc/up/pageup/f5/…)。mod 在 Windows/Linux 上为 Ctrl,macOS 上为 ⌘。默认键位已避开浏览器保留快捷键。
注意:cordis.patch.yml 的 insert config 段不达浏览器半区(patch config 只到 host),键位配置请写 settings.yaml。
安装
前置:Node.js >= 22、pnpm、本机 deepseek-harness 源码检出(依赖以 link: 指向 ../deepseek-harness)。
git clone https://github.com/csiroqa/dsh-hotkeys.git
cd dsh-hotkeys
pnpm install
pnpm build
# 安装进 web profile(link: 指向本目录)
dsh plugin --profile web add link:$(pwd) # POSIX
dsh plugin --profile web add link:D:\path\to\dsh-hotkeys # Windows
重启 dsh web,浏览器 Ctrl+F5 硬刷新。
使用
- 打开任意会话,
Ctrl+Alt+[/Ctrl+Alt+]切换会话;Ctrl+Alt+N新建会话 - 输入草稿后
Ctrl+Enter发送;Ctrl+.停止生成;Ctrl+Shift+F复制会话 Ctrl+Alt+A归档当前会话(移入侧栏"已归档")- 输入
/hotkeys查看当前生效的全部快捷键 - 配置错误的键位会在浏览器控制台打印
[hotkeys]警告
兼容性
- 平台:Windows / macOS / Linux(Node >= 22)—— 三平台构建与冒烟测试经 GitHub Actions CI 验证
- 针对 DSH
0.1.0-rc.5源码检出开发验证,并在@deepseek-ai/dsh@0.1.0-rc.6(npm 全局/npx 安装)环境实测可用;依赖sessions/workspaces两个公开服务(bundle 声明inject)与一处 untyped 的conversation.input运行时面(ui-conversation 缺席时相关动作静默降级) - 键位按 US 键盘布局假设(shift 上档字符还原);
mod平台判定优先userAgentData.platform,回退navigator.platform - 已知限制:slash 菜单打开时的拾取仲裁由 composer 私有持有,
send直接提交草稿而非拾取高亮项;sendMode: 'auto'与 composer 加速 Enter 完全一致(读取ui-conversation命名空间的busyEnter偏好并按取反语义解析) - 构建产物:
tsdown(host 半区lib/index.js+ browser 半区lib/client.js,标准window.__ModuleLoader__.load闭包工厂格式)
安全说明
- 快捷键只在本机页面上生效(DSH 默认回环绑定),不涉及任何网络监听
- 键位配置写入
$DSH_HOME/settings.yaml(本机文件),请勿把 DSH 端口暴露到公网 - 插件以
link:指向本仓库目录安装,改动源码后重新构建(pnpm build)并硬刷新即可生效
许可与使用声明
MIT License(见 LICENSE)。
欢迎任何人使用、修改、引用、或把本项目收录进自己的插件合集,只需:
- 保留
LICENSE文件与版权声明 - 标明出处(本仓库链接)
相关
- DeepSeek Harness
- 同系列插件:dsh-schedule(定时任务 + 状态监控)
- 插件形态参考 dsh-web-ui(
dsh.bundle.patch+dsh.client声明 + 槽位注册 + tsdown 双半区构建)