DeepSeek Harness Plugin

Ricketts-Guo/dsh-shortcuts

Stars ★ 0 Category UI Enhancements Added 2026-08-15

Fully customizable keyboard shortcuts for the Web UI: 34 pre-registered features (sessions, views, clipboard, models, silent permission cycling, settings), one-click recording to bind your own, and a shortcut cheatsheet with built-in diagnostics.

Install

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:Ricketts-Guo/dsh-shortcuts

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time. Only install sources you trust, and pin a 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 快捷键」按钮即安装成功。

更新插件:重新运行上面同一行命令即可。

手动步骤版(脚本等价操作):

  1. git clone https://github.com/Ricketts-Guo/dsh-shortcuts.git ~/dsh-shortcuts
  2. ln -sfn ~/dsh-shortcuts ~/.dsh/profiles/web/node_modules/dsh-shortcuts
  3. 编辑 ~/.dsh/profiles/web/package.json,在 dependenciesdsh.profile.bundles 中分别加入 dsh-shortcuts
  4. 重启 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 顺序静态检查(防渲染崩溃)。

许可证

MIT

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →