dsh-cmdk: Command Palette for DeepSeek Harness

前言

在 DeepSeek Harness(DSH)里日常会切换会话、工作区,还要找某条历史消息或开关某个 client 插件。侧栏和菜单能完成这些事,但路径分散:会话一多,标题检索、归档、Fork、导出 Markdown 往往要点好几层。社区插件 dsh-cmdk(维护者 hhse,分类:客户端)把上述能力收进一个命令面板:用 ⌘K / Ctrl+K 打开,模糊搜会话标题、扫最近会话正文、切工作区、换主题与语言,并对单条会话或工作区做快捷动作;已安装插件可在面板里启用/禁用。README 写明装完即用、无配置、零依赖,当前版本 0.3.1,许可证 MIT。

这是什么

dsh-cmdk 是 DSH 的 client 插件,在桌面 Web 界面注入 overlay 命令面板与侧栏底部「⌘K 搜索」入口。Host 侧提供 /cmdk/* 路由读会话目录、工作区清单与插件状态;Client 侧负责展示、键盘导航,以及通过公开的 uiWorkspace、sessions、theme、locale 等 Client 服务执行跳转与动作,不直接改宿主内部模块。

目录页:https://www.skillhub.cn/plugins/hhse/dsh-cmdk
源码:https://github.com/hhse/dsh-cmdk

核心功能

打开面板与搜索

输入 结果
⌘K / Ctrl+K 打开或关闭面板
会话标题 模糊匹配全部会话(前缀优先,其次子串、拼音首字母、子序列),回车跳转
中文首字母 例如 cj 匹配「插件…」,cjgc 匹配「插件广场」
消息内容 宿主扫描最近 12 个会话的日志文本,展示带上下文的命中片段
工作区名 切换工作区
深色 / 浅色 / 跟随系统 切换主题
中文 / English 切换界面语言

拼音匹配仅支持首字母(内置 U+4E00–U+9FFF 首字母表),全拼如 chajian 不会命中,cj 可以。

对会话的更多动作

在列表中对一条会话按 →(或行尾 …)可:打开、重命名、Fork 到新会话、归档、复制会话 ID、复制工作目录路径、在访达/资源管理器打开工作目录、导出为 Markdown(含图片轮与工具调用,文件落到下载目录)。

插件与工作区

面板中的「插件」分组列出当前 profile 下已安装插件的名称、版本与启用状态;回车切换启用/禁用(调用 pluginManager.setBundleEnabled,失败自动回滚),按 → 可打开该插件在 node_modules 中的目录。对工作区按 → 可切换、在此新建会话、在访达打开。

系统项

可打开 profile 目录、sessions 目录、日志目录,或刷新页面。

键盘:↑ ↓ 选择,↵ 执行,→ 更多动作,← / Esc 返回上一层。

给其他 client 插件扩展命令

任意 client 插件可向面板注册一行命令,无需改 dsh-cmdk 源码:

window.__DSH_CMDK__?.register({
  id: 'my-plugin.open-docs',
  title: '打开插件文档',
  sub: 'my-plugin 说明书',
  run: (ctx) => ({ status: '已打开' }),
});
window.__DSH_CMDK__?.unregister('my-plugin.open-docs');

早于本插件加载的模块也可用事件:window.dispatchEvent(new CustomEvent('dsh-cmdk:command', { detail: { id, title, run } }))。

最近使用

用过的动作写入 localStorage["dsh-cmdk/recent"](次数与时间,最多 60 条),空查询时按使用频率排在最前,数据仅存本地。

安装与启用

在 DSH 插件市场搜索 dsh-cmdk 安装;或从本地目录以 link 方式加入 profile(README 示例):

dsh plugin --profile desktop add link:/Users/mumu/Documents/微信插件/DSH插件/cmdk2

安装完成后重启桌面 app,或刷新页面,以加载新的 client 模块。README 未要求额外配置文件。

典型用法

  1. 按 Ctrl+K(macOS 为 ⌘K)打开面板,输入会话标题片段或拼音首字母,回车进入目标会话。
  2. 记得某段对话关键词但不确定在哪个会话时,直接输入关键词;面板会在最近 12 个会话的正文里检索并展示片段(跳转到会话顶部,不定位到单条消息序号)。
  3. 输入工作区名称切换环境;输入 深色 或 English 快速改主题或语言。
  4. 选中会话后按 →,选择「导出为 Markdown」或「Fork 到新会话」等动作。
  5. 在「插件」分组中找到目标插件,回车切换启用状态;若宿主提示需重启,按提示重启后再用。

Host 路由(供对接与排查)

方法 路径 作用
GET /cmdk/info home / profile / platform
GET /cmdk/sessions?q=&limit= 会话目录、标题匹配、正文命中片段
GET /cmdk/workspaces 工作区清单与已归档会话 ID
GET /cmdk/export?id= 将会话渲染为 Markdown
GET /cmdk/plugins 已安装插件(名称、版本、启用状态、目录)
POST /cmdk/plugin { name, enabled } 启用或禁用插件
POST /cmdk/open-profile 在系统文件管理器中打开目录(可选 {path})

自定义路由经 connection.requestRejection 校验,仅在本机回环口可用。

适用场景与注意

适合经常在 DSH 里切换会话与工作区、需要快速搜最近对话内容、或集中管理 client 插件开关的用户。内容搜索不依赖 SQLite 全文索引,而是扫 filterEvents({ kind: 'text' }),因此只覆盖最近 12 个会话,且无法跳到具体消息行。

插件以当前 DSH 进程权限运行;安装前建议阅读 GitHub 仓库 源码与 MIT 许可证。社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系,安装来源以你信任的 market 或自建 link 为准。

结尾

经过上面的步骤,dsh-cmdk 把会话、工作区、插件与常用系统动作收到一个快捷键入口里,并允许其他 client 插件通过 window.__DSH_CMDK__ 扩展命令。需要详情时见目录页 skillhub.cn/plugins/hhse/dsh-cmdk 与仓库 github.com/hhse/dsh-cmdk。

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

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

Xiaoye