dsh-plugin-lcu:利用 ChatGPT 桌面應用 runtime 進行本地控制

前言

在 DeepSeek Harness (DSH) 的生態中,實現本地桌面或瀏覽器的自動化控制通常需要額外的運行環境。dsh-plugin-lcu 插件利用了 ChatGPT 桌面應用內置的 Computer-Use API (cua) runtime,通過 MCP 協議與該運行時通信,從而驅動桌面和 Chrome 瀏覽器。它無需安裝額外的 Python 解釋器或獨立的運行時包裝器,直接複用 ChatGPT 桌面應用提供的本地能力。

功能列表

該插件爲 DSH Agent 添加了三個核心工具:

  • js:使用 cua API 運行一段 JavaScript 程序。首次調用會返回 API 文檔,選擇應用或標籤頁後會返回初始 UI 狀態。
  • js_reset:丟棄當前持久的 JavaScript 會話,啓動一個新的運行時實例。
  • computer_use_stop:用於管理會話中持有的應用。不帶參數時列出當前應用,傳入應用 Bundle ID 時釋放該應用。這會清除運行時的“計算機使用處於激活狀態”標記,而不會結束整個會話。

安裝步驟

  1. 安裝插件
    將插件安裝到指定的 DSH profile 中。安裝後,插件在 profile 中處於激活狀態,但不會自動啓動任何進程。
    dsh plugin --profile <profile> add dsh-plugin-lcu
對於桌面應用管理的 profile,請通過應用內的插件管理器(設置 -> 插件)進行安裝,以避免 CLI 衝突。
  1. 生成預設
    DSH Agent 預設不支持繼承,config.plugins 是完整的插件列表。因此,啓用該插件需要手動生成包含該插件的 heavy 預設。
    git clone https://github.com/ckanner/dsh-preset-generator
    node dsh-preset-generator/src/gen-presets.mjs --profile ~/.dsh/profiles/<profile>
此操作會在 profile 的 `cordis.patch.yml` 中寫入 `heavy` 預設。`heavy` 模式會將工具展示方式設爲 `native`,確保 `js` 工具可以直接調用。
  1. 配置允許列表
    編輯 profile 的配置文件(或 cordis.patch.yml),在 dsh-plugin-lcu 配置段中聲明允許使用的預設 ID。
    - id: lcu
      name: 'dsh-plugin-lcu'
      config:
        presets:
          - heavy
  1. 重啓 Harness
    插件代碼和配置更改不支持熱重載,必須重啓 DSH Harness 後生效。

配置說明

在 cordis.patch.yml 中可配置以下項:

  • app:指定提供 runtime 的應用程序路徑,默認爲 /Applications/ChatGPT.app。
  • chrome:是否啓用瀏覽器表面功能,默認爲 false。
  • allowedOrigins:預批准的網站源列表。配置後,運行時訪問這些源時會跳過授權提示。

啓用 Chrome 功能需要安裝官方 ChatGPT Chrome 擴展。

使用示例

啓用 heavy 模式後,Agent 可以執行以下操作:

  • 獲取系統狀態:使用 js 工具運行 await cua.getState(); 查看當前運行的應用和標籤頁。
  • 截圖:讓 Agent 截取 Finder 窗口並讀取分辨率。
  • 瀏覽器操作:打開 Safari,訪問 example.com 並讀取頁面標題。
  • 列出標籤頁:查詢當前 Chrome 的所有標籤頁。

運行環境與限制

使用該插件需滿足以下前提條件:

  • 操作系統:僅支持 macOS on Apple Silicon。Launcher 需要解析 macOS 應用包,生命週期包裝器爲 macOS 服務。
  • 應用要求:ChatGPT 桌面應用必須安裝在 /Applications/ChatGPT.app。
  • Node 版本:本地安裝的 Node.js 版本需爲 ^22.19.0 或 >=24.0.0。
  • 運行時來源:Runtime 來自本地 ChatGPT 應用,不會下載、重寫或需要額外的 Codex 或 ChatGPT 認證流程。

總結

dsh-plugin-lcu 提供了一種輕量級的本地控制方案,它通過複用 ChatGPT 桌面應用的原生能力,簡化了環境搭建流程。配合 DSH 的插件化架構,開發者可以在不引入複雜依賴的情況下,直接通過 JavaScript 調用系統 API。

更多細節與源碼:GitHub - ckanner/dsh-plugin-lcu

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

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

小夜