dsh-command-palette:DeepSeek Harness 的鍵盤優先命令面板

前言

DeepSeek Harness (DSH) 的核心設計理念是插件化。在使用過程中,頻繁切換會話、查找設置或管理工作區通常依賴鼠標點擊。dsh-command-palette 插件提供了一個鍵盤優先的命令面板,旨在減少鼠標操作,通過快捷鍵快速訪問核心功能。

功能

該插件爲標準版 DSH 提供了一個統一的命令入口,主要包含以下能力:

  • 雙 Shift 喚起:在 DSH Web 窗口內連續按下兩次 Shift 鍵即可喚起面板。插件不註冊系統級全局快捷鍵,僅監聽當前獲得焦點的窗口。
  • 會話管理:面板默認展示最近更新的六個有效會話,支持按標題、工作目錄、Agent 預設或 ID 進行搜索。
  • 工作區與設置:支持在工作區之間切換或綁定,並提供設置頁面的直達入口。插件會自動讀取 DSH 已註冊的設置菜單,因此其他插件新增的設置菜單也會自動出現在“設置”分組中。
  • 自定義指令:允許保存常用 Prompt。指令啓用“複用專屬會話”後,首次執行會創建會話並保存綁定;後續執行繼續向同一會話發送內容。如果綁定會話已經歸檔或不可用,插件會自動創建新會話。
  • 擴展接口:插件在 Client Context 中提供了 commandPalette 服務,允許其他插件註冊附加命令或觸發面板。

安裝與啓用

使用官方安裝命令將插件添加到 Web Profile:

dsh plugin --profile web add dsh-command-palette

安裝完成後,重啓當前的 DSH Web 進程。隨後打開 設置 → 命令面板 即可管理自定義指令。

使用方法

  1. 喚起面板:在 DSH Web 窗口內連續快速按兩次 Shift。
  2. 選擇與執行:輸入關鍵詞篩選命令,使用箭頭鍵選擇目標,按 Enter 執行,按 Esc 關閉。
  3. 管理指令:在設置菜單中添加、編輯或刪除自定義指令。

技術實現與接口

本插件不依賴 Electron、DSH Desktop preload 或任何 window.dshDesktopCommandPalette 全局對象。所有會話、工作區、設置和 UI 均通過標準 DSH Client 服務實現。

自定義指令的數據存儲在 DSH 設置系統的 command-palette.commands 中,不單獨創建數據庫。

對於開發者,插件提供了以下服務接口供擴展使用:

  • registerProvider(provider):註冊命令 Provider,返回卸載函數。
  • collect(context?):收集當前所有擴展命令。
  • open() / close() / toggle() / isOpen():面板狀態控制。
  • subscribe(listener):監聽打開狀態或 Provider 變化。

擴展插件可以通過 inject commandPalette 服務來實現命令註冊:

exports.inject = ['commandPalette']

exports.apply = (ctx) => {
  ctx.inject(['commandPalette'], (scope) => {
    scope.effect(() => scope.commandPalette.registerProvider({
      id: 'my-plugin',
      collect: () => [{
        id: 'open-dashboard',
        group: 'features',
        icon: '⌘',
        title: '打開控制台',
        subtitle: '由擴展插件提供',
        keywords: ['dashboard'],
        run: () => openDashboard()
      }]
    }))
  })
}

注意事項

  • 兼容性:本插件兼容標準版 DeepSeek Harness、@deepseek-ai/dsh 版本 0.1.1-rc.2 及 Web Profile。
  • 權限範圍:插件僅監聽當前獲得焦點的窗口,不涉及桌面原生瀏覽器標籤、Electron IPC 協調或原生視圖的協調。
  • 開發驗證:項目包含 npm test 和 npm run check 腳本用於驗證。

結語

dsh-command-palette 通過統一的命令面板簡化了 DSH 的日常操作流程,特別是對於需要頻繁切換上下文或使用特定指令的用戶。它通過標準的擴展接口保持了與 DSH 生態的兼容性。

更多詳情與源碼,請訪問:GitHub 倉庫 | 社區目錄

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

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

小夜