dsh-cdp-live-view: DSH 側邊欄 CDP 實時視圖插件

前言

DeepSeek Harness (DSH) 的插件化架構允許開發者擴展 Web GUI 的能力。在調試瀏覽器自動化或遠程運行 Chromium 時,開發者需要一個可視化的窗口來觀察頁面狀態並進行交互。dsh-cdp-live-view 插件在 DSH 的側邊欄中註冊了一個「CDP 實時視圖」標籤頁,通過 Chrome DevTools Protocol (CDP) 將遠程頁面的像素流(JPEG)實時渲染到畫布上,並提供受控的輸入交互功能。

核心功能

該插件提供以下核心能力:

  1. 側邊欄實時視圖:在 DSH Web GUI 的側邊欄註冊標籤頁,將遠程頁面渲染爲實時的 JPEG 像素流,支持 contain-fit 縮放和設備像素比適配。
  2. 目標管理:自動列出並切換頁面目標(Targets),支持創建新頁面和關閉現有頁面。
  3. 地址欄導航:支持在地址欄輸入 URL 並回車,提供前進、後退和刷新按鈕。
  4. 受控交互:支持鼠標點擊、拖拽、滾輪以及鍵盤輸入。輸入通過嚴格的白名單協議(基於 zod discriminated union)發送,確保安全性。
  5. 雙重控制門控:交互功能受「交互輸入」總開關和標題欄「鍵盤與鼠標控制」複選框的雙重控制,只有兩者同時開啓,視圖纔會進入交互模式。
  6. 設置面板:支持配置 CDP 地址,並調整截圖質量、幀率、最大寬高等參數。

安裝與啓用

使用該插件前,請確保環境滿足以下條件:
* DSH 主進程運行在 Node.js ≥ 20 上。
* 已安裝並啓動支持 CDP 的 Chromium(例如 --remote-debugging-port=9222)。
* 已安裝 dsh-better-sidebar 插件(本插件依賴它)。

安裝命令如下:

dsh plugin --profile web add dsh-better-sidebar dsh-sidebar-cdp-browser

安裝完成後,必須重啓 dsh web 進程以加載插件。

配置與使用

插件安裝並重啓後,在 DSH Web GUI 的側邊欄中會出現「CDP 實時視圖」標籤頁。

配置 CDP 地址

CDP 地址不在 profile 數組中配置,而是在 Web UI 的設置中配置:
1. 打開 設置 → 側邊欄卡片 → 側邊欄內容 → CDP實時視圖。
2. 點擊該卡片右上角的齒輪圖標。
3. 填入 CDP 地址。留空則默認爲 127.0.0.1:9222。
4. 支持格式包括 host:port、http://host:port、ws://.../devtools/browser/... 等。
5. 保存後,主進程會斷開舊連接並嘗試自動重連。

啓用交互控制

要在視圖中操作鼠標或鍵盤,需要同時滿足兩個條件:
1. 在設置面板中開啓「交互輸入」總開關。
2. 在實時視圖的標題欄中勾選「鍵盤與鼠標控制」複選框。

適用場景與注意

適用場景

  • 遠程/無頭 Chromium 可視化:在服務器或容器中運行瀏覽器,通過 DSH 界面查看和操作。
  • 觀察自動化過程:在 DSH 會話中實時監控智能體驅動的瀏覽器行爲。
  • 輕量級 VNC 替代品:無需安裝額外客戶端的遠程桌面方案。
  • 演示與調試:將瀏覽器會話投影給多人,或進行受限的演示。

注意事項

  • 安全模型:目標頁面永遠不會以 iframe 形式嵌入。CDP 連接由 DSH 主進程獨佔擁有,瀏覽器端無法得知 CDP 地址,因此不存在任意 CDP 透傳漏洞。
  • 構建依賴:如果使用 pnpm 構建或安裝插件時遇到原生依賴(如 node-pty)被阻止,請在 profile 的 pnpm-workspace.yaml 中添加對應的包名到 allowBuilds。
  • 當前限制:目前尚不支持複製(Copy/Ctrl+C)功能。
  • 配置位置:CDP 地址配置存儲在 better-sidebar 的偏好設置中,而非 DSH profile 數組。

總結

dsh-cdp-live-view 插件爲 DSH 提供了一個安全、低延遲的瀏覽器可視化方案,特別適合需要在 Web 界面深度調試瀏覽器自動化或遠程監控場景。其嚴格的權限控制和即插即用的特性,使其成爲 DSH 生態中的實用工具。

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

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

小夜