前言¶
在 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 未要求額外配置文件。
典型用法¶
- 按
Ctrl+K(macOS 爲⌘K)打開面板,輸入會話標題片段或拼音首字母,回車進入目標會話。 - 記得某段對話關鍵詞但不確定在哪個會話時,直接輸入關鍵詞;面板會在最近 12 個會話的正文裏檢索並展示片段(跳轉到會話頂部,不定位到單條消息序號)。
- 輸入工作區名稱切換環境;輸入
深色或English快速改主題或語言。 - 選中會話後按
→,選擇「導出爲 Markdown」或「Fork 到新會話」等動作。 - 在「插件」分組中找到目標插件,回車切換啓用狀態;若宿主提示需重啓,按提示重啓後再用。
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。