DSH Plugin Store
Back to home

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
Other
GitHub repo

Introduction

dsh-hotkeys

CI

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 并指明动作名

配置

键位、sendModeignoreInputssettings 命名空间持久化配置(host 半区注册 schema,浏览器半区 settingsScope 同步,值变化即时重建绑定,无需重启)。两种方式:

  1. 设置 > 通用 > 快捷键:可视化编辑全部键位(一个动作支持多个键位,逗号分隔,如 mod+enter, ctrl+shift+enter;输入空串禁用该动作、重置回默认)、sendMode 下拉、ignoreInputs 开关
  2. 编辑 $DSH_HOME/settings.yamlhotkeys: 段(键位字段同样支持数组):
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

内置默认键位(即上表;值为空字符串 '' 禁用该动作):

默认说明
newSessionmod+alt+n新会话(与侧栏"新建会话"同一入口;mod+n 是浏览器保留快捷键无法拦截)
prevSession / nextSessionmod+alt+[ / mod+alt+]上一个 / 下一个会话(mod+shift+[ ] 在 macOS 上是浏览器标签切换)
stopmod+.停止当前会话运行中的回合
sendmod+enter发送当前草稿(等价 composer 加速 Enter 语义)
sendModeauto忙碌时的提交模式:auto(与 composer 加速 Enter 完全一致,见下)/ queue / steer
clearComposermod+shift+u清空草稿文本(避开 Firefox 的 mod+shift+k
forkmod+shift+f复制当前会话
archivemod+alt+a归档当前会话(原生 workspaces.archiveSession;避开 Chrome 的 mod+shift+a 搜索标签页)
ignoreInputstrue纯按键组合在输入框/文本域内不触发

键位写法:修饰键(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 硬刷新。

使用

  1. 打开任意会话,Ctrl+Alt+[ / Ctrl+Alt+] 切换会话;Ctrl+Alt+N 新建会话
  2. 输入草稿后 Ctrl+Enter 发送;Ctrl+. 停止生成;Ctrl+Shift+F 复制会话
  3. Ctrl+Alt+A 归档当前会话(移入侧栏"已归档")
  4. 输入 /hotkeys 查看当前生效的全部快捷键
  5. 配置错误的键位会在浏览器控制台打印 [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-uidsh.bundle.patch + dsh.client 声明 + 槽位注册 + tsdown 双半区构建)