Web UI 可自定义键盘快捷键:34 个预置功能(会话、视图、剪贴板、模型、静默权限切换、设置),一键录制自定义组合键,内置快捷键速查表与诊断面板。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Ricketts-Guo/dsh-shortcuts
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
为 DeepSeek Harness 的 WebUI 提供一套可完全自定义的键盘快捷键系统。所有可触达的功能预注册在分组列表中,带默认键的直接生效(macOS 优先,其他平台自动改用 Ctrl),其余一键录制即可绑定。配置保存在浏览器 localStorage,刷新/重启不丢。
- 34 个预置功能,6 个分组:会话 / 视图 / 剪贴板 / 模型 / 权限 / 系统
- 自定义绑定:任何功能都可录制任意组合键、清除、禁用,冲突自动检测
- 快捷键速查表(
⌘/):随时查看全部绑定 + 内置诊断面板 - 无留痕权限切换:⇧Tab 直调宿主权限服务,对话流零污染
- 权限 toast 三色反馈:只读绿 / 工作区写入蓝 / 完全访问橙
- 双部署形态:会话级动态插件(WebUI)+ 宿主级静态插件(Desktop),行为一致
- 纯浏览器端为主:无网络请求、不触碰业务数据;仅权限切换经宿主侧路由直写
功能一览
| 分组 | 功能(默认键) |
|---|---|
| 会话 | 新建会话 ⌘N · 会话快速切换 ⌘K · 归档当前会话 ⌘⇧A · 聚焦消息输入框 ⌘⇧K · 停止当前任务 ⌘. |
| 视图 | 切换侧边栏 ⌘B · 切换详情面板 ⌘⇧D · 切换明暗主题 ⌘⇧L · 全屏 · 滚动到顶/底部 · 聚焦会话搜索 |
| 剪贴板 | 复制最后一条助手消息 · 复制会话标题 · 复制会话 ID |
| 模型 | 选择模型 1–9 ⌘1–⌘9 · 思考强度 1–5 ⌘⇧1–⌘⇧5 · 循环思考强度 |
| 权限 | 循环切换权限(只读 / 工作区写入 / 完全访问)⇧Tab |
| 系统 | 打开设置 ⌘, · 快捷键速查表 ⌘/ · 切换界面语言 |
未标注默认键的功能初始为「未绑定」,在 设置 → 快捷键 中点击「录制」即可自定义添加。 思考强度档位取决于当前模型(如 DeepSeek 的低/中/最大);权限轮换顺序取决于部署配置的预设表。
权限切换(⇧Tab)说明
- 无留痕:不走
/permission命令系统(命令执行会在对话流留下节点),而是通过宿主侧通道直调permissionPresets服务 —— 与命令处理函数同一服务,跳过审计日志,对话流保持干净。 - 三色反馈:切换成功时底部 toast 按权限着色 —— 只读 🟢 绿、工作区写入 🔵 蓝、完全访问 🟠 橙。
- 服务端校验:会话必须存在、预设必须在配置表中,非法请求返回明确错误。
安装
方式一:一键安装(推荐,一行命令)
curl -fsSL https://raw.githubusercontent.com/Ricketts-Guo/dsh-shortcuts/main/install.sh | bash
脚本自动完成:克隆插件 → 链接到 web profile → 注册到 package.json(幂等,可重复运行)。完成后完全退出并重新打开 DeepSeek Harness,左下角设置按钮旁出现「⌘K 快捷键」按钮即安装成功。
更新插件:重新运行上面同一行命令即可。
手动步骤版(脚本等价操作):
git clone https://github.com/Ricketts-Guo/dsh-shortcuts.git ~/dsh-shortcutsln -sfn ~/dsh-shortcuts ~/.dsh/profiles/web/node_modules/dsh-shortcuts- 编辑
~/.dsh/profiles/web/package.json,在dependencies与dsh.profile.bundles中分别加入dsh-shortcuts - 重启 DSH
方式二:会话级动态插件(临时,进程重启后失效)
在 DSH 会话中通过 Cordis 工具加载(cordis_define + cordis_run)。适合快速试用;需要持久使用请用方式一。
卸载
- 静态安装:从
~/.dsh/profiles/web/package.json移除两处dsh-shortcuts引用,删除node_modules/dsh-shortcuts链接,重启 DSH。 - 动态插件:
cordis_stop/cordis_undefine。 - 自定义配置残留在浏览器 localStorage(键
dsh.shortcuts.v1),可在浏览器开发者工具中删除。
自定义
设置 → 快捷键 页面:
- 录制:点击「录制」后按下任意组合键(如
⌘⇧C)即绑定;Backspace 清除绑定,Esc 取消录制 - 启用/禁用:每行复选框
- 冲突检测:重复绑定会提示并阻止保存
- 恢复默认:一键还原全部默认键位
- 动态描述:模型/思考强度行实时显示当前位置对应的实际模型名与档位名
诊断面板(⌘/ 速查表底部)
不需要开发者工具即可自检:
- 当前会话:快捷键动作依赖的会话 ID
- ⇧Tab 绑定:绑定状态(已启用/未绑定/已禁用)
- 权限投影:权限服务是否可用、几档
- 上次权限切换:最近一次切换的成功/失败原因
- 最近按键:最近 12 次按键是否被插件捕获(带 ✓ 表示命中快捷键)
架构
单一 FEATURES 注册表驱动一切:
{ id: 'stopTask', group: '会话', label: '停止当前任务',
description: '中断正在运行的 agent 回合', defaultCombo: 'Meta+.',
run: () => { /* 任意 client 端逻辑 */ } }
设置页、速查表、冲突检测、持久化、键盘分发全部由注册表自动派生 —— 新增功能只需加一行。组合键匹配做了上档字符归一化(⌘⇧1 按下时 e.key 是 !),录制与匹配自洽。
通道说明:所有动作走 DSH 官方 client 服务(layout / workspaces / theme / locale / sessions / modelDirectories / session projections),不依赖私有 DOM 结构(仅「打开设置」通过语义属性定位触发按钮)。权限切换经宿主侧通道(动态版 harness RPC;静态版本地 HTTP 路由 /dsh-shortcuts-permission)直调 permissionPresets。
Host half 安全说明:静态版的权限路由校验会话存在与预设合法性,且仅在部署挂载了权限服务时激活;DSH Web 服务应保持 loopback 绑定。
开发与测试
npm test # 运行测试(需本机装有 DSH,测试通过 host node_modules 解析 react)
npm run check # 语法检查 + 测试
测试覆盖:组合键匹配(含上档字符归一化)、模型/思考强度位置选择、无留痕权限轮换、复制消息、剪贴板、全屏、滚动、语言轮换、打字不拦截、优雅降级、React hooks 顺序静态检查(防渲染崩溃)。
许可证
链接
同类插件
zhu1090093659/dsh-web-ui#packages/dsh-web-ui-all★ 2263
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
ccch1mneyyy/dsh-TUI★ 1051
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
omdsh-dev/DSH-better-sidebar★ 920
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
omdsh-dev/dsh-at-file★ 171
Codex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
huiliyi37/dsh-tianshu-tui★ 143
DeepSeek Harness 的终端 UI(TUI)。
Nagi-ovo/dsh-visualize★ 90
对话内生成式 UI:模型把交互式 HTML 卡片直接画进会话流,带流式预览与沙箱渲染。