前言¶
DeepSeek Harness(DSH)的 Web GUI 里,侧栏项目与会话行、Composer 输入区、各类按钮和链接往往分散在页面上。纯鼠标点选或 Tab 链式聚焦,在频繁切换会话、改设置、回到输入框时成本偏高。社区里已有 Vimium 一类「先快捷键、再字母标签」的浏览器习惯;DSH 自身是插件化宿主,客户端能力也可以做成独立插件。下面介绍维护者 Lionad-Morotar 发布的 dsh-jump:在 Harness Web 界面里用组合键进入标签模式,再敲字母标签即可点击或聚焦目标元素。
这是什么¶
dsh-jump 是 DSH 的客户端插件(npm 包名 dsh-jump),面向 DeepSeek Harness Web GUI 提供键盘跳跃导航:按下「点击」或「聚焦」组合键后,视口内可交互元素会被打上字母标签,再输入标签即可对该元素执行点击或聚焦。
仓库:Lionad-Morotar/dsh-jump。目录页:SkillHub 插件条目。当前 package.json 版本为 0.1.2,许可证 MIT。engines.dsh 要求 >=0.2.0-rc.2 且 <0.3.0-0;安装前请确认本机 DSH 版本落在该区间内。
核心功能¶
两种模式与默认快捷键¶
- 点击模式:默认 macOS 为
Cmd+H,非 Mac 为Ctrl+H。命中非文本输入类控件时,走完整的合成指针/鼠标/点击序列;文本输入面仍会被聚焦并把光标落到草稿末尾。 - 聚焦模式:默认 macOS 为
Cmd+U,非 Mac 为Ctrl+U。对非文本输入类控件仅调用focus();文本输入面同样聚焦并处理光标位置。 - 退出:
Esc、任意 meta 组合键、或再按一次当前模式的激活键,均可退出标签模式。
激活时会先 blur 当前焦点再采集标签,避免焦点留在输入框时下一击被输入法吃掉。标签由客户端入口以 overlay 渲染;模式激活期间 keydown 由状态机消费,不会在已聚焦输入框里「漏打」字母。
哪些元素会被打标签¶
README 归纳了三类,均来自 Harness 里真实难以触达的元素:
- 原生控件:
a[href]、button、input、select、textarea、summary,以及带tabindex的元素。 - Harness 实际渲染的 ARIA 部件角色:
button、link、tab、treeitem(侧栏项目与会话行)、option、menuitem*系列、checkbox、radio、switch、slider、spinbutton等;结构性角色(如row、columnheader) deliberately 不标。 - 可编辑宿主(
contenteditable且非false)以及textbox/searchbox/combobox角色——Composer 是 Lexical 管理的div[contenteditable=true][role=textbox],无原生标签匹配,靠这一条可达。
标签字母规则¶
前九个标签为 a s d f g h j k l;超过九个时整轮改用等长双键标签(如 as、ad);超过 81 个则升到三键,避免短标签抢占长标签的首击。
快捷键可改、存浏览器本地¶
设置 → 「跳跃导航」(注册 order 为 25,在设置导航中的位置由该值决定)。点选快捷键录制区后按下新组合键即可生效,无需刷新。绑定保存在浏览器 localStorage 键 dsh-jump:bindings:v1,不写进包配置。产生字符的键必须带 ⌘、⌃ 或 ⌥;Insert、F1、Home 等不产生字符的键可不配修饰键——焦点在可编辑区域时裸键不触发跳跃,带修饰键的组合仍生效。
macOS 输入法切换(可选)¶
macOS 上激活时会记住当前输入源并切到美式键盘(com.apple.keylayout.ABC),在 Esc、完成一次标签、切应用或插件卸载时恢复。页面通过宿主 POST /api/dsh-jump/ime 调用本机 im-select;二进制缺失或宿主无 web 服务时跳过,标签模式仍可用。im-select 需自行安装(README 示例:brew install im-select),不是 npm 包依赖。
v1 边界(使用时需知晓)¶
- 标签在激活瞬间快照;激活后新出现或移动的元素需重新激活才有标签。
- Web 与 desktop 都会加载该插件,但 overlay 针对 Web GUI(README 后续章节有 platform 说明,v1 以 Web 为主场景)。
安装与启用¶
从 npm 安装(推荐)¶
官方命令如下。安装后需重启对应 profile;bundle patch 会注册 Loader 行,一般不必手改 cordis.patch.yml。
dsh plugin --profile web add dsh-jump
跟踪源码 checkout¶
在 profile 里用 link: 或 git URL 依赖后执行 dsh plugin --profile web install 并重启 DSH。README 亦给出从 GitHub 添加的方式:
dsh plugin --profile web add github:Lionad-Morotar/dsh-jump
link: 路径相对 ~/.dsh/profiles/web 解析,需按本机 checkout 位置调整。
手动 patch¶
向 profile 的 cordis.patch.yml 追加(文件顶层须保持 YAML 数组):
- insert:
- id: jump
name: 'dsh-jump'
典型用法¶
- 确认已安装并重启 web profile 后,打开 DSH Web GUI 任意页面。
- 按
Cmd+H(Mac)或Ctrl+H(非 Mac)进入点击标签模式;侧栏与会话行、Composer、按钮等可见可交互目标应出现字母 overlay。 - 输入 overlay 上对应标签(单键或双键/三键,视元素数量而定),目标被点击或聚焦(文本区则聚焦且光标到草稿末尾,除非已有 caret)。
- 需要只聚焦、不触发完整点击序列时,改用
Cmd+U/Ctrl+U进入聚焦模式,再敲标签。 - 按
Esc退出。若需改快捷键,打开设置里「跳跃导航」重新绑定。
适用场景与注意¶
适合:习惯键盘驱动、希望在 Harness Web 里少移鼠标完成侧栏切换、设置项、Composer 聚焦的 DSH 用户;分类上属于客户端 UI 能力,与宿主「一切皆插件」的方向一致。SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,安装来源以 npm 或你信任的 GitHub 仓库为准。
注意:
- 插件以当前 DSH 进程权限在浏览器侧注入 DOM overlay、使用
localStorage,并在 macOS 上可能请求宿主切换输入源;安装前应阅读源码与 MIT 许可证,并核对dshWorkshop.permissions(如web:index-inject、dom:overlay、browser:local-storage、host:input-source)。 - 默认
Cmd+H/Cmd+U与宿主保留主快捷键可能冲突,README 说明因此由插件自持监听;改绑后仍须遵守「可打印字符须带修饰键」等规则。 - 星标与兼容性列表以仓库与 npm 为准;勿假设未在文档出现的配置项。
结尾¶
dsh-jump 把「组合键 → 字母标签 → 点击或聚焦」接到 DeepSeek Harness Web GUI 上,并覆盖 Composer、侧栏 treeitem 等 Harness 特有结构。需要安装命令与行为细节时,以 README 为准。
- 目录页:https://www.skillhub.cn/plugins/Lionad-Morotar/dsh-jump
- GitHub:https://github.com/Lionad-Morotar/dsh-jump