dsh-quick-launcher:DeepSeek Harness Web UI 的全局快捷面板

前言

在 DeepSeek Harness(DSH)的 Web 界面里,会话、技能、插件入口和设置分散在侧栏与多个面板中。日常开发时若要切换会话、调用技能或打开某一项设置,往往要多次点击或记忆菜单位置。Raycast、Spotlight 一类「一个输入框搜全局」的做法在桌面环境里很常见;DSH 社区插件 dsh-quick-launcher 把类似体验装进 Harness Web UI,用 Ctrl + Space 唤出一块矩形搜索面板,在同一处检索并执行操作。

下面按定位、能力、安装与使用、设计要点和限制说明该插件。事实以 GitHub 仓库 README 为准;社区目录页见 SkillHub 插件条目。SkillHub 为独立社区站点,与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-quick-launcher 由维护者 sadkga 发布,在 npm / GitHub 上的包名为 dsh-quick-launcher,分类为客户端插件。一句话定位:装在 Harness Web UI 里的全局命令面板(Raycast / Spotlight 风格),一个框里查找会话、调用技能、跳转插件与面板、打开设置页、执行命令并切换外观。

插件在 package.json 中声明 dsh.client.platform 为 web,并随 Web profile 的 Cordis bundle 加载;Host 侧仅负责在插件清单中提供可开关的条目,交互逻辑全部在浏览器端的 client.js 中完成。

核心功能

唤出方式为主快捷键 Ctrl + Space。同一能力也会在 Harness 快捷键目录里注册为可改绑的普通应用命令;Web 端对默认快捷键组合限制较严,插件因此额外用私有捕获阶段监听器承载 Ctrl + Space(详见下文「设计要点」)。

面板内可检索与执行的内容按分组组织,README 中的对照如下。

分组 内容
Recently used 最近启动项;「返回当前会话」固定置顶
Sessions 会话列表(标题 / 工作目录);已归档、子 agent 会话与空白行会被过滤,与侧栏行为一致
Skills 当前可见会话的技能目录,以 /name 形式列出
Plugins 所有已注册插件行(含 bundle 贡献的条目,如任务板、市场等)
Settings 设置对话框内的各个页面
Commands 新建会话、面板导航、切换侧栏、归档当前会话等
Appearance 浅色 / 深色 / 跟随系统

键盘操作:↑↓←→ 移动焦点(上下按分组步进,单行分组不会被跳过),Enter 执行,Esc 关闭。面板右上角的齿轮按钮打开面板自身设置(例如推荐开关);这些设置项刻意不出现在搜索结果里。

安装与启用

--profile 指定要安装到的 Harness profile(如 web、desktop 等),必填;其余参数会原样传给该 profile 目录下的 pnpm add。

dsh plugin --profile web add dsh-quick-launcher

也可从 GitHub 安装:

dsh plugin --profile web add github:sadkga/dsh-quick-launcher

需要固定版本时,README 示例为:… add github:sadkga/dsh-quick-launcher#v1.0.0,或 npm 形式 … add dsh-quick-launcher@1.0.0。

安装完成后需重启 Harness(例如 systemctl --user restart dsh.service,或重启 dsh web 进程),再按 Ctrl + Space 验证。在对话里也可以直接让智能体安装 dsh-quick-launcher。

插件以当前 DSH 进程权限运行;安装前建议自行查看 源码 与 MIT 许可证声明。

典型用法

  1. 重启 Harness 后,在 Web UI 任意页面按 Ctrl + Space,面板以浮层形式出现。
  2. 输入关键词过滤:会话标题与工作目录始终可匹配;技能、插件名、设置页名称等随分组展示。
  3. 用方向键在分组间移动,选中后 Enter 执行(打开会话、调用技能、进入插件或设置页、执行命令、切换主题等)。
  4. 需要调整面板行为时,点齿轮进入面板设置,而不是在搜索框里找这些项。

若部署未开启消息正文索引,全文检索会话内容可能不可用,面板会明确提示而非显示空结果;标题与工作目录搜索不受影响(见「已知限制」)。

设计要点(实现层面)

了解下面几点,有助于排查「某分组突然为空」或快捷键异常等问题。

  • 浮层位置:面板挂在 shell.overlay 上;该层默认可点击穿透,关闭时组件返回 null,不遮挡底层页面。
  • 不跨插件 import:客户端 bundle 不得引用其他插件模块;产品图标几何数据内联(来源为 Harness ui-primitives 图标集),样式仅使用 --dsw-* token 与 frame inset 变量。
  • 能力获取:通过 ctx.inject() 注入依赖;ctx.get() 只反映已激活的 fiber,首屏用 get 探测会导致整组为空。remote 需静态 inject,因 remote.pluginManager、remote.skills 等是其属性而非独立服务。
  • Ctrl + Space 与快捷键服务:Web(及 Linux Web)仅允许极少数默认组合;把 Ctrl + Space 注册为默认会抛出 Unsupported Web shortcut 并导致整条 entry 无法激活。插件因此既在快捷键目录提供各平台合法的默认可改绑命令,又用 window 级监听器单独处理 Ctrl + Space。

仓库布局(README):index.js 为 Host 侧清单条目;client.js 为浮层、快捷键与全部动作;cordis.patch.yml 插入 quick-launcher 行;locale/{en,zh}.json 供插件管理器展示标题与描述。

适用场景与注意

适合:长期在 DSH Web UI 里操作多个会话与技能、希望用键盘快速跳转插件/设置/外观的开发者。

注意:

  • 客户端代码由 Host 缓存至进程重启;修改 client.js 后必须重启 Harness 才会生效。
  • 设置对话框没有对外 Client API,无法由其他代码直接 open;只能通过面板驱动其已渲染的导航进入各设置页。
  • 图标仅使用 shell 产品图标集内的造型,无自定义外链图片。

已知限制(部署相关)

  • 内容全文检索取决于部署:面板会调用 sessions.search,但 Web bundle 默认将查询索引设为 openAt: 'never',消息正文搜索默认关闭;Host 拒绝搜索时面板会说明原因。标题与工作目录匹配始终可用。
  • 上述设置对话框状态与 API 限制见上节。

结尾

dsh-quick-launcher 把「一个框搜全局」接到 DSH Web UI:会话、技能、插件、设置、命令与外观集中在一处,用 Ctrl + Space 即开即用。安装命令以 README 为准,装完后重启再试快捷键。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye